Hallo Allerseits, lange ist es her seit meinem letzen Eintrag. Ich melde mich zurück mit einem besonderen Thema.

Wer hat das nicht erlebt? Ein neuer Kunde kommt ins Datacenter mit einem Layer-2 Link und benutzt genau die gleiche VLAN-ID wie einen weiteren Kunde. Ärger schon vorprogrammiert!

Passiert das selten bis nie, und handelt es sich hier um eine oder zwei VLAN-IDs, dann könnte man (Ich sage nicht, dass es Best Practice ist) die VLAN-ID zu einer neuen, nicht zuvor genutzten ID, mittels „vlan mapping“ übersetzen. Ja, das könnten wir. Wir könnten aber auch auf unseren kompletten Infrastruktur VxLAN implementieren, auch das würde funktionieren.

Aber Q-in-Q ist ebenfalls eine Lösung.

Worum geht es hier? Vielleicht ein Bild hilft mehr als 1000 Wörter.

Wir, Layer-2 ISP, haben zwei Kunden, A und B. Diese verwenden nicht nur die gleiche VLAN-ID sondern auch die gleichen IP-Adressen und als wäre das nicht alles… die landen beide auf unserer Infrastruktur und benutzen gemeinsame Links. Es klingt alles nach einem schlechten Scherz, passiert aber öfters als man denkt.

Was machen wir jetzt?

Q-in-Q kann uns hierbei behilflich sein, diese Situation mit Eleganz zu bewältigen. Der Provider wird, für alle ankommende Pakete eines bestimmten Kunden, einen weiteren zusätzlichen VLAN-Tag auf allen Frames setzen. Zum Beispiel: Ankommende Frames vom „Customer-A“, welche bereits in der VLAN 10 miteinenander kommunizieren, werden zusätzlich mit der VLAN-ID 22 (Auch als S-VLAN bekannt (Service VLAN)) markiert. So fliesst der Datenverkehr für Customer-A innerhalb des Providers mit der VLAN-ID 22. Verlässt das Frame der Provider-Infrastruktur, dann wird dieser Tag entfernt und der Kunde erhält seine Frames wie gewohnt in der VLAN 10.

Bemerkung: Das zusätzliches Tagging bedeutet für unser Frame, dass wir vier weitere Bytes haben werden. Somit musst man vielleicht in Erwägung ziehen MTU auf den gewünschten Interfaces 1504 Bytes zu erhöhen.

Und wie wird das konfiguriert?

Tatsächlich ist das ganz einfach zu konfigurieren. Für dieses Beispiel werden wir die oben eingefügte Topologie verwenden.

Konfigurieren wir zuerst beide ISP-Switches, so dass wir den Verkehr trennen können.

Customer-A: S-VLAN 22
Customer-B: S-VLAN 33

Zuerst konfigurieren wir auf beiden Seiten, die Edge-Ports welche zu den jeweiligen Kunden führen.

ISP-SW1

interface GigabitEthernet0/1
description *** Customer-A S-VLAN 22 ***
switchport access vlan 22
switchport mode dot1q-tunnel
negotiation auto
end

interface GigabitEthernet0/2
description *** Customer-B S-VLAN 33 ***
switchport access vlan 33
switchport mode dot1q-tunnel
negotiation auto
end

ISP-SW2

interface GigabitEthernet0/2
description to Customer-A-SW2
switchport access vlan 22
switchport mode dot1q-tunnel
negotiation auto
end

interface GigabitEthernet0/3
description to Customer-B-SW2
switchport access vlan 33
switchport mode dot1q-tunnel
negotiation auto
end

Jetzt konfigurieren wir unser Trunk zwischen beiden ISP-Switches. So müssen beide Seiten konfiguriert werden.

interface GigabitEthernetx/y
description *** ISP-SW1 S-VLAN 22,33 ***
switchport trunk allowed vlan 22,33
switchport trunk encapsulation dot1q
switchport mode trunk
negotiation auto
end

