Ich habe irgendwo eine komplizierte Einrichtung, die diese Art von Netzwerk verwendet. Ich habe zwei interne Schnittstellen und eine externe Schnittstelle zum Internet. (Dies wird sich in zwei externe Schnittstellen in verschiedenen Subnetzen ändern und in eine interne Schnittstelle, die auf zwei interne Schnittstellen aufgeteilt ist, aber es geht auf demselben Weg.) Wie auch immer - weiter zur Antwort!
Angenommen, Sie haben zwei interne Schnittstellen unter:
eth0 192.168.1.2
eth1 192.168.1.3
Sie verwenden einen internen Uplink zum Internet (Router) unter 192.168.1.1
So Ihr Standard wird Routing - Tabelle wie folgt aussehen (Befehl: netstat -rn
)
Dest Gw Genmask Flags ... ... Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG eth0
192.168.1.0 0.0.0.0 255.255.255.0 U eth0
192.168.1.0 0.0.0.0 255.255.255.0 U eth1
Hier ist Ihr Problem, die gesamte Ausgabe erfolgt über, eth0
da dies der erste Treffer in Ihrer Routing-Tabelle ist. Wenn Sie also einen anderen Computer (oder sogar dieselbe Box) für ping 192.168.1.3
( eth1
) verwenden, erhalten Sie keine Antwort? Warum? Weil es von kommt 192.168.1.2
.
Sie müssen verwenden iproute2
, um individuelle Routing-Tabellen für jedes Gerät einzurichten. Auf diese Weise INPUT
antwortet ein Gerät, wenn es etwas in der Kette hat, über dasselbe Gerät.
bearbeiten /etc/iproute2/rt_tables
hinzufügen:
1 my_eth0
2 my_eth1
Führen Sie dann Folgendes aus:
ip route add 192.168.1.0/24 dev eth0 table my_eth0
ip route add default via 192.168.1.1 dev eth0 table my_eth0
ip route add 192.168.1.0/24 dev eth1 table my_eth1
ip route add default via 192.168.1.1 dev eth1 table my_eth1
Fügen Sie nun die Regeln für die zu verwendenden Tabellen hinzu, indem Sie Folgendes ausführen:
ip rule add from 192.168.1.2 table my_eth0
ip rule add from 192.168.1.3 table my_eth1
Dies teilt Ihrem System mit, dass eth0
die my_eth0
Routing-Tabelle zur Beantwortung verwendet wird, wenn eine Anforderung bei Verwendung eingeht. Wenn eine Anfrage eth1
eingeht, antworten Sie mit der my_eth1
Routing-Tabelle. Wenn Sie die Befehle zum Laufen bringen, fügen Sie sie in Ihre /etc/rc.local
Datei ein und machen Sie sie rc.local
ausführbar, indem Sie auf sudo chmod u+x /etc/rc.local
diese Weise ausführen, dass Ihre Routen beim Neustart nicht gelöscht werden. Habe Spaß!
10.0.0.1
zu pingen kann10.0.0.3
?