同一服务器上多个NIC上的多个IP配置

时间:2013-01-29 13:23:49

标签: linux centos

在我的服务器中,我有两个NIC(例如eth0和eth1)。我在centOS 6.3中为两个NIC配置单独的IP,如下所示: 的的ifcfg-eth0的     

    TYPE=Ethernet
    BOOTPROTO=none
    IPADDR=10.1.1.1
    PREFIX=27
    GATEWAY=10.1.1.10
    DNS1=10.1.1.11
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=yes
    IPV6INIT=no
    NAME="Auto eth0"
    UUID=4aa88f11-51ed-46de-9c54-1dd2bbbf286a
    ONBOOT=yes
    HWADDR=1c:df:0f:1d:73:23
    LAST_CONNECT=1359432400
    NETMASK=X.X.X.X
    DEVICE=eth0
    USERCTL=no
    

的ifcfg-eth1的

TYPE=Ethernet
BOOTPROTO=none
IPADDR=10.1.1.2
PREFIX=28
GATEWAY=10.1.1.10
DNS1=10.1.1.11
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="Auto eth1"
UUID=4aa88f11-51ed-46de-9c54-1dd2bbbf286a
ONBOOT=yes
HWADDR=1c:df:0f:1d:73:23
LAST_CONNECT=1359432400
NETMASK=X.X.X.X
DEVICE=eth1
USERCTL=no

在这里,我无法一次ping两个IP。只有一个正在运作。 甚至,“ifconfig”显示预期的输出。

2 个答案:

答案 0 :(得分:4)

自从CentOS / RHEL6开始(更新的内核)以来,rp_filter设置发生了变化。如需完整解释,请点击以下链接:

http://z-issue.com/wp/linux-rhel-6-centos-6-two-nics-in-the-same-subnet-but-secondary-doesnt-ping/

简而言之,有两种选择:

1)编辑文件“/etc/sysctl.conf”

在以下行中将值从1更改为2:

net.ipv4.conf.default.rp_filter = 1

添加以下行:

net.ipv4.conf.all.rp_filter = 2

编辑后,它应如下所示:

net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2

键入

重新加载配置
sysctl -p 

现在你应该能够ping两个IP

2)第二个选项是使用绑定,但可能需要您的交换机侧配置。我在这里使用802.3ad负载均衡模式接口eth1和eth2

编写示例配置

的/ etc / SYSCONFIG /网络的脚本/的ifcfg-bond0

DEVICE=bond0
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.10.52
NETMASK=255.255.255.0
NETWORK=192.168.10.0
GATEWAY=192.168.10.1
BONDING_OPTS="miimon=100 mode=4"

的/ etc / SYSCONFIG /网络的脚本/的ifcfg-bond0:0

DEVICE=bond0:0
USERCTL=no
ONBOOT=yes
IPADDR=192.168.10.53
NETMASK=255.255.255.0
NETWORK=192.168.10.0
GATEWAY=192.168.10.1
BONDING_OPTS="miimon=100 mode=4"

的/ etc / SYSCONFIG /网络的脚本/的ifcfg-eth1的

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

的/ etc / SYSCONFIG /网络的脚本/的ifcfg-ETH2

DEVICE=eth2
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no

答案 1 :(得分:0)

您已将它们设置在不同的子网上。因此,您必须设置路由以在不同网络之间路由。

检查您的netstat -nr,看看您的路由表是什么样的。