Skip to main content
Opgelet

Het is van essentieel belang om de theorie goed te begrijpen zodat je de praktische opdrachten in het labo succesvol kan uitvoeren !!!

Inleiding

Multiprotocol Label Switching (MPLS) is een routeringstechniek in telecommunicatienetwerken die gegevens van knooppunt A naar knooppunt B verstuurt op basis van labels in plaats van netwerkadressen.

De labels worden geadverteerd tussen routers zodat ze een label-naar-label mapping kunnen maken.
Deze labels worden aan de IP-pakketten gekoppeld, waardoor de routers het verkeer kunnen doorsturen door te kijken naar het label en niet naar het IP-adres van de bestemming.
Bij MPLS zal daarnaast het label ook wijzigen bij iedere hop.
Dit is duidelijk een verschil met IP forwarding waarbij het IP-adres van de bestemming onveranderd blijft.

MPLS werkt op een laag die over het algemeen wordt beschouwd als liggend tussen de traditionele definities van OSI laag 2 (datalinklaag) en laag 3 (netwerklaag), en wordt daarom vaak een laag 2,5 protocol genoemd.

Momenteel komt MPLS vaak voor als MPLS VPN service.

Enkele voordelen van MPLS zijn:

  1. Uniforme netwerkinfrastructuur
  2. BGP-free core
  3. Meerdere VPN opties
  4. Traffic engineering

Uniforme netwerkinfrastructuur

Met MPLS is het de bedoeling om inkomende pakketten te labelen op basis van hun bestemmingsadres of andere vooraf geconfigureerde criteria en nadien het netwerkverkeer over een gemeenschappelijke infrastructuur te versturen.
Door gebruik te maken van een MPLS-gebaseerde IP backbone kunnen verschillende laag 2 en laag 3 protocollen over de netwerkinfrastructuur getransporteerd worden.
Enkele voorbeelden zijn IPv4 ,IPv6, High-Level Data Link Control (HDLC), Point to Point Protocol (PPP), ... .
De eigenschap waarbij een willekeurig laag 2 frame over een MPLS backbone wordt getransporteerd, wordt Any Transport over MPLS (AToM) genoemd.
De routers die het AToM netwerkverkeer transporteren, hoeven zich niet bewust te zijn van de MPLS payload.
In essentie is MPLS label switching een eenvoudige methode om meerdere protocollen in één netwerk te transporteren.
Het voordeel van een uniforme netwerkinfrastructuur die in staat is om meerdere laag2 en laag3 services aan te bieden aan klanten is dan ook zeer populair bij service providers.

BGP-free core

MPLS maakt het mogelijk om een label te koppelen aan een egress MPLS router in plaats van aan het IP-adres van de bestemming van het pakket.
Het label bevat informatie die elke intermediate MPLS router vertelt naar welke egress edge MPLS router het moet worden doorgestuurd.
De core MPLS routers hoeven niet langer over de informatie te beschikken om de pakketten door te sturen op basis van het IP-adres van de bestemming.
M.a.w. de core MPLS routers in het serviceprovider netwerk hoeven dus niet langer BGP uit te voeren!
Let wel op: De edge MPLS routers moeten wel nog steeds BGP uitvoeren.

Iedere BGP prefix op een ingress MPLS router is gekoppeld aan een next-hop IP-adres.
Dit next-hop IP-adres is het IP-adres van een egress MPLS router. Een IP pakket verkrijgt dus een label die geassocieerd is met een next-hop IP-adres.
Aangezien elke core router een pakket doorstuurt op basis van een toegevoegd label die geassocieerd is met een next-hop IP-adres van een egress MPLS router blijft het dus noodzakelijk dat alle core routers beschikken over alle BGP next-hop IP-adressen van alle egress MPLS routers.
Deze taak kan uitgevoerd worden door een IGP (OSPF, ... ).

BGP Free Core

Meerdere VPN opties

Een Virtual Private Network (VPN) is een netwerk dat een privaat netwerk realiseert via een gemeenschappelijke infrastructuur.
De VPN verbindt m.a.w. onderling meerdere sites of locaties over de gemeenschappelijke infrastructuur van een service provider. Een service provider heeft hierbij de keuze tussen het overlay VPN model en het peer-to-peer VPN model.

Overlay VPN model

