Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: ✔️ Linux-VMs
Notiz
CentOS, auf das in diesem Artikel verwiesen wird, ist eine Linux-Verteilung und wird End Of Life (EOL) erreichen. Sie sollten sich Ihre Nutzung dieser Distribution ansehen und entsprechend planen. Weitere Informationen finden Sie unter CentOS End Of Life Guidance.
In diesem Artikel wird erläutert, wie Sie mehrere virtuelle Netzwerkschnittstellen auf virtuellen Azure Linux-Computern (VMs) konfigurieren, die die am häufigsten verwendeten Linux-Verteilungen ausführen.
Übersicht
Sie können einen virtuellen Azure-Computer erstellen, der mehrere Netzwerkschnittstellen enthält. Ein häufiges Szenario besteht darin, unterschiedliche Subnetze für Front-End- und Back-End-Konnektivität oder ein Netzwerk zu haben, das für eine Überwachungs- oder Sicherungslösung vorgesehen ist.
Dieser Artikel enthält die erforderliche Konfiguration für mehrere Netzwerkschnittstellen für die Arbeit in einer Azure Linux-VM, die auf dem folgenden Beispielszenario basiert:
- Der virtuelle Computer verfügt über zwei oder mehr Netzwerkschnittstellen im selben Subnetz.
- Der virtuelle Computer verfügt über zwei oder mehr Netzwerkschnittstellen in verschiedenen Subnetzen, aber im selben virtuellen Netzwerk (Virtual Network, VNET).
Ausführliche Informationen finden Sie in den folgenden Screenshots:
In jedem Szenario kann die Konnektivität von jedem virtuellen Computer im selben VNET getestet werden.
Wichtig
Dieser Vorgang kann auch in VMs mit mehr als zwei NICs befolgt werden.
Konfigurieren des Gastbetriebssystems für mehrere Netzwerkschnittstellen
Wenn Sie einer Linux-VM mehrere Netzwerkschnittstellen hinzufügen, müssen Sie Routingregeln erstellen. Mit diesen Regeln kann der virtuelle Computer Datenverkehr senden und empfangen, der zu einer bestimmten Netzwerkschnittstelle gehört. Andernfalls kann der Datenverkehr nicht ordnungsgemäß verarbeitet werden. Beispielsweise kann der Datenverkehr, der zu eth1 gehört, nicht ordnungsgemäß von der definierten Standardroute verarbeitet werden.
In den folgenden Abschnitten wird die erforderliche Konfiguration für zwei Netzwerkschnittstellen bereitgestellt, die in Linux-VMs funktionieren, die die am häufigsten verwendeten Linux-Verteilungen ausführen.
Notiz
Führen Sie alle Befehle in den folgenden Abschnitten mithilfe von Stammberechtigungen aus (durch Wechseln zum Stamm oder mithilfe des sudo Befehlshilfsprogramms).
Gehen Sie in jedem Abschnitt davon aus, dass der virtuelle Computer über zwei Netzwerkschnittstellen verfügt, die über eine der folgenden Einstellungen verfügen:
Routing (ausgabe des
sudo ip route showBefehls):Zwei NICs im selben Subnetz:
default via 10.0.1.1 dev eth0 proto static metric 100 10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.4 metric 100 10.0.1.0/24 dev eth1 proto kernel scope link src 10.0.1.5 metric 101 168.63.129.16 via 10.0.1.1 dev eth0 proto dhcp metric 100 169.254.169.254 via 10.0.1.1 dev eth0 proto dhcp metric 100Zwei NICs in verschiedenen Subnetzen, aber im gleichen VNET:
default via 10.0.1.1 dev eth0 proto static metric 100 10.0.1.0/24 dev eth0 proto kernel scope link src 10.0.1.4 metric 100 10.0.2.0/24 dev eth1 proto kernel scope link src 10.0.2.5 metric 101 168.63.129.16 via 10.0.1.1 dev eth0 proto dhcp metric 100 169.254.169.254 via 10.0.1.1 dev eth0 proto dhcp metric 100
Schnittstellen (ausgabe des
sudo ip address showBefehls):Zwei NICs im selben Subnetz:
lo: inet 127.0.0.1/8 scope host lo eth0: inet 10.0.1.4/24 brd 10.0.1.255 scope global eth0 eth1: inet 10.0.1.5/24 brd 10.0.1.255 scope global eth1Zwei NICs in verschiedenen Subnetzen, aber im gleichen VNET:
lo: inet 127.0.0.1/8 scope host lo eth0: inet 10.0.1.4/24 brd 10.0.1.255 scope global eth0 eth1: inet 10.0.2.5/24 brd 10.0.2.255 scope global eth1
Fügen Sie der Datei "/etc/iproute2/rt_tables " zwei Routingtabellen hinzu, indem Sie die folgenden Befehle ausführen (Sie benötigen einen Eintrag pro NIC):
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tablesWenn weitere Netzwerkschnittstellen an die VM angefügt sind, fügen Sie zusätzliche Routingtabellen hinzu (z . B. 202 eth2-rt, 203 eth3-rt usw.).
Stellen Sie sicher, dass für jede Netzwerkschnittstelle im Verzeichnis "/etc/sysconfig/network-scripts/" eine Konfigurationsdatei vorhanden ist. Sie können neue Konfigurationsdateien für die Netzwerkschnittstelle basierend auf der Konfigurationsdatei ifcfg-eth0 erstellen (die Zeile ändern
DEVICEund dieDHCP_HOSTNAMEZeilenHWADDRaus der neuen Datei entfernen). Führen Sie zu diesem Zweck die folgenden Befehle aus:sudo cat /etc/sysconfig/network-scripts/ifcfg-eth0 > /etc/sysconfig/network-scripts/ifcfg-eth1 sudo sed -i 's/DEVICE=eth0/DEVICE=eth1/' /etc/sysconfig/network-scripts/ifcfg-eth1 sudo sed -i '/DHCP_HOSTNAME/d' /etc/sysconfig/network-scripts/ifcfg-eth1 sudo sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth1Um die Änderung während der Netzwerkstapelaktivierung persistent und angewendet zu machen, bearbeiten Sie die Dateien /etc/sysconfig/network-scripts/ifcfg-eth0 und /etc/sysconfig/network-scripts/ifcfg-eth1 (ifcfg-eth2, ifcfg-eth3 usw., wenn die VM mehr als zwei Netzwerkschnittstellen hat) und ändern Sie den Wert von
NM_CONTROLLEDinyesno. Führen Sie zu diesem Zweck die folgenden Befehle aus:sudo cp -rp /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp/ifcfg-eth0.bkp sudo cp -rp /etc/sysconfig/network-scripts/ifcfg-eth1 /tmp/ifcfg-eth1.bkp sudo sed -i 's/NM_CONTROLLED=yes/NM_CONTROLLED=no/' /etc/sysconfig/network-scripts/ifcfg-eth0 sudo sed -i 's/NM_CONTROLLED=yes/NM_CONTROLLED=no/' /etc/sysconfig/network-scripts/ifcfg-eth1Notiz
Stellen Sie sicher, dass die
NM_CONTROLLED=noZeile sowohl den Dateien "/etc/sysconfig/network-scripts/ifcfg-eth0" als auch "/etc/sysconfig/network-scripts/ifcfg-eth1 " mithilfe descat /etc/sysconfig/network-scripts/ifcfg-eth*Befehls hinzugefügt wird. Wenn sich die Zeile nicht in den Dateien befindet, fügen Sie sie manuell mithilfe dersudo echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0Befehle undsudo echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-eth1Befehle hinzu.Starten Sie nach dem Ändern dieser Konfiguration netzwerkdienste neu, um die Änderungen anzuwenden, indem Sie den folgenden Befehl ausführen:
sudo systemctl restart networkErstellen Sie entsprechende Regel- und Routingdateien mithilfe eines beliebigen Text-Editors (in den folgenden Beispielen wird der vi-Editor verwendet), und fügen Sie die entsprechenden Regeln und Routen zu jeder Datei hinzu. Führen Sie die folgenden Schritte aus, um eine Gruppe von Rule-eth# - und Route-eth# -Dateien pro Netzwerkschnittstelle zu erstellen. Ersetzen Sie die IP-Adresse und subnetzinformationen in jedem Schritt entsprechend. Wenn Sie über weitere Netzwerkschnittstellen verfügen, erstellen Sie denselben Satz von Rule-eth# - und Route-eth# -Dateien für jede Schnittstelle, indem Sie die entsprechenden IP-Adressen, Netzwerk- und Gatewaydetails verwenden.
Erstellen von Regeln und Routen für eth0:
Um die Regeldatei für eth0 zu erstellen, öffnen Sie die Datei "/etc/sysconfig/network-scripts/rule-eth0".
sudo vi /etc/sysconfig/network-scripts/rule-eth0Fügen Sie der Regeldatei den folgenden Inhalt hinzu. Ersetzen Sie die IP-Adresse entsprechend, stellen Sie sicher, dass Sie die IPv4-Adresse in der Konfiguration angeben und den 32-Bit-Wert beibehalten:
from 10.0.1.4/32 table eth0-rt to 10.0.1.4/32 table eth0-rtUm die Routendatei für eth0 zu erstellen, öffnen Sie die Datei "/etc/sysconfig/network-scripts/route-eth0".
sudo vi /etc/sysconfig/network-scripts/route-eth0Fügen Sie der Routendatei den folgenden Inhalt hinzu. Ersetzen Sie die Netzwerk- und Gatewaywerte entsprechend.
10.0.1.0/24 dev eth0 table eth0-rt default via 10.0.1.1 dev eth0 table eth0-rt
Erstellen von Regeln und Routen für eth1:
Um die Regeldatei für eth1 zu erstellen, öffnen Sie die Datei "/etc/sysconfig/network-scripts/rule-eth1".
sudo vi /etc/sysconfig/network-scripts/rule-eth1Fügen Sie der Regeldatei den folgenden Inhalt hinzu. Ersetzen Sie die IP-Adresse entsprechend, stellen Sie sicher, dass Sie die IPv4-Adresse im Befehl angeben und den 32-Bit-Wert beibehalten.
Zwei NICs im selben Subnetz:
from 10.0.1.5/32 table eth1-rt to 10.0.1.5/32 table eth1-rtZwei NICs in verschiedenen Subnetzen, aber im gleichen VNET:
from 10.0.2.5/32 table eth1-rt to 10.0.2.5/32 table eth1-rt
Um die Routendatei für eth1 zu erstellen, öffnen Sie die Datei "/etc/sysconfig/network-scripts/route-eth1".
sudo vi /etc/sysconfig/network-scripts/route-eth1Fügen Sie der Routendatei den folgenden Inhalt hinzu. Ersetzen Sie die Netzwerk- und Gatewaywerte entsprechend.
Zwei NICs im selben Subnetz:
10.0.1.0/24 dev eth1 table eth1-rt default via 10.0.1.1 dev eth1 table eth1-rtZwei NICs in verschiedenen Subnetzen, aber im gleichen VNET:
10.0.2.0/24 dev eth1 table eth1-rt default via 10.0.2.1 dev eth1 table eth1-rt
Führen Sie zum Anwenden der Änderungen den folgenden Befehl aus, um den Netzwerkdienst neu zu starten:
sudo systemctl restart networkDie Routingregeln sind jetzt richtig festgelegt, und die Konnektivität sollte über jede Netzwerkschnittstelle funktionieren. Sie können die Konnektivität mithilfe von Secure Shell (SSH) testen oder beide IPs von einem virtuellen Computer im selben VNET pingen.
Stellen Sie sicher, dass die aktuellen Routen und Regeln mithilfe der folgenden Befehle geladen werden:
sudo ip route show sudo ip rule show
Wichtig
Wenn weiterhin Probleme bei der Kommunikation mit der zweiten NIC auftreten, starten Sie den virtuellen Computer mithilfe des sudo reboot Befehls neu, wiederholen Sie Schritt 7, und testen Sie die Verbindung erneut.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben, können Sie den Azure-Communitysupport stellen. Sie können auch Produktfeedback an die Azure Feedback Community senden.