IP alias och source IP
Mattias Barthel
mb at stacken.kth.se
Sat Nov 15 16:33:52 CET 2008
Hej,
Lite sent efter dessa mail har jag kommit fram till en ny fråga.
Hur kan jag "komma åt" mitt modem från mitt privata nät 192.168.1.0?
Trodde att det skulle räcka med en route men icke...
# route add 10.0.0.0 10.0.0.1
# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 89.131.128.1 UGSc 10 58883092 xl0
10/16 link#1 UC 3 0 xl0 =>
10 10.0.0.1 UGSc 0 0 xl0
10.0.0.1 00:60:08:54:a8:6a UHLW 1 0 lo0
10.0.0.138 00:1c:10:ea:6b:70 UHLW 0 268 xl0 978
10.0.255.255 ff:ff:ff:ff:ff:ff UHLWb 2 1152 xl0
89.131.128/20 link#1 UC 2 0 xl0
89.131.128.1 00:00:5e:00:01:03 UHLW 8 0 xl0 192
89.131.129.100 127.0.0.1 UGHS 0 0 lo0
89.131.143.255 ff:ff:ff:ff:ff:ff UHLWb 1 1946 xl0
127.0.0.1 127.0.0.1 UH 3 16546 lo0
192.168.1 link#2 UC 7 0 fxp0
192.168.1.130 link#2 UHLW 1 27232 fxp0
192.168.1.224 00:19:db:cc:7e:51 UHLW 2 91767 fxp0 344
192.168.1.230 00:16:76:da:ca:7a UHLW 0 568958 fxp0 1080
192.168.1.231 00:1c:b3:7c:63:b6 UHLW 3 197326 fxp0 419
192.168.1.244 00:b0:d0:e9:15:f6 UHLW 1 12448511 fxp0 1082
192.168.1.250 00:0a:e6:dd:a9:68 UHLW 0 10553911 fxp0 293
192.168.1.255 ff:ff:ff:ff:ff:ff UHLWb 3 1594 fxp0
# tcpdump host 10.0.0.138
tcpdump: listening on xl0
16:27:07.702955 89.131.129.100.63647 > modem.http: S
580739863:580739863(0) win 8192 <mss 1460,nop,wscale 2,nop,nop,sackOK> (DF)
16:27:13.705008 89.131.129.100.63647 > modem.http: S
580739863:580739863(0) win 8192 <mss 1460,nop,nop,sackOK> (DF)
Dvs inkommande trafik från 192.169.1.0 skal routas till 10.0.0.0 och
tillbaka.
Tackar på förhand,
Mattias
Mattias Barthel wrote:
> ipfw add divert natd all from not 10.0.0.1 to any in via xl0 var det!
>
> Mvh,
>
> Mattias
>
> Mattias Barthel wrote:
>
>> Jepp, det var det!
>> När jag deleteade divert regeln för ipfw gick det vips att pinga modemet.
>>
>> Nu för att lägga till regler som bara nattar mina interna addresser?
>> Detta har jag försökt men det vill inte fungera.
>>
>> fwcmd=ipfw
>> ${fwcmd} add divert natd all from 192.168.1.0/24 to any in via
>> ${natd_interface}
>> ${fwcmd} add divert natd all from 192.168.1.0/24 to any out via
>> ${natd_interface}
>>
>> Någon som kan ipfw2 och natd i FreeBSD?
>>
>>
>> Mvh,
>>
>> Mattias
>>
>>
>>
>> Niklas Hallqvist wrote:
>>
>>
>>> Tja du svara ju själv, du nattar ju. AT innebär ju att din source adress
>>> skrivs om till den
>>> du angivit i din nat-regel. Jag kan inget om FreeBSD's NAT, men rent
>>> generellt är det ju glasklart.
>>> Efter routen är väld skapas ett state som mappar sann källadress-port
>>> tupel, till den adress NAT-regeln specificerar och en ledig port. Sedan
>>> översätts ut och inkommande paket enligt den mappningen.
>>>
>>> Om du kan bör du slå av NATtning för de käladresser som tillhör nät du
>>> inte vill NATta. I PF gör man det med "no nat"-direktivet om jag uinte
>>> minns fel, med FreeBSD kanske inte kör PF som standard?
>>>
>>> Niklas
>>>
>>>
>>> Mattias Barthel skrev:
>>>
>>>
>>>
>>>> Niklas Hallqvist wrote:
>>>>
>>>>
>>>>
>>>>
>>>>> I allmänhet bestäms avsändaradress beroende på den route som används, i
>>>>> den mening att avsändaradressen blir en av de adresser som det utgående
>>>>> interfacet har. Man kan tycka att
>>>>> när man anger en adress i ett subnät som delas av endast en av det
>>>>> utgående interfacets alias, att just det aliaset skall användas som
>>>>> källadress, men jag vet inte om det är så på FreeBSD, på OpenBSD gör det
>>>>> som Du vill. Jag tror att FreeBSD gör det också, p.g.a. den gemensamma
>>>>> historiken.
>>>>>
>>>>> Dock innan IP-trafik skickas måste något som heter adressresolution ske,
>>>>> via protokollet ARP.
>>>>> ARP använder sig av broadcast-trafik, och bör nog (det är mycket
>>>>> längesedan jag kunde den exakta teorin bakom detta) vara beroende på
>>>>> matchande nätmasker både hos sändare och mottagare. Om ditt modem har
>>>>> nätmask 255.255.255.0 och du har 255.0.0.0 är jag inte säker på att ARP
>>>>> fungerar. Så du måste nog veta nätmasken på modemet och sedan sätta
>>>>> samma på ditt alias.
>>>>>
>>>>> Kolla med tcpdump arp, om ARP-trafiken ser rätt ut.
>>>>>
>>>>> På din ursprungliga fråga, visst, många utilities tillåter dig att binda
>>>>> din klientport till en specifik IP.
>>>>>
>>>>> ping använder sig av -I (för interface address), telnet på OpenBSD
>>>>> använder sig av -b (för bind(2) vilket är det systemanrop man använder)
>>>>> vilket jag tror att undertecknad lade till för hur länge sedan som
>>>>> helst, men kan minnas fel. OpenSSH använder -b också. netcat (eller nc
>>>>> som det heter på OpenBSD) använder -s (för "source address"). man(1) är
>>>>> din vän, många kommandon kan sätta käll-IP, men inte alla...
>>>>>
>>>>> Niklas
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Hmmm.
>>>> Först vill jag tacka för era svar.
>>>>
>>>> Ping -S verkar inte ha någon effekt. Kanske source addressen sätts om
>>>> någonstans på vägen.
>>>> Det kan kanske vara värt att nämna att jag kör nat på if xl0.
>>>> -----
>>>> # ping -S 10.0.0.1 modem
>>>> PING modem (10.0.0.138) from 10.0.0.1: 56 data bytes
>>>> ^C
>>>> --- modem ping statistics ---
>>>> 3 packets transmitted, 0 packets received, 100% packet loss
>>>> #
>>>> #
>>>> # tcpdump -i xl0 host 10.0.0.138
>>>> tcpdump: listening on xl0
>>>> 17:15:31.742250 89.131.129.100 > modem: icmp: echo request (DF)
>>>> 17:15:32.737895 89.131.129.100 > modem: icmp: echo request (DF)
>>>> 17:15:33.737755 89.131.129.100 > modem: icmp: echo request (DF)
>>>> ------
>>>>
>>>> Vidare, arp verkar funka som det ska faktiskt.
>>>>
>>>>
>>>> # arp -a
>>>> modem (10.0.0.138) at 00:15:e9:f9:53:17 on xl0 [ethernet]
>>>> ? (10.255.255.255) at ff:ff:ff:ff:ff:ff on xl0 permanent [ethernet]
>>>> ? (89.131.128.1) at 00:00:5e:00:01:03 on xl0 [ethernet]
>>>> ? (89.131.143.255) at ff:ff:ff:ff:ff:ff on xl0 permanent [ethernet]
>>>> freja (192.168.1.129) at 00:1f:3a:31:cd:d7 on fxp0 [ethernet]
>>>> ? (192.168.1.131) at (incomplete) on fxp0 [ethernet]
>>>> ? (192.168.1.231) at 00:1c:b3:7c:63:b6 on fxp0 [ethernet]
>>>> ? (192.168.1.244) at 00:b0:d0:e9:15:f6 on fxp0 [ethernet]
>>>> ? (192.168.1.250) at 00:0a:e6:dd:a9:68 on fxp0 [ethernet]
>>>> ? (192.168.1.255) at ff:ff:ff:ff:ff:ff on fxp0 permanent [ethernet]
>>>> # arp -d modem
>>>> modem (10.0.0.138) deleted
>>>> # tcpdump arp
>>>> tcpdump: listening on xl0
>>>> 17:12:33.149022 arp who-has modem tell 10.0.0.1
>>>> 17:12:33.149377 arp reply modem is-at 0:15:e9:f9:53:17
>>>>
>>>>
>>>>
>>>>
>>>> Mattias
>>>>
>>>> _________________________________________________
>>>> BSD Users Sweden -- BUS at stacken.kth.se
>>>> https://lists.stacken.kth.se/mailman/listinfo/bus
>>>>
>>>>
>>>>
>>>>
>>>>
>>> _________________________________________________
>>> BSD Users Sweden -- BUS at stacken.kth.se
>>> https://lists.stacken.kth.se/mailman/listinfo/bus
>>>
>>>
>>>
>>>
>> _________________________________________________
>> BSD Users Sweden -- BUS at stacken.kth.se
>> https://lists.stacken.kth.se/mailman/listinfo/bus
>>
>>
>>
>
> _________________________________________________
> BSD Users Sweden -- BUS at stacken.kth.se
> https://lists.stacken.kth.se/mailman/listinfo/bus
>
>
More information about the BUS
mailing list