2012-12-27 55 views
2

1我需要在Linux的界面上使用几个IP,然后切换它,但它不起作用。
例如:ip route src not working

# ifconfig 
eth0  Link encap:Ethernet HWaddr 90:2b:34:33:80:65 
      inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 
      inet6 addr: fe80::922b:34ff:fe33:8065/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:13220652 errors:0 dropped:32864 overruns:0 frame:0 
      TX packets:8296620 errors:0 dropped:0 overruns:0 carrier:1 
      collisions:0 txqueuelen:1000 
      RX bytes:16166162509 (16.1 GB) TX bytes:2186645852 (2.1 GB) 
      Interrupt:48 

eth0:1 Link encap:Ethernet HWaddr 90:2b:34:33:80:65 
      inet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
       Interrupt:48 

lo  Link encap:Локальная петля (Loopback) 
      inet addr:127.0.0.1 Mask:255.0.0.0 
      inet6 addr: ::1/128 Scope:Host 
      UP LOOPBACK RUNNING MTU:16436 Metric:1 
      RX packets:276685 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:276685 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:0 
      RX bytes:21387439 (21.3 MB) TX bytes:21387439 (21.3 MB) 

# ip route 
169.254.0.0/16 dev eth0 scope link metric 1000 
192.168.1.0/24 dev eth0 scope link src 192.168.1.99 

# ping 192.168.1.50 
PING 192.168.1.50 (192.168.1.50) 56(84) bytes of data. 
64 bytes from 192.168.1.50: icmp_req=1 ttl=255 time=1.21 ms 
64 bytes from 192.168.1.50: icmp_req=2 ttl=255 time=1.07 ms 
64 bytes from 192.168.1.50: icmp_req=3 ttl=255 time=1.05 ms 

,然后我用卷曲

# curl 192.168.1.50 

和tcpdump的:

13:24:02.009094 IP 192.168.1.1 > 192.168.1.50: ICMP echo request, id 8919, seq 347, length 64 
[email protected]@..%.......2...s"..[...P....q#...................... !"#$%&'()*+,-./
13:24:02.010087 IP 192.168.1.50 > 192.168.1.1: ICMP echo reply, id 8919, seq 347, length 64 
E..T...........2.......s"..[...P....q#...................... !"#$%&'()*+,-./
13:43:40.006264 IP 192.168.1.1.48275 > 192.168.1.50.80: Flags [S], seq 3496592766, win 14600, options [mss 1460,sackOK,TS val 15698502 ecr 0,nop,wscale 7], length 0 
E..<[email protected]@.h........2...P.i.~......9............ 
...F........ 
13:43:40.007663 IP 192.168.1.50.80 > 192.168.1.1.48275: Flags [S.], seq 3006420619, ack 3496592767, win 5792, options [mss 1460,sackOK,TS val 151247914 ecr 15698502,nop,wscale 0], length 0 
E..<[email protected]@..8...2.....P...2V..i................. 
    ..*...F.... 

和源IP仍是192.168.1.1,我在做什么错了?

UPD:顺便说一句,在Ubuntu 10.04上用2.6.32内核试了一样的东西,一切正常,甚至不需要在“ping”命令中加上“-I”,它就会在我的内核中接受。 0)有人破坏了这个功能。

回答

2

src选项仅影响源地址由操作系统选择的数据包。 ping程序选择自己的源地址。如果您想影响其选择,请使用-I-B选项。如果您想查看您的src选项是否正常工作,请进行TCP连接或发送UDP数据报。

+0

尝试卷曲,更新后 –

+0

我也做“ping 192.168.1.50 -I eth0:1”,并没有改变tcpdump,它需要相同的IP –