Potresti prestare la tua esperienza per capire come configurare la separazione del traffico di rete su due interfacce di rete?
Come ho capito finora, i percorsi statici vengono utilizzati per il traffico di rete che non è progettato per utilizzare un gateway predefinito. Il gateway predefinito viene utilizzato per tutto il traffico che non è destinato alla rete locale e per il quale non è stato specificato alcun percorso preferito in una tabella di routing.
Lo scenario è il seguente.
- Ogni computer nella rete ha due schede di rete.
- L'interfaccia di produzione per ciascuno è
eth0(GW = 10.10.10.1). - L'interfaccia di gestione per ciascuno è
eth1(GW = 192.168.100.1). - Il traffico di produzione e gestione dovrebbe essere totalmente separato.
Di seguito ho pubblicato le cose che ho provato con Debian Wheezy. E il mio problema è che, sebbene io abbia host configurati in modo tale da comunicare su entrambe le interfacce, i singoli host sembrano "sentire" il traffico sull'interfaccia sbagliata. Per esempio:
Host 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)
Da host 140, eseguo questo comando: tcpdump -i eth0. In una sessione separata sull'host 140, eseguo 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
Perché vedo l'output sopra riportato eth0? Penso che dovrei vedere il traffico solo per il 10.10.10.140. Vedo anche questo eth1, come previsto:
19:18:47.805408 IP 192.168.100.50 > 192.168.100.140: ICMP echo request, id 1605, seq 247, length 64
Se eseguo il ping dall'Host 50 (stessi ifconfigrisultati - solo un ultimo quad diverso), allora eth0è silenzioso e vedo l'eco ICMP acceso eth1, come previsto.
Vorrei capire come configurare ciascuna interfaccia per gestire solo il traffico di cui è responsabile in due principali varietà Linux. Penso di essere quasi arrivato, ma mi manca qualcosa che proprio non riesco a trovare.
- Debian Wheezy (7.x) o Debian Jessie (8.x)
- Enterprise Linux (6.x) (RedHat / CentOS / Scientific / Oracle).
So che una soluzione per Debian dovrebbe essere buona sia per Wheezy che per Jessie, e che una soluzione per un EL dovrebbe essere la stessa per tutte le versioni di EL 6.x. Vorrei evitare di usare uno script RC per eseguire i comandi, optando invece per l'utilizzo dei file di configurazione.
In Debian i file di configurazione rilevanti che conosco sono:
/etc/network/interfaces
In EL 6.x, i file di configurazione rilevanti che conosco sono:
/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
Il mio /etc/network/interfacesfile "Jessie" di Debian 8 :
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
Penso che netstat -anrpotrebbe illustrare il problema:
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