2

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

    类型=以太网
    引导程序=无
    IPADDR=10.1.1.1
    前缀=27
    网关=10.1.1.10
    DNS1=10.1.1.11
    DEFROUTE=是
    IPV4_FAILURE_FATAL=是
    IPV6INIT=否
    NAME="自动 eth0"
    UUID=4aa88f11-51ed-46de-9c54-1dd2bbbf286a
    开机=是
    HWADDR=1c:df:0f:1d:73:23
    LAST_CONNECT=1359432400
    网络掩码=XXXX
    设备=eth0
    USERCTL=否
    

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”正在显示预期的输出。

4

2 回答 2

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/network-scripts/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/network-scripts/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/network-scripts/ifcfg-eth1

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

/etc/sysconfig/network-scripts/ifcfg-eth2

DEVICE=eth2
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
于 2014-04-09T13:07:51.077 回答
0

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

检查你netstat -nr的路由表是什么样子的。

于 2013-01-29T13:30:52.790 回答