VLAN-Schnittstellen unter Linux mit dem ip-Befehl erstellen

CompTIABeginner
Jetzt üben

Einführung

In diesem Lab lernen Sie, wie Sie Virtual LAN (VLAN)-Schnittstellen auf einem Linux-System mit dem ip-Befehl aus der iproute2-Suite konfigurieren. Sie werden praktische Erfahrungen mit der Erstellung logisch getrennter Netzwerke auf einer einzigen physischen Schnittstelle sammeln, eine grundlegende Fähigkeit für die Netzwerkadministration und -segmentierung. Dieser Prozess ermöglicht es Ihnen, Netzwerkverkehr zu isolieren und Sicherheit sowie Leistung zu verbessern, ohne zusätzliche physische Hardware.

Sie beginnen mit der Vorbereitung des Systems, was die Installation der notwendigen vlan-User-Space-Utilities und das Laden des 802.1q-Kernel-Moduls zur Aktivierung des VLAN-Tagging umfasst. Nach der anfänglichen Einrichtung identifizieren Sie die primäre Netzwerkschnittstelle, erstellen zwei neue virtuelle Schnittstellen für VLAN 10 und VLAN 20 und weisen jeder eine statische IP-Adresse zu. Abschließend verwenden Sie den Befehl ip a, um zu überprüfen, ob die VLAN-Schnittstellen erfolgreich erstellt wurden und auf dem System aktiv sind.

VLAN-Utilities installieren und das 802.1q Kernel-Modul laden

In diesem Schritt bereiten Sie Ihre Linux-Umgebung für die VLAN-Konfiguration vor. Dies umfasst zwei Hauptaktionen: die Installation der notwendigen User-Space-Tools und das Laden des erforderlichen Kernel-Moduls.

Ein Virtual LAN (VLAN) ermöglicht es Ihnen, logisch getrennte Netzwerke auf derselben physischen Netzwerkinfrastruktur zu erstellen. Um VLANs unter Linux zu verwalten, benötigen Sie das Paket vlan, das Kommandozeilen-Tools bereitstellt. Zusätzlich muss der Kernel VLAN-getaggten Datenverkehr verstehen können, was durch das Kernel-Modul 8021q ermöglicht wird, benannt nach dem IEEE 802.1Q-Netzwerkstandard für VLANs.

Zuerst stellen wir sicher, dass Ihre Paketliste aktuell ist, und installieren dann das Paket vlan. Alle Befehle werden im Terminal ausgeführt.

  1. Aktualisieren Sie den Paketindex auf Ihrem System:

    sudo apt update
    
  2. Installieren Sie das Paket vlan. Das Flag -y bestätigt die Installation automatisch.

    sudo apt install -y vlan
    

    Sie sollten eine Ausgabe sehen, die anzeigt, dass das Paket installiert wird.

    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    The following NEW packages will be installed:
      vlan
    0 upgraded, 1 newly installed, 0 to remove and XX not upgraded.
    Need to get XX.X kB of archives.
    After this operation, XXX kB of additional disk space will be used.
    Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 vlan X.X-X [XX.X kB]
    Fetched XX.X kB in Xs (XX.X kB/s)
    Selecting previously unselected package vlan.
    (Reading database ... XXXXXX files and directories currently installed.)
    Preparing to unpack .../vlan_X.X-X_amd64.deb ...
    Unpacking vlan (X.X-X) ...
    Setting up vlan (X.X-X) ...
    

Nachdem die Tools installiert sind, müssen Sie das Kernel-Modul 8021q laden. Dieses Modul ermöglicht es dem Linux-Kernel, Netzwerkpakete mit VLAN-Tags zu verarbeiten.

  1. Laden Sie das Modul 8021q mit dem Befehl modprobe:

    sudo modprobe 8021q
    

    Dieser Befehl erzeugt normalerweise keine Ausgabe, wenn er erfolgreich ist.

  2. Um zu bestätigen, dass das Modul korrekt geladen wurde, können Sie alle geladenen Module mit lsmod auflisten und die Ausgabe mit grep nach 8021q filtern.

    lsmod | grep 8021q
    

    Die Ausgabe sollte das Modul 8021q anzeigen und bestätigen, dass es im Kernel aktiv ist.

    8021q                  36864  0
    garp                   20480  1 8021q
    mrp                    20480  1 8021q
    

