VLAN Konfiguration

February 10, 2018 in juniper ‐ 3 min read

In diesem Artikel geht es darum, wie man auf einem Junper Router eine VLAN Konfiguration vornehmen kann. VLANs sind virtuelle Netzwerke nach dem IEEE Standard 802.1q.

Die Idee ist es auf der Selben Physik voneinander getrennte Netze zu verwenden. Technisch wird das so umgesetzt, dass dem Frame auf Layer 2 weitere 32Bit hinzugefügt werden, welche die VLAN Information enthalten.

image
Wichtig ist, dass alle Geräte an die Tagged Traffic übergeben wird 802.1q unterstützen. Wenn ein Gerät nicht mit Frames dieser Größe umgehen kann, verwirft es sie.

VLAN Anlegen

Als erstes prüfen wir, ob es bereits vlans gibt.

#show vlans

Jetzt definieren wir zwei vlans mit den Namen first und second. First bekommt die VLAN-ID 10. Second bekommt die VLAN-ID 20.

# set vlans first vlan-id 10 # set vlans second vlan-id 20

Jetzt sehen wir nochmal nach, wie die vlan config aussieht.

root# show vlans default { _    l3-interface vlan.0;_ } first { _    vlan-id 10;_ } second { _    vlan-id 20;_ }

Die Lesart ist relativ selbsterklärend. Bevor wir jetzt einen Port als Member in ein VLAN aufnehmen sollten wir uns nochmal den Unterscheid zwischen Tagged und Untagged anschauen.

Tagged und Untagged Interfaces

VLANs können in zwei Modi auf das Interface definiert werden.

Access (native / untagged):

  • Jeder Port kann nur für ein VLAN als Typ „Acess" fungieren
  • Ein Access Port nimmt untagged traffic an und hängt ihm ein Vlan Tag an
  • Typischerweise werden so Ports definiert an denen Endgeräte, nicht V-Lan fähige Geräte oder bestimmte Netze hängen

Beispiel: Gigabit Ethernet Interface 10 Dieses Interface nimmt eingehenden ungetaggten (normalen) Traffic an und leitet es mit dem Tag „VLAN 10“ weiter. Sollen Broadcastpakete über dieses Interface in das VLAN 10 weitergeleitet werden oder gibt es ein Paket für einen Client der laut ARP Table an diesem Port angeschlossen ist, wird der Vlan Tag vor dem Senden vom Frame wieder entfernt.

ge-0/0/10 { unit 0 { family ethernet-switching { vlan { members first; } }

Trunk (tagged):

  • Ein als Trunk definierter Port übergibt und empfängt getraggten traffic für bestimmte Vlans
  • Typischerweise werden so Ports definiert an denen weitere Vlan-Fähige Geräte angeschlossen sind

Beispiel: Gigabit Ethernet Interface 12 Dieses Interface akzeptiert tagged traffic für die VLANS 10 und 20. Wenn Traffic in diese Netze gesendet werden soll, wird der jeweilige VLAN TAG mit übergeben.

Wichtig: Ein Trunk Port muss nicht member in allen Vlans sein!

ge-0/0/12 { _    unit 0 {_ _      family ethernet-switching {_ _         port-mode trunk;_ _            vlan {_ _               members [ first second ];_ _            }_ _         }_ _      }_ _   }_

IP Adresse auf VLAN legen Bitte der übersicht halber Unit ID und VLAN ID identisch halten!

Als erstes legen wir ein Virtuelles Interface mit eine IPv4 Adresse an

#set interface irb unit <UNIT ID> family inet address <IP/subnetmask>

Anschließend nehmen wir das Interface in ein VLAN auf # set vlans <VLAN NAME> l3interface irb.<Interface ID>

Als letztes definieren wir das Interface als Access Port in diesem VLAN

# set interface ge-0/0/2.20 family ethernet-swtiching port mode access

In unserem Fall könnten die Befehle also so aussehen:

# set interface irb unit 10 family inet address 10.0.10.1 # set vlans 10 l3interface irb.10 # set interface ge-0/0/2.10 family ethernet-swtiching port mode access

Wenn wir uns nun per Netzwerkkabel an das Interface ge-0/0/2 hängen, wird unser Traffic in das VLAN 10 geleitet. Da wir dem Switch auf einem virtuellen Interface, dem Layer 3 Interface irb.10, eine IP Adresse gegeben haben, können wir ihn jetzt über ssh auch auf 10.0.10.1 erreichen.

Cheers, Ori