Ich kenne mich mit CentOS nicht aus und brauche Hilfe beim Routing hierfür. Ich habe eine CentOS-Box mit 3 Netzwerkkarten.
eth0 Link encap:Ethernet
inet addr:10.50.121.16 Bcast:10.50.121.255 Mask:255.255.255.0
eth1 Link encap:Ethernet
inet addr:10.50.128.134 Bcast:10.50.128.255 Mask:255.255.255.0
eth2 Link encap:Ethernet
inet addr:10.50.140.97 Bcast:10.50.140.255 Mask:255.255.255.0
eth0 war eine vorhandene Schnittstelle und hat die Standardroute, ich habe eth1 und eth2 hinzugefügt. Es gibt Gateways in den Segmenten eth1 und eth2 (die .1-Adresse auf beiden). Ich brauche einige Netzwerkflüsse zwischen den NICs eth1 und eth2 (über ihre jeweiligen Gateways), um einige Tests durchführen zu können. Also muss ich dafür wohl eine Richtlinienweiterleitung einrichten?
Bearbeiten: Entschuldigen Sie, um das klarzustellen, ich sage nicht, dass ich versuche, Pakete zwischen den beiden neuen Schnittstellen zu routen. Ich muss einige Pakete von der IP von eth1 an die IP von eth2 über eine Infrastruktur senden (und so eine Konversation zwischen dem VLAN von eth1 und dem VLAN von eth2 simulieren). Ich möchte also Folgendes tun: eth1 -> eth1-vlan-router -> ??? -> eth2-vlan-router->eth2 und dann über die umgekehrte Route antworten können. Mein Fehler, dass ich mich hier nicht ganz klar ausgedrückt habe.
Antwort1
IPv4-Routing ändern /etc/sysctl.conf
und aktivieren.
net.ipv4.ip_forward = 1
Führen Sie es dann aus sysctl -p
, um die Einstellungen anzuwenden.
Um den aktuellen Wert von anzuzeigen net.ipv4.ip_forward
, verwenden Sie:
sysctl net.ipv4.ip_forward
Antwort2
Mit Standard-Netzwerk-APIs ist dies nicht möglich.
Der Linux-Netzwerk-Stack verwendet den sog.schwaches Wirtsmodell, was insbesondere bedeutet, dass jede Adresse, die einer lokalen Schnittstelle zugewiesen ist, als lokal betrachtet wird. Wenn Sie versuchen, ein Paket an eine lokale Schnittstelle zu senden, wird es lokal in eine Schleife gesendet und erreicht nie das Netzwerk.
Obwohl Sie mithilfe von Raw Sockets wahrscheinlich etwas zusammenbasteln könnten, besteht die beste Lösung wahrscheinlich in der Verwendung eines zweiten Hosts, der möglicherweise als virtuelle Maschine implementiert ist.