我有一个CentOS 6安装,有1个网卡,eth0,工作正常
我添加了另一个网卡eth1 。 两个NIC都在同一台交换机上,并且在同一个LAN上。
我将ifcfg-eth0复制到ifcfg-eth1 ,然后简单地更改DEVICE= , IPADDR=和HWADDR= iines。
设置/etc/sysconfig/network-scripts/ifcfg-eth1 ,我可以整天从外部机器ping eth1 ,这很好。
但是,如果我尝试从服务器内部ping( ping -Ieth1 google.com ),我没有得到任何回应,而ping -Ieth0 google.com工作正常。
我已经从ifcfg-eth0和ifcfg-eth1删除了GATEWAY=行,并将GATEWAY=放在/etc/sysconfig/network 。
这里是我的混淆的configuration文件:
为eth0
DEVICE = eth0的
BOOTPROTO =静态
IPADDR = 192.168.1.40
NETMASK = 255.255.255.0
HWADDR = 00:00:23:45:67:8F
NM_CONTROLLED =无
ONBOOT = YES
TYPE =以太网
IPV6INIT =无
DNS1 = 192.168.1.240
DNS2 = 192.168.1.244
ETH1
DEVICE = eth1的
BOOTPROTO =静态
IPADDR = 192.168.1.41
NETMASK = 255.255.255.0
HWADDR = 00:00:23:45:67:99
NM_CONTROLLED =无
ONBOOT = YES
TYPE =以太网
IPV6INIT =无
DNS1 = 192.168.1.240
DNS2 = 192.168.1.244
networking
NETWORKING_IPV6 =无
HOSTNAME = MYSERVER
NETWORKING = YES
GATEWAY = 192.168.1.2
我的iptables -L -v目前是完全空的。 而我没有使用SELinux。
永远不要设置两个接口到同一个子网,这可能不会按需要工作。 如果你检查ip ro的输出,你就会明白Linux主要是基于目的地的路由。 尽pipe基于源的路由是可能的 ,但在实践中却是非常罕见的。 我只能记得有一次我需要这样做,不pipe是什么原因。
你误会了ping -I做了什么,因此混乱。 从男人:
-I接口地址
Set source address to specified interface address.
Ping不发送数据包槽-I接口。 当一个数据包准备好发出时,内核会查看目标IP和ip ro ,并根据这两件事情决定使用哪个接口。 它不查看数据包的源IP 。
– 如果用于设置数据包的源IP。 当数据包stream出时,交换机知道你的IP来自eth0的MAC,所以它在那里发送响应。 但是,eth0会删除所有未被发送到自己的IP(或广播)的东西。 在eth0和eht1之间没有“神奇的内部桥接”,除了你在ip ro看到的外。 所以答案永远不会达到eth1。
ip ro是现代化的弃用route替代品。
由于您使用相同的交换机/网关,您可能想要绑定 eth0和eth1。 然后在bond0接口上设置你的两个IP地址(ifcfg-bond0)。 这是一个标准的做法,将作为一种魅力。
要完全隔离eth0和eth1之间的stream量,最好将eth1设置为不同的IP子网,例如192.168.2.40,并使用不同的路由器/网关:)
net.ipv4.conf.default.rp_filter = 2 net.ipv4.conf.all.rp_filter = 2
当出站stream量的路由与传入stream量的路由不同时,报文被丢弃
丹尼尔 –
看来你的问题是因为configuration的限制而存在的。 在同一LAN /子网上有两个接口,但其中一个必须是默认路由。 运行此命令以validation您的路由默认为eth0,这表示当您试图通过eth1强制stream量时,您将无法连接networking外的任何设备。
route
它应该看起来像这样:
内核IP路由表目标网关Genmask标志度量参考使用Iface
eth0。192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
默认192.168.1.0 0.0.0.0 UG 0 0 0 eth0
要进行完整性检查,请尝试通过该端口ping本地到您的LAN的东西:
ping -Ieth1 192.168.1.2