Ihr System ist nun für die VLAN-Konfiguration bereit. Im nächsten Schritt identifizieren Sie Ihre Netzwerkschnittstelle und beginnen mit der Erstellung von VLANs.

Primäre Netzwerkschnittstelle identifizieren

In diesem Schritt identifizieren Sie den Namen der primären Netzwerkschnittstelle auf Ihrem System. VLAN-Schnittstellen sind virtuelle Schnittstellen, die logisch mit einer physischen Netzwerkschnittstelle verbunden sind. Daher müssen Sie zuerst den Namen dieser physischen "Eltern"-Schnittstelle kennen, bevor Sie darauf VLANs erstellen können.

Wir verwenden den ip-Befehl, der der moderne Standard für die Netzwerkkonfiguration unter Linux ist. Insbesondere zeigt der Befehl ip a (oder ip addr) Informationen über alle Netzwerkschnittstellen an.

  1. Öffnen Sie ein Terminal. Ihr aktuelles Arbeitsverzeichnis ist ~/project.

  2. Um alle Netzwerkschnittstellen und ihre Konfigurationen aufzulisten, geben Sie den folgenden Befehl ein und drücken Sie Enter:

    ip a
    

Sie sehen eine Liste aller Netzwerkschnittstellen auf Ihrem System. Suchen Sie nach einer Schnittstelle, die aktiv ist und eine IP-Adresse zugewiesen bekommen hat. Sie können die Schnittstelle lo ignorieren, die das lokale Loopback-Gerät ist. Der Name der primären Schnittstelle beginnt typischerweise mit en (für Ethernet) oder eth.

Hier ist ein Beispiel dafür, wie die Ausgabe aussehen könnte. In diesem Beispiel ist eth0 die primäre physische Schnittstelle.

1: lo: <LOOPBACK,MULTICAST,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname ens5
    inet 172.16.50.186/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
       valid_lft 1892159924sec preferred_lft 1892159924sec
    inet6 fe80::216:3eff:fe00:406/64 scope link
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:f2:70:14:b5 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

Beachten Sie aus der obigen Ausgabe Folgendes:

  • eth0: Dies ist der Name der Schnittstelle. Notieren Sie sich diesen Namen, da Sie ihn in den folgenden Schritten benötigen werden. Ihr Schnittstellenname kann anders sein (z. B. ens33).
  • state UP: Dies zeigt an, dass die Schnittstelle aktiv ist.
  • inet 172.16.50.186/24: Dies ist die IPv4-Adresse, die der Schnittstelle zugewiesen ist.

Nachdem Sie Ihre primäre Netzwerkschnittstelle identifiziert haben, sind Sie bereit, VLAN-Schnittstellen darauf zu erstellen.

Virtuelle Schnittstellen für VLAN 10 und VLAN 20 erstellen

In diesem Schritt verwenden Sie den ip-Befehl, um zwei neue virtuelle Netzwerkschnittstellen zu erstellen. Jede Schnittstelle wird mit einer spezifischen VLAN-ID verknüpft, wodurch Ihr Host effektiv mit zwei verschiedenen logischen Netzwerken, VLAN 10 und VLAN 20, verbunden wird. Diese neuen Schnittstellen werden mit der primären physischen Schnittstelle verknüpft, die Sie im vorherigen Schritt identifiziert haben.

