IP alias och source IP

Mattias Barthel mb at stacken.kth.se
Sun Apr 27 17:21:03 CEST 2008


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



More information about the BUS mailing list