IP alias och source IP

Mattias Barthel mb at stacken.kth.se
Sun Apr 27 20:06:52 CEST 2008


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
>
>   



More information about the BUS mailing list