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