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