In dit model voorziet de service provider point-to-point verbindingen of virtual circuits tussen de routers van de klant gebruikmakend van het netwerk van de service provider.
De routing peering vindt plaats tussen de routers van de klant. Er vindt echter nooit een routing peering plaats tussen routers van de klant en de service provider.
Hierdoor heeft de de service provider geen zicht op de routes van de klant.
The overlay service kan zowel voorzien worden op laag 1, laag 2 en laag 3 van het OSI-model.
Een voorbeeld van een overlay oplossing voor IP-netwerken is generic routing encapsulation (GRE) tunnels.

GRE tunnels

De GRE tunnel voorziet encapsulatie via een GRE header en een extra IP header. De GRE header geeft het transport protocol weer en de extra IP header wordt gebruikt om te routeren door het service provider netwerk. Een voordeel van GRE tunnels is dat men ook protocollen verschillend van IP kan routeren. Om de vertrouwelijkheid van het netwerkverkeer te garanderen kan men gebruik maken van IPsec.

GRE tunnels Wireshark

Peer-to-peer VPN model

In dit model is er weldegelijk een routing peering tussen de routers van de klant en de service provider.
MPLS VPN is een implementatie van MPLS via het peer-to-peer model.
Bij MPLS VPN wordt de router van de klant customer edge (CE) genoemd.
Daarnaast wordt de router van de service provider provider edge (PE) genoemd.
Er zal dus een routing peering plaatsvinden tussen de CE en een PE.
De privacy bij MPLS VPNs wordt gerealiseerd door VRF. VRF garandeert dat het netwerkverkeer van verschillende klanten volledig gescheiden blijft.

MPLS Backbone

Het grote voordeel van het peer-to-peer VPN model voor de service provider is de schaalbaarheid van deze oplossing.
Een extra locatie toevoegen vraagt een minimale inspanning in vergelijking met het overlay VPN model. Uiteraard zijn er ook nadelen.

  1. De klant verliest deels de controle over het routeren tussen de sites
  2. De service provider draagt een grotere verantwoordelijkheid.

Traffic engineering

Het basisidee achter traffic engineering is het optimaal benutten van de netwerkinfrastructuur.
Dit betekent concreet dat het netwerkverkeer via verschillende paden door het netwerk kan gestuurd worden ongeacht de voorkeur die aangeleverd werd door IP routing.
MPLS houdt rekening met de “flow” van pakketten en niet pakket per pakket.
Elke “flow” heeft QoS-eisen en een voorspelbare “traffic demand” nodig.
Twee “flows” met hetzelfde begin- en eindpunt kunnen dus een verschillend pad volgen.
Het resultaat is dat het netwerkverkeer gelijkmatiger wordt verdeeld over de beschikbare verbindingen.
Als verantwoordelijke van een MPLS-netwerk, kan je bijvoorbeeld het netwerkverkeer tussen router A en router B sturen over een pad die duidelijk niet het kortste pad is.

MPLS Traffic engineering

De werking van MPLS

Zoals reeds vermeld zal MPLS labels gebruiken i.p.v. IP-adressen om netwerkverkeer te routeren.
Door pakketten te labelen kan men de volledige flow controleren dit in tegenstelling tot IP-routing waarbij iedere router individueel een beslissing neemt.

MPLS labels

De structuur van een label is relatief eenvoudig. Een label bestaat 32-bits en is opgesplitst in 4 velden.
In onderstaande figuur vind je een voorbeeld van een label.

MPLS Label

De eerste 20 bits zijn de labelwaarde. Deze waarde kan tussen 0 en 220–1 liggen, oftewel 1.048.575.
De eerste 16 waarden (0 tot en met 15) zijn echter vrijgesteld van normaal gebruik; dat wil zeggen, ze hebben een speciale betekenis.

De bits 20 tot en met 22 zijn de drie experimentele (EXP) bits. Deze bits worden uitsluitend gebruikt voor QoS-doeleinden.

Bit 23 is de Bottom of Stack-bit (BoS). Het onderste label in de stapel (stack) krijgt de waarde 0.
Alle andere labels in de stapel krijgen de waarde 1.
De stapel is de verzameling van labels die zich bovenop het pakket bevinden.
De stapel kan uit slechts één label bestaan, maar kan ook uit meer labels bestaan.
Het aantal labels dat je in de stapel kunt vinden is in theoretisch onbeperkt. Het is telkens enkel het bovenste label dat bekeken en verwerkt wordt. In onderstaande figuur vind je een voorbeeld van een stapel labels.