Die Customer-A und B Switches werden wie folgt konfiguriert

Customer-A-SW1

interface GigabitEthernet0/1
description *** ISP-SW1 ***
switchport trunk allowed vlan 10
switchport trunk encapsulation dot1q
switchport mode trunk
negotiation auto
end

Anschliessend erstellen wir ein Layer-3 Interface innerhalb der VLAN 10

interface Vlan10
ip address 10.240.176.1 255.255.255.0

no shutdown
end

Customer-A-SW2

interface GigabitEthernet0/1
description *** ISP-SW2 ***
switchport trunk allowed vlan 10
switchport trunk encapsulation dot1q
switchport mode trunk
negotiation auto
end

Anschliessend erstellen wir ein Layer-3 Interface innerhalb der VLAN 10

interface Vlan10
ip address 10.240.176.2 255.255.255.0

no shutdown
end

Jetzt auf der anderen Seite…

Customer-B-SW1

interface GigabitEthernet0/1
description to ISP-SW1
switchport trunk allowed vlan 10
switchport trunk encapsulation dot1q
switchport mode trunk
negotiation auto
end

interface Vlan10
ip address 10.240.176.1 255.255.255.0
no shutdown
end

Customer-B-SW2

interface GigabitEthernet0/1
description to ISP-SW2
switchport trunk allowed vlan 10
switchport trunk encapsulation dot1q
switchport mode trunk
negotiation auto
end

interface Vlan10
ip address 10.240.176.2 255.255.255.0
end

So… jetzt testen wir unseren Setup aus der Sicht von Customer-A und Customer-B

Customer-A

Wir setzen einen Ping aus dem SW1.

Customer-A-SW1#ping 10.240.176.2 source vlan10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.240.176.2, timeout is 2 seconds:
Packet sent with a source address of 10.240.176.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/10/14 ms

Um ganz sicher zu sein, dass wir den richtigen Switch erwischt haben, vergleichen wir die MAC-Adresse auf dem SW2 mit der Adresse auf unsere CAM auf dem SW1.

Customer-A-SW1#sh mac address-table | i 10
10 5e00.0004.800a DYNAMIC Gi0/1
Customer-A-SW1#

Customer-A-SW2#sh int vlan10 | i Hardware
Hardware is Ethernet SVI, address is 5e00.0004.800a (bia 5e00.0004.800a)
Customer-A-SW2#

Customer-B

Das selbe Spielchen treiben wir jetzt auf dem SW1 in der Customer-B Infrastruktur.

Customer-B-SW1#ping 10.240.176.2 source vlan10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.240.176.2, timeout is 2 seconds:
Packet sent with a source address of 10.240.176.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/5 ms

Customer-B-SW1#sh mac address-table | i 10
10 5e00.0005.800a DYNAMIC Po10
Customer-B-SW1#

Customer-B-SW2#sh int vlan10 | i Hardware
Hardware is Ethernet SVI, address is 5e00.0005.800a (bia 5e00.0005.800a)
Customer-B-SW2#

Nun können beide Kunden das gleiche VLAN benutzen, aber trotzdem immer noch voneinander getrennt sein, denn der Verkehr innerhalb des Providers läuft über die jeweiligen S-VLANs (Service VLAN).

Layer-2 Tunneling Protocol

Wir können die obere Funktionen erweitern und eine kleine Auswahl an Layer-2 Protokolle verwenden.

ISP-SW2(config-if)#l2protocol-tunnel ?
cdp Cisco Discovery Protocol
drop-threshold Set drop threshold for protocol packets
lldp Link Layer Discovery Protocol
point-to-point point-to-point L2 Protocol
shutdown-threshold Set shutdown threshold for protocol packets
stp Spanning Tree Protocol
vtp Vlan Trunking Protocol

CDP/LLDP

