Чи можете ви надати свій досвід для розуміння того, як рухатися щодо налаштування поділу мережевого трафіку на два мережевих інтерфейси?
Як я розумію поки що, статичні маршрути використовуються для мережевого трафіку, який не призначений для використання шлюзу за замовчуванням. Шлюз за замовчуванням використовується для всього трафіку, який не призначений для локальної мережі і для якого не вказаний бажаний маршрут у таблиці маршрутів.
Сценарій такий.
- Кожен комп'ютер у мережі має дві мережеві карти.
- Інтерфейс виробництва для кожного становить
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
Якщо я пінгую від Host 50 (ті ж ifconfig
результати - просто інший останній квадратик), то eth0
мовчить, і я бачу, як ICMP лунає eth1
, як очікувалося.
Я хотів би зрозуміти, як налаштувати кожен інтерфейс для обробки лише трафіку, за який він відповідає у двох основних різновидах Linux. Я думаю, що я майже там, але мені не вистачає того, чого я просто не можу знайти.
- Debian Wheezy (7.x) або Debian Jessie (8.x)
- Enterprise 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
/etc/network/interfaces
Файл мого Debian 8 "Jessie" :
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