Meerdere MPLS Label

Bits 24 tot en met 31 zijn de acht bits die worden gebruikt voor de Time To Live (TTL).
Deze TTL heeft dezelfde functie als de TTL gevonden in de IP-header.
De TTL wordt met 1 verlaagd bij elke sprong, en de belangrijkste functie is om te voorkomen dat een pakket vast komt te zitten in een routeringslus.
Als de TTL van het label de waarde 0 bereikt, wordt het pakket weggegooid.

MPLS labels bevinden zich tussen Laag 2 en Laag 3 van het OSI-model.
Door toevoegen van labels moet de Data Link Protocol Identifier (PI) aangepast worden.
Dit geeft in de Layer 2 header weer wat het geëncapsuleerde protocol is.
In onderstaande figuur vind je Data Link Protocol Identifier voor MPLS.

Data Link Protocol Identifier

De routers die deelnemen aan het MPLS-proces noemen we ook Label Switched Routers of LSR’s.

Een eerste praktijkvoorbeeld

Topologie en bijhorende configuratie

Om de theorie te verduidelijken maken we gebruik van uitgewerkte voorbeelden.
In het eerste voorbeeld worden 2 sites die tot eenzelfde OSPF area behoren verbonden via een MPLS cloud.
In onderstaande figuur vind je de fysieke topologie van het netwerk terug.

MPLS Topo1

Stap 1: Cisco Express Forwarding

Controleer of Cisco Express Forwarding (CEF) actief is op alle routers.
De status van CEF kan je opvragen via het commando show cef state.

Show cef state

Stap 2: Configureer een IGP op de het netwerk van de service provider.

In het uitgewerkte voorbeeld opteerde men voor OSPF te gebruiken tussen de P en PE routers.
Let op: Iedere core router beschikt ook over een loopback interface. Dit zal later gebruikt worden door BGP.
Het is ook wenselijk de connectiviteit te verifiëren tussen de verschillende core routers vooraleer de volgende stap uit te voeren.
Hieronder vind je een deel van de configuratie van router PE-1.

interface Loopback0
ip address 10.10.10.1 255.255.255.255
ip ospf 1 area 0
!
interface GigabitEthernet0/0
ip address 1.1.1.2 255.255.255.252
duplex auto
speed auto
!
interface GigabitEthernet0/1
ip address 10.0.0.1 255.255.255.252
ip ospf 1 area 0
duplex auto
speed auto
!

Hieronder vind je een deel van de configuratie van router P.

interface Loopback0
ip address 10.10.10.2 255.255.255.255
ip ospf 1 area 0
!
interface GigabitEthernet0/1
ip address 10.0.0.2 255.255.255.252
ip ospf 1 area 0
duplex auto
speed auto
!
interface GigabitEthernet0/2
ip address 10.0.0.5 255.255.255.252
ip ospf 1 area 0
duplex auto
speed auto
!

Hieronder vind je een deel van de configuratie van router PE-1.

interface Loopback0
ip address 10.10.10.3 255.255.255.255
ip ospf 1 area 0
!
interface GigabitEthernet0/0
ip address 1.1.1.5 255.255.255.252
duplex auto
speed auto
!
interface GigabitEthernet0/2
ip address 10.0.0.6 255.255.255.252
ip ospf 1 area 0
duplex auto
speed auto
!

Ter controle kan je de route tabel van de verschillende routers controleren.
In onderstaande figuur vind je de route tabel van de P router.

Show ip route

Stap 3: Configureer MPLS op het netwerk van de service provider.

In deze stap zijn er verschillende opties.

  1. Activeer LDP op alle interfaces die geassocieerd zijn met een IGP instantie. (In ons voorbeeld OSPF 1). Gebruik hiervoor het commando mpls ldp autoconfig.
  2. Voorzie iedere interface tussen een P en PE router van het commando mpls ip.

In dit voorbeeld werd gekozen voor optie 1.
Hieronder vind je een deel van de configuratie van router PE-1.

router ospf 1
mpls ldp autoconfig
!

Hieronder vind je een deel van de configuratie van router P.

router ospf 1
mpls ldp autoconfig
!

Hieronder vind je een deel van de configuratie van router PE-2.

