Dies ist mein Szenario:
Ich habe zwei verschiedene Netzwerkschnittstellen, jede mit ihrer eigenen statischen öffentlichen und privaten IP (IPv4), die an ein einzelnes virtuelles Netzwerk angeschlossen sind, das wiederum an eine einzelne virtuelle Maschine angeschlossen ist. Ich möchte in der Lage sein eth1
, die sekundäre Netzwerkschnittstelle ihrem eigenen Netzwerk-Namespace zuzuweisen und diesen Namespace dann zum Ausführen einer Python-Anwendung zu verwenden, die Informationen an eine MySQL-Datenbank sendet.
Im Wesentlichen möchte ich zwei dieser Anwendungen gleichzeitig auf einer einzigen VM ausführen, sie aber in separaten Namespaces ausführen, sodass meine Datenbank Abfragen von zwei verschiedenen öffentlichen IP-Adressen empfängt. Die Verwendung von Namespaces war die beste Option, die ich finden konnte. Ich habe den Python-Teil sortiert (ich verwende einen Python-Wrapper für Netns), aber ich habe Probleme mit dem, was meiner Meinung nach der Nameserver für den Namespace ist.
Ich führe die folgenden Befehle aus, um den Namespace zu erstellen:
>> sudo ip netns add 001
>> sudo ip link set eth1 netns 001
>> sudo ip netns exec 001 ip link set eth1 up
Ich versuche dann einen Ping durchzuführen google.com
und erhalte die folgende Fehlermeldung:
ping: google.com: Temporary failure in name resolution
Ich weiß, dass ich etwas übersehe, und ich gebe zu, dass ich ein absoluter Neuling bin, wenn es um Networking geht. Ich wäre für jede Hilfe dankbar.
Zu Ihrer Information: Ich verwende dafür Azure-Clouddienste. Meine DNS-Server auf beiden Netzwerkschnittstellen sind aufVom virtuellen Netzwerk erbenund die IP-Weiterleitung ist deaktiviert. Der Adressraum für das virtuelle Netzwerk besteht 10.0.0.0/24
aus der primären Schnittstelle ( eth0
) 10.0.0.4
und der sekundären Schnittstelle ( eth1
) 10.0.0.5
.
BEARBEITEN: Ich glaube, ich habe den Dreh raus, was das Netzwerk-Routing angeht, aber mir kommt noch ein weiterer Fehler.
>> sudo ip netns add 001
>> sudo ip link set eth1 netns 001
>> sudo ip netns exec 001 ip link set eth1 up
>> sudo ip netns exec 001 ip addr add 10.0.0.5/24 dev eth1
Das Standard-Gateway für eth0
ist 10.0.0.1
, daher nahm ich an, dass ich das Standard-Gateway von auf dieselbe Adresse einstelle, eth1
da sie dasselbe virtuelle Netzwerk nutzen.
>> sudo ip netns exec 001 ip route add default via 10.0.0.1 dev eth1
Error: Nexthop has invalid gateway.