IP alias och source IP
Mattias Barthel
mb at stacken.kth.se
Sun Apr 27 19:46:30 CEST 2008
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
>
>
More information about the BUS
mailing list