router ospf 1
mpls ldp autoconfig
!

Onderzoek zelf de werking en het nut van het Label Distribution Protocol (LDP)!

Ter controle kan je onderstaande commando's uitvoeren.

  1. show mpls interfaces
  2. show mpls ldp neighbor
  3. traceroute

In onderstaande figuren zie je de resultaten van deze commando's.

Show mpls interfaces

Show mpls ldp neighbor

Traceroute

Stap 4: Configureer BGP tussen PE-1 en PE-2

Hieronder vind je een deel van de configuratie van router PE-1.

router bgp 65000
neighbor 10.10.10.3 remote-as 65000
neighbor 10.10.10.3 update-source Loopback0
!
address-family vpnv4
neighbor 10.10.10.3 activate
exit-address-family
!

Hieronder vind je een deel van de configuratie van router PE-2.

router bgp 65000
neighbor 10.10.10.1 remote-as 65000
neighbor 10.10.10.1 update-source Loopback0
!
address-family vpnv4
neighbor 10.10.10.1 activate
exit-address-family
!

Verklaar de keuze voor address-family vpnv4!

Ter controle kan je het commando show bgp vpnv4 unicast all summary uitvoeren.
In onderstaande figuur zie je het resultaat van dit commando.

Show bgp vpnv4 unicast all summary

Stap 5: Configureer een VRF per VPN.

Via het commando vrf definition VRF name wordt een VRF aangemaakt.
Daarna definieer je een route distinguisher (RD) die gekoppeld is aan de VPN.
Dit gebeurt via het commando rd VPN route distinguisher.
Extra informatie omtrent de RD kan gevonden worden in de RFC 4364.
Kort door de bocht kunnen we stellen dat de RD gebruikt wordt om het IP-adres uit te breiden om zich zo te identificeren met een specifieke VPN.
Daarnaast wordt er ook gebruik gemaakt van route targets extended communities.
Extra informatie omtrent de extended communities kan gevonden worden in de RFC 4360.
Als laatste stap configureer je de interface op PE router die verbonden is met de CE router via het commando ip vrf forwarding VRF name.

Hieronder vind je een deel van de configuratie van router PE-1.

ip vrf ODISEE
rd 4:4
route-target export 4:4
route-target import 4:4
!
interface GigabitEthernet0/0
ip vrf forwarding ODISEE
ip address 1.1.1.2 255.255.255.252
duplex auto
speed auto
!

Hieronder vind je een deel van de configuratie van router PE-2.

ip vrf ODISEE
rd 4:4
route-target export 4:4
route-target import 4:4
!
interface GigabitEthernet0/0
ip vrf forwarding ODISEE
ip address 1.1.1.5 255.255.255.252
duplex auto
speed auto
!

Ter controle kan je een ping uitvoeren.
In onderstaande figuur zie je het resultaat van dit commando.

Ping vrf ODISEE 1.1.1.1

Stap 6: Configureer OSPF area 100 op CE-1, PE-1, PE-2 en CE-2.

Hieronder vind je een deel van de configuratie van router CE-1.

interface GigabitEthernet0/0
ip address 1.1.1.1 255.255.255.252
ip ospf 1 area 100
duplex auto
speed auto
!
interface GigabitEthernet0/3
ip address 192.168.1.254 255.255.255.0
ip ospf 1 area 100
duplex auto
speed auto
!

Hieronder vind je een deel van de configuratie van router PE-1.

interface GigabitEthernet0/0
ip vrf forwarding ODISEE
ip address 1.1.1.2 255.255.255.252
ip ospf 2 area 100
duplex auto
speed auto
!

Hieronder vind je een deel van de configuratie van router PE-2.

interface GigabitEthernet0/0
ip vrf forwarding ODISEE
ip address 1.1.1.5 255.255.255.252
ip ospf 2 area 100
duplex auto
speed auto
!

Hieronder vind je een deel van de configuratie van router CE-2.

interface GigabitEthernet0/0
ip address 1.1.1.6 255.255.255.252
ip ospf 1 area 100
duplex auto
speed auto
!
interface GigabitEthernet0/3
ip address 192.168.2.254 255.255.255.0
ip ospf 1 area 100
duplex auto
speed auto
!

Ter controle kan je het commando show ip route vrf ODISEE ospf uitvoeren.
In onderstaande figuur zie je het resultaat van dit commando.

