linux – Secondary IP(eth0:0)就像主服务器IP一样

前端之家收集整理的这篇文章主要介绍了linux – Secondary IP(eth0:0)就像主服务器IP一样前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个CentOS服务器,配置了4个连续的IP:
eth0 5.x.x.251
eth0:0 5.x.x.252
eth0:1 5.x.x.253
eth0:2 5.x.x.254

问题是所有流量都以eth0:0(5.x.x.252)作为源IP而不是eth0进入互联网.
#curl ifconfig.me
5.x.x.252

我该如何解决这个问题,以便所有流量都通过eth0流出,即我的主要IP?

PS:我的服务器是在Xen dom0上运行的VPS,后者在路由模式网络中配置.

提前致谢!

服务器配置

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:x:x:x:x:AE  
          inet addr:5.x.x.251  Bcast:5.x.x.255  Mask:255.255.255.255
          inet6 addr: fe80::x:x:x:x/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14675569 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9463227 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4122016502 (3.8 GiB)  TX bytes:25959110751 (24.1 GiB)
          Interrupt:23 

eth0:0    Link encap:Ethernet  HWaddr 00:x:x:x:x:AE   
          inet addr:5.x.x.252  Bcast:5.x.x.255  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:23 

eth0:1    Link encap:Ethernet  HWaddr 00:x:x:x:x:AE  
          inet addr:5.x.x.253  Bcast:5.x.x.255  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:23 

eth0:2    Link encap:Ethernet  HWaddr 00:x:x:x:x:AE  
          inet addr:5.x.x.254  Bcast:5.x.x.255  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:23
# cat /etc/hosts
127.0.0.1       localhost.localdomain localhost
5.x.x.251       [fqdn] [hostname]
# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=5.x.x.251
NETMASK=255.255.255.224
SCOPE="peer 5.x.y.82"
# cat ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
ONBOOT=yes
IPADDR=5.x.x.252
NETMASK=255.255.255.224
# cat route-eth0 
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=5.x.y.82
# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
5.x.y.82        0.0.0.0         255.255.255.255 UH        0 0          0 eth0
5.x.x.224       0.0.0.0         255.255.255.224 U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         5.x.y.82        0.0.0.0         UG        0 0          0 eth0

2012年8月29日更新
当我运行/etc/init.d/network restart时,我得到了一个RTNETLINK答案:文件存在错误,这让我相信使用默认网关有另一个到另一个网络的路由,如here所示.

# /etc/init.d/network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  RTNETLINK answers: File exists
                                                           [  OK  ]

可以肯定的是,当我第一次通过5.x.y.82 dev eth0删除ip route del default然后再次使用.251 IP添加它时,一切都按预期工作.
有没有办法将route del命令添加到ifcfg-eth0或route-eth0文件中?我可以看到这可以通过Debian(more info)上的pre-up ip addr del …来完成,但是CentOS呢?

解决方法

this document开始,至少在CentOS 5上,我怀疑上面你可以通过简单地给出正确的iproute2命令参数来指定你的路由. (请参阅有关IP命令参数格式的部分)

所以不要写像:

# route-eth0 
ADDRESS0=0.0.0.0
NETMASK0=0.0.0.0
GATEWAY0=5.x.y.82

你可以有这样一个文件

default via 5.x.y.82 dev eth0  src 5.x.x.251

我没有Redhat / Redhat派生的方块来测试.

猜你在找的Linux相关文章