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