Internetzugang im internen Netzwerk mit IPTables

679
keysersoze

In einer privaten Cloud, die ich gerade einrichte, habe ich ein paar RHEL-VMs, Netzwerke und einen Router unter Openstack. Mein Router ist mit dem öffentlichen Internet verbunden, und mein Gateway-Knoten ist mit dem Router verbunden und hat Internetzugang über eth0. Der Knoten ist an eth1 mit dem internen Netzwerk verbunden. Ich habe einige interne RHEL-Knoten, die an den eth0-Schnittstellen mit dem internen Netzwerk verbunden sind. Die Knoten können alle miteinander pingen, und ich glaube, dass die ifcfg-Dateien für jeden Knoten korrekt eingerichtet sind.

Mit IPTables habe ich versucht, den internen Knoten Internetzugang zu gewähren:

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT  iptables -A FORWARD -i eth0 -o eth1 -m conntrack -ctstate ESTABLISHED,RELATED -j ACCEPT  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 

Ich habe auch die IPv4-Weiterleitung (standardmäßig deaktiviert) auf der Kernelebene aktiviert. Nach dem Speichern der Konfiguration und des SSHing in einem internen Knoten kann ich keine Adressen außerhalb von Adressen senden:

# ping 8.8.8.8 connect: Network is unreachable 

Mein Router im OpenStack verfügt über eine statische Route mit
Destination CIDR: Mein internes Netzwerk
Next Hop: Mein Gateway-Knoten

Warum kann ich auf meinen internen Knoten keinen Internetzugang erhalten? Was fehlt mir hier?

1

2 Antworten auf die Frage

0
davidgo

Möglicherweise haben Sie die Weiterleitung im Kernel nicht aktiviert.

Versuchen

echo 1 > /proc/sys/net/ipv4/forward 

Wenn das Problem dadurch gelöst wird, machen Sie es dauerhaft, indem Sie /etc/sysctl.conf bearbeiten und die Zeile hinzufügen

net.ipv4.ip_forward = 1 
0
A.B

Network is unreachablebedeutet, dass keine Route definiert ist, um 8.8.8.8 zu erreichen. Dies ist höchstwahrscheinlich ein Problem, das direkt von der VM zurückgegeben wurde und das sich in der VM und nicht auf dem Host befindet.

OpenStack bietet viele verschiedene Netzwerkkonfigurationen. Sie haben gerade "Netzwerke" geschrieben und keine Informationen zu den IPs der VMs gegeben. In der Hoffnung, dass keine unbekannten Einstellungen vorhanden sind (zwischengeschaltete Netzwerke mit zwischengeschalteten NATs), müssen Sie auf jeder VM eine Standardroute über die IP-Adresse in der eth1Schnittstelle Ihres Routers hinzufügen . Wenn diese IP-Adresse beispielsweise 10.0.2.1 war, würde dies folgende Aufgabe erfüllen:

ip route add default via 10.0.2.1 

Für permanente Einstellungen sollte es in seiner spezifischen Konfigurationsdatei hinzugefügt werden (siehe Statische Routen und das Standard-Gateway von Redhat).