Internetzugang im internen Netzwerk mit IPTables

1

In einer privaten Cloud, die ich gerade einrichte, befinden sich einige RHEL-VMs, Netzwerke und ein Router auf OpenStack. Mein Router ist mit dem öffentlichen Internet verbunden und mein Gateway-Knoten ist mit dem Router verbunden und verfügt über einen Internetzugang über eth0. Der Knoten ist auf eth1 mit dem internen Netzwerk verbunden. Ich habe einige interne RHEL-Knoten, die über ihre eth0-Schnittstellen mit dem internen Netzwerk verbunden sind. Die Knoten können sich alle gegenseitig anpingen und ich glaube, die ifcfg-Dateien für jeden Knoten sind korrekt eingerichtet.

Mit IPTables habe ich versucht, den internen Knoten den Internetzugang zu ermöglichen, indem ich:

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 Kernel-Ebene aktiviert. Nach dem Speichern der Konfiguration und des SSHing auf einem internen Knoten kann ich keine externen Adressen anpingen:

# ping 8.8.8.8
connect: Network is unreachable

Mein Router in openstack hat eine statische Route mit
Ziel-CIDR: Mein internes Netzwerk.
Nächster Hop: Mein Gateway-Knoten

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

Keysersoze
quelle

Antworten:

0

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

Versuchen

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

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

net.ipv4.ip_forward = 1
Davidgo
quelle
0

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

OpenStack bietet viele verschiedene Netzwerkkonfigurationen. Sie haben gerade "networks" geschrieben und keine Informationen zu den IPs der VMs angegeben. In der Hoffnung, dass es keine unbekannte Einstellung gibt (Zwischennetzwerke mit zwischengeschalteten NATs), müssen Sie auf jeder VM eine Standardroute über die auf der Router- eth1Schnittstelle festgelegte IP hinzufügen . Wenn diese IP zum Beispiel 10.0.2.1 wäre, würde dies so aussehen:

ip route add default via 10.0.2.1

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

AB
quelle