Der Befehl zum Erstellen einer VLAN-Schnittstelle lautet ip link add. Lassen Sie uns seine Struktur aufschlüsseln:

  • sudo ip link add: Der Basisbefehl zum Hinzufügen eines neuen Netzwerk-Links (Schnittstelle).
  • link <physical_interface>: Gibt die übergeordnete physische Schnittstelle an. Ersetzen Sie <physical_interface> durch den Namen, den Sie in Schritt 2 gefunden haben (z. B. eth0).
  • name <vlan_interface_name>: Definiert den Namen für die neue virtuelle Schnittstelle. Eine übliche Konvention ist <physical_interface>.<vlan_id>, wie z. B. eth0.10.
  • type vlan: Gibt an, dass die neue Schnittstelle vom Typ VLAN ist.
  • id <vlan_id>: Weist die numerische VLAN-ID (oder den Tag) zu.

Lassen Sie uns nun die Schnittstellen erstellen. Denken Sie daran, eth0 durch Ihren tatsächlichen Namen der physischen Schnittstelle zu ersetzen, falls dieser abweicht.

  1. Erstellen Sie zuerst die virtuelle Schnittstelle für VLAN 10. Diese Schnittstelle wird eth0.10 genannt.

    sudo ip link add link eth0 name eth0.10 type vlan id 10
    
  2. Erstellen Sie als Nächstes die virtuelle Schnittstelle für VLAN 20 und nennen Sie sie eth0.20.

    sudo ip link add link eth0 name eth0.20 type vlan id 20
    

Wenn diese Befehle erfolgreich sind, erzeugen sie keine Ausgabe. Sie haben nun die logischen Schnittstellen erstellt, aber sie sind noch nicht aktiv oder mit IP-Adressen konfiguriert. Dies werden Sie im nächsten Schritt behandeln.

IP-Adressen zuweisen und VLAN-Schnittstellen aktivieren

In diesem Schritt werden Sie die neu erstellten VLAN-Schnittstellen online bringen und ihnen IP-Adressen zuweisen. Nach der Erstellung befinden sich Netzwerkschnittstellen standardmäßig im Zustand DOWN, was bedeutet, dass sie deaktiviert sind und keinen Datenverkehr senden oder empfangen können. Sie müssen sie aktivieren und ihnen Netzwerkadressen zuweisen, um sie funktionsfähig zu machen.

Wir verwenden den Befehl ip link set up, um die Schnittstellen zu aktivieren, und ip addr add, um IP-Adressen zuzuweisen.

  1. Zuerst müssen Sie die VLAN-Schnittstellen aktivieren oder "hochfahren". Dies ermöglicht ihnen die Teilnahme an der Netzwerkkommunikation. Führen Sie die folgenden Befehle in Ihrem Terminal aus. Denken Sie daran, Ihren Schnittstellennamen zu verwenden, falls dieser nicht eth0 lautet.

    Aktivieren Sie die Schnittstelle eth0.10:

    sudo ip link set dev eth0.10 up
    

    Aktivieren Sie die Schnittstelle eth0.20:

    sudo ip link set dev eth0.20 up
    

    Diese Befehle erzeugen keine Ausgabe, wenn sie erfolgreich sind.

  2. Nachdem die Schnittstellen nun aktiv sind, können Sie jeder einzelnen eine IP-Adresse zuweisen. Wir werden der VLAN 10 eine Adresse aus dem Netzwerk 192.168.10.0/24 und der VLAN 20 eine Adresse aus dem Netzwerk 192.168.20.0/24 zuweisen. Die Notation /24 ist die CIDR-Notation für eine Subnetzmaske von 255.255.255.0.

    Weisen Sie der Schnittstelle eth0.10 die Adresse 192.168.10.10/24 zu:

    sudo ip addr add 192.168.10.10/24 dev eth0.10
    

    Weisen Sie der Schnittstelle eth0.20 die Adresse 192.168.20.10/24 zu:

    sudo ip addr add 192.168.20.10/24 dev eth0.20
    

Ihre VLAN-Schnittstellen sind nun für die aktuelle Sitzung vollständig konfiguriert und aktiv. Im letzten Schritt werden Sie die vollständige Konfiguration überprüfen.

VLAN-Schnittstellenkonfiguration mit ip a überprüfen

