您能否借助您的专业知识来理解如何配置两个网络接口上的网络流量分离?
到目前为止,据我了解,静态路由用于网络流量,该流量不旨在使用默认网关。默认网关用于所有不面向本地网络且在路由表中未指定首选路由的流量。
情况如下。
- 网络中的每台计算机都有两个网卡。
- 每个产品的生产接口为
eth0
(GW = 10.10.10.1)。 - 每个的管理接口是
eth1
(GW = 192.168.100.1)。 - 生产和管理流量应完全分开。
我在下面发布了我与Debian Wheezy一起尝试过的事情。而且,我的问题是,尽管我设置的主机可以在两个接口上进行通信,但是各个主机似乎在错误的接口上“听到”了流量。例如:
主机140
eth0 Link encap:Ethernet HWaddr 08:00:27:d1:b6:8f
inet addr:10.10.10.140 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fed1:b68f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1341 errors:0 dropped:0 overruns:0 frame:0
TX packets:2530 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:641481 (626.4 KiB) TX bytes:241124 (235.4 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:ad:14:b6
inet addr:192.168.100.140 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fead:14b6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7220 errors:0 dropped:0 overruns:0 frame:0
TX packets:5257 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:602485 (588.3 KiB) TX bytes:1022906 (998.9 KiB)
我从主机140执行以下命令:tcpdump -i eth0
。在主机140上的单独会话中,我执行ping 192.168.100.50
。
19:17:29.301565 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 10, length 64
19:17:30.301561 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 11, length 64
19:17:31.301570 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 12, length 64
19:17:32.301580 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 13, length 64
为什么我看到上面的输出eth0
?我认为我应该只会看到10.10.10.140的点击量。我也看到了这一点eth1
,正如预期的那样:
19:18:47.805408 IP 192.168.100.50 > 192.168.100.140: ICMP echo request, id 1605, seq 247, length 64
如果我从主机50 ping(相同的ifconfig
结果-只是最后一个四边形不同),则eth0
处于静默状态,并且我看到ICMP回显eth1
为预期。
我想了解如何配置每个接口,使其仅处理两个主要Linux品种所负责的流量。我想我快要到了,但是我想念的东西似乎找不到了。
- Debian Wheezy(7.x)或Debian Jessie(8.x)
- 企业Linux(6.x)(RedHat / CentOS / Scientific / Oracle)。
我知道,针对Debian的解决方案对于Wheezy和Jessie都应该是好的,并且针对EL的解决方案对于所有EL 6.x版本都应该相同。我想避免使用RC脚本执行命令,而是选择使用配置文件。
在Debian中,我知道的相关配置文件是:
/etc/network/interfaces
在EL 6.x中,我知道的相关配置文件是:
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/route-eth0
/etc/sysconfig/network-scripts/route-eth1
/etc/sysconfig/network-scripts/rule-eth0
/etc/sysconfig/network-scripts/rule-eth1
我的Debian 8“ Jessie” /etc/network/interfaces
文件:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# Production interface
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 10.10.10.140
netmask 255.255.255.0
gateway 10.10.10.1
# Management interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.100.140
netmask 255.255.255.0
我认为netstat -anr
可能说明了这个问题:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.10.10.1 0.0.0.0 UG 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
iptabels -L -t nat