Erweitern wir die Edge-Ports des ISP mit folgenden Befehl, sind wir in der Lage auch CDP Frames über die zwei Standorte zu schicken. Probieren wir das für Customer-A

ISP-SW1

interface GigabitEthernet0/1
description *** Customer-A S-VLAN 22 ***
switchport access vlan 22
switchport mode dot1q-tunnel
negotiation auto
l2protocol-tunnel cdp
end

ISP-SW2

interface GigabitEthernet0/2
description to Customer-A-SW2
switchport access vlan 22
switchport mode dot1q-tunnel
negotiation auto
l2protocol-tunnel cdp
no cdp tlv app
end

Das Resultat sieht wie folgt aus

Customer-A-SW1#sh cdp nei
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay


Device ID Local Intrfce Holdtme Capability Platform Port ID
Customer-A-SW2 Gig 0/1 179 R S I Gig 0/1

Total cdp entries displayed : 1
Customer-A-SW1#

STP

Mit „l2protocol-tunnel stp“ können wir BPDU-Frames über die ganze strecke transportieren, somit können wir unsere alternative Wege über weite Strecken immer noch haben.

Customer-A-SW2#sh spanning-tree vlan 10
...
Gi0/1 Root FWD 4 128.2 P2p
Gi0/2 Altn BLK 4 128.3 P2p


Customer-A-SW2#

VTP

Was auch für CDP und STP funktioniert, gilt auch für VTP. Mit „l2protocol-tunnel vtp“ geniessen wir alle Funktionen von VTP und können VLANs auf Switches über verschiedene Standorte immer synchron und aktuell halten.

Customer-A-SW1#sh vtp status | i version|Domain|Operating
VTP version running : 2
VTP Domain Name : CCIE
VTP Operating Mode : Server
Customer-A-SW1#

Customer-A-SW2#sh vtp status | i version|Domain|Operating
VTP version running : 2
VTP Domain Name : CCIE
VTP Operating Mode : Client
Customer-A-SW2#

SW1 agiert zur Zeit als Server und SW2 als Client. So weit sogut. Schauen wir zuerst, ob VLAN 44 auf beiden Switches existieren:

Customer-A-SW1#sh vlan id 44
VLAN id 44 not found in current VLAN database
Customer-A-SW1#

Customer-A-SW2#sh vlan id 44
VLAN id 44 not found in current VLAN database
Customer-A-SW2#

Jetzt erstellen wir VLAN 44 auf dem Customer-A-SW1

Customer-A-SW1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Customer-A-SW1(config)#vlan 44
Customer-A-SW1(config-vlan)#name Engineering
Customer-A-SW1(config-vlan)#exit
Customer-A-SW1(config)#

Schauen wir jetzt, was auf dem SW2 passiert ist:

Customer-A-SW2#sh vlan brief | i active
1 default active Gi0/3
10 VLAN10 active
44 Engineering active
Customer-A-SW2#

PaGP/LACP

Ja, wir sind auch in der Lage PaGP oder LACP über einen Layer-2 Tunnel zu verwenden. In meinem Beispiel (Siehe Topologie am Anfang dieses Beitrages) habe ich sogar absichtlich einen Link über den ISP und einen direkten Link zwischen Customer-B-SW1 und SW2 genommen.

Die Edge Ports auf der Seite des ISP müssen mit dem Befehl „l2protocol-tunnel point-to-point lacp“ konfiguriert werden.

Customer-B-SW1#sh etherchannel summary | i 10
10 Po10(SU) LACP Gi0/1(P) Gi0/2(P)
Customer-B-SW1#

Customer-B-SW2#sh etherchannel summary | i 10
10 Po10(SU) LACP Gi0/1(P) Gi0/2(P)
Customer-B-SW2#

So, und das wars, so einfach geht es. Wir haben in diesem Eintrag gesehen, wie man eine so genannte Multi-Tenancy Umgebung aufbauen kann.

Hinterlasse einen Kommentar

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..