Freigeben über


Konfigurieren mehrerer Netzwerkschnittstellen auf virtuellen Azure Linux-Computern

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 show Befehls):

    • 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 100
      
    • Zwei 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 show Befehls):

    • 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 eth1
      
    • Zwei 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
      
  1. 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_tables
    

    Wenn weitere Netzwerkschnittstellen an die VM angefügt sind, fügen Sie zusätzliche Routingtabellen hinzu (z . B. 202 eth2-rt, 203 eth3-rt usw.).

  2. 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 DEVICE und die DHCP_HOSTNAME Zeilen HWADDR aus 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-eth1
    
  3. Um 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_CONTROLLED in yesno. 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-eth1
    

    Notiz

    Stellen Sie sicher, dass die NM_CONTROLLED=no Zeile sowohl den Dateien "/etc/sysconfig/network-scripts/ifcfg-eth0" als auch "/etc/sysconfig/network-scripts/ifcfg-eth1 " mithilfe des cat /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 der sudo echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0 Befehle und sudo echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-eth1 Befehle hinzu.

  4. Starten Sie nach dem Ändern dieser Konfiguration netzwerkdienste neu, um die Änderungen anzuwenden, indem Sie den folgenden Befehl ausführen:

    sudo systemctl restart network
    
  5. Erstellen 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:

      1. 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-eth0
        
      2. Fü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-rt
        
      3. Um die Routendatei für eth0 zu erstellen, öffnen Sie die Datei "/etc/sysconfig/network-scripts/route-eth0".

        sudo vi /etc/sysconfig/network-scripts/route-eth0
        
      4. Fü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:

      1. 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-eth1
        
      2. Fü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-rt
          
        • Zwei 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
          
      3. 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-eth1
        
      4. Fü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-rt
          
        • Zwei 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
          
  6. Führen Sie zum Anwenden der Änderungen den folgenden Befehl aus, um den Netzwerkdienst neu zu starten:

    sudo systemctl restart network
    

    Die 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.

  7. 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.