Show ip route vrf ODISEE ospf

Stap 7: Wederzijdse route redistributie tussen OSPF en BGP.

Hieronder vind je een deel van de configuratie van router PE-1.

router ospf 2 vrf ODISEE
redistribute bgp 65000 subnets
!
router bgp 65000
address-family ipv4 vrf ODISEE
redistribute ospf 2
exit-address-family
!

Hieronder vind je een deel van de configuratie van router PE-2.

router ospf 2 vrf ODISEE
redistribute bgp 65000 subnets
!
router bgp 65000
address-family ipv4 vrf ODISEE
redistribute ospf 2
exit-address-family
!

Ter controle kan je het commando show ip route uitvoeren.
In onderstaande figuur zie je het resultaat van dit commando.

Show ip route

Stap 8: Verifiëren van de configuratie

In onderstaande figuur vind je het resultaat van het ping commando tussen PC-Gent en PC-Brussel.

Ping

In onderstaande figuur vind je het resultaat van het traceroute commando tussen PC-Gent en PC-Brussel.

Traceroute

Een tweede praktijkvoorbeeld

Topologie en bijhorende configuratie

In het tweede voorbeeld gaat de focus naar de MPLS cloud zelf.
In onderstaande figuur vind je de fysieke topologie van het netwerk terug.

MPLS Topo2

Tijdens het pingen tussen CE-1 en CE-2 capteren we op alle verbindingen het netwerkverkeer.

Ping

Het is evident dat CE-1 gebruik maakt van de eigen route tabel om het pakket te versturen naar PE-1.

Show ip route

De captatie tussen CE-1 en PE-1 vertoont de volgende informatie.

Ping

Ook PE-1 zal de eigen route tabellen raadplegen. Daar zie je een verwijzing naar PE-2 via BGP en hierdoor zal het pakket eerst verstuurd worden via P-1

Show ip route vrf KLANT

Show ip route

De captatie tussen PE-1 en P-1 vertoont de volgende informatie.

Ping

Er zijn duidelijk twee labels zichtbaar.

  1. Label 21 met stack 0
  2. Label 24 met stack 1

Uit onderstaande informatie kunnen we de labels koppelen aan specifieke subnetten en exit interfaces.

Show mpls forwarding-table

De captatie tussen P-1 en P-2 vertoont de volgende informatie.

Ping

Uit onderstaande informatie kunnen we de label 21 koppelen aan 192.168.6.1/32 en bijhorende exit interface.

Show mpls forwarding-table

De captatie tussen P-2 en P-3 vertoont de volgende informatie.

Ping

Uit onderstaande informatie kunnen we de label 21 koppelen aan 192.168.6.1/32 en bijhorende exit interface.

Show mpls forwarding-table

De captatie tussen P-3 en PE-2 vertoont de volgende informatie.

Ping

Uit onderstaande informatie kunnen we de label 21 koppelen aan 192.168.6.1/32 en bijhorende exit interface.

Show mpls forwarding-table

In de voorgaande captatie is label 21 verdwenen. De reden is Penultimate Hop Popping (PHP). Zoek meer informatie omtrent PHP op!

De captatie tussen PE-2 en CE-2 vertoont de volgende informatie.

Ping

Ook PE-2 zal de eigen route tabellen raadplegen. Hierdoor zal het pakket verstuurd worden naar CE-2.

Show ip route vrf KLANT

Onderstaande informatie zal je straks nodig hebben om de terugweg te kunnen analyseren.

Show mpls forwarding-table

Uiteindelijk zal het pakket op de correcte interface van CE-2 afgeleverd worden.
Voorgaande uitleg was enkel voor de ping request (heenweg). Probeer aan de hand van onderstaande screenshots en bovenstaande tabellen de ping reply (terugweg) te analyseren.

De captatie tussen CE-2 en PE-2 vertoont de volgende informatie.

Ping

De captatie tussen PE-2 en P-3 vertoont de volgende informatie.

Ping

De captatie tussen P-3 en P-2 vertoont de volgende informatie.

Ping

De captatie tussen P-2 en P-1 vertoont de volgende informatie.

Ping

De captatie tussen P-1 en PE-1 vertoont de volgende informatie.

Ping

De captatie tussen PE-1 en CE-1 vertoont de volgende informatie.

Ping