In diesem letzten Schritt überprüfen Sie, ob Ihre VLAN-Schnittstellen erfolgreich erstellt, aktiviert und mit den richtigen IP-Adressen konfiguriert wurden. Wenn Sie den Befehl ip a erneut ausführen, sehen Sie die vollständige Netzwerkkonfiguration Ihres Hosts, einschließlich der neuen virtuellen Schnittstellen.

  1. Führen Sie in Ihrem Terminal den Befehl ip a aus, um alle Informationen zu den Netzwerkschnittstellen anzuzeigen.

    ip a
    
  2. Untersuchen Sie die Ausgabe sorgfältig. Sie sollten nun Ihre neuen VLAN-Schnittstellen eth0.10 und eth0.20 zusammen mit Ihren physischen und Loopback-Schnittstellen aufgelistet sehen.

    Die Ausgabe sollte in etwa so aussehen:

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
        inet 172.16.50.186/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159924sec preferred_lft 1892159924sec
    3: eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
        inet 192.168.10.10/24 brd 192.168.10.255 scope global eth0.10
           valid_lft forever preferred_lft forever
    4: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
        link/ether 00:16:3e:00:04:06 brd ff:ff:ff:ff:ff:ff
        inet 192.168.20.10/24 brd 192.168.20.255 scope global eth0.20
           valid_lft forever preferred_lft forever
    

Beachten Sie die folgenden wichtigen Details für Ihre neuen Schnittstellen:

  • eth0.10@eth0 und eth0.20@eth0: Die Namen der VLAN-Schnittstellen. Der Teil @eth0 zeigt explizit an, dass sie mit dem physischen Gerät eth0 verknüpft sind.
  • state UP: Bestätigt, dass beide Schnittstellen aktiv und bereit für die Datenübertragung sind.
  • inet 192.168.10.10/24 und inet 192.168.20.10/24: Die IP-Adressen, die Sie im vorherigen Schritt zugewiesen haben, sind korrekt konfiguriert.

Herzlichen Glückwunsch! Sie haben erfolgreich einen einzelnen Linux-Host konfiguriert, um an zwei verschiedenen VLANs teilzunehmen. Dies zeigt, wie ein Server über eine einzige physische Verbindung mit mehreren logischen Netzwerksegmenten kommunizieren kann.

Hinweis zur Persistenz: Die von Ihnen verwendeten ip-Befehle erstellen eine temporäre Konfiguration, die nach einem Neustart verloren geht. In einer Produktionsumgebung würden Sie diese Änderungen dauerhaft machen, indem Sie Konfigurationsdateien für das Netzwerk bearbeiten, wie z. B. die von Netplan (/etc/netplan/*.yaml) oder dem älteren ifupdown-System (/etc/network/interfaces) verwendeten.

Zusammenfassung

In diesem Lab haben Sie den vollständigen Prozess der Erstellung und Konfiguration von VLAN-Schnittstellen unter einem Linux-System mithilfe des ip-Befehls kennengelernt. Sie begannen mit der Vorbereitung der Umgebung, die die Installation des vlan-Pakets für User-Space-Utilities und das Laden des 8021q-Kernelmoduls zur Aktivierung der VLAN-Tag-Verarbeitung umfasste. Dieser grundlegende Schritt stellt sicher, dass das System VLAN-Traffic verstehen und verwalten kann.

Nach der anfänglichen Einrichtung identifizierten Sie die primäre physische Netzwerkschnittstelle, die als Elternschnittstelle für die VLANs dienen sollte. Anschließend verwendeten Sie den Befehl ip link, um zwei separate virtuelle Schnittstellen zu erstellen, eine für VLAN 10 und eine weitere für VLAN 20, und verknüpften diese mit der Elternschnittstelle. Um diese Schnittstellen funktionsfähig zu machen, wiesen Sie jeder eine eindeutige IP-Adresse zu und aktivierten sie. Der Prozess endete mit der Verwendung des Befehls ip a, um zu überprüfen, ob die neuen VLAN-Schnittstellen erfolgreich erstellt, mit den richtigen IP-Adressen konfiguriert und im Netzwerk aktiv waren.