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:
- Uniforme netwerkinfrastructuur
- BGP-free core
- Meerdere VPN opties
- 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, ... ).
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.
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
.
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.
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.
- De klant verliest deels de controle over het routeren tussen de sites
- 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.
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.
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.
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.
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.
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.
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.
Stap 3: Configureer MPLS op het netwerk van de service provider.
In deze stap zijn er verschillende opties.
- Activeer LDP op alle interfaces die geassocieerd zijn met een IGP instantie. (In ons voorbeeld OSPF 1). Gebruik hiervoor het commando mpls ldp autoconfig.
- 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.
- show mpls interfaces
- show mpls ldp neighbor
- traceroute
In onderstaande figuren zie je de resultaten van deze commando's.
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.
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.
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.
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.
Stap 8: Verifiëren van de configuratie
In onderstaande figuur vind je het resultaat van het ping commando tussen PC-Gent en PC-Brussel.
In onderstaande figuur vind je het resultaat van het traceroute commando tussen PC-Gent en PC-Brussel.
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.
Tijdens het pingen tussen CE-1 en CE-2 capteren we op alle verbindingen het netwerkverkeer.
Het is evident dat CE-1 gebruik maakt van de eigen route tabel om het pakket te versturen naar PE-1.
De captatie tussen CE-1 en PE-1 vertoont de volgende informatie.
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
De captatie tussen PE-1 en P-1 vertoont de volgende informatie.
Er zijn duidelijk twee labels zichtbaar.
- Label 21 met stack 0
- Label 24 met stack 1
Uit onderstaande informatie kunnen we de labels koppelen aan specifieke subnetten en exit interfaces.
De captatie tussen P-1 en P-2 vertoont de volgende informatie.
Uit onderstaande informatie kunnen we de label 21 koppelen aan 192.168.6.1/32 en bijhorende exit interface.
De captatie tussen P-2 en P-3 vertoont de volgende informatie.
Uit onderstaande informatie kunnen we de label 21 koppelen aan 192.168.6.1/32 en bijhorende exit interface.
De captatie tussen P-3 en PE-2 vertoont de volgende informatie.
Uit onderstaande informatie kunnen we de label 21 koppelen aan 192.168.6.1/32 en bijhorende exit interface.
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.
Ook PE-2 zal de eigen route tabellen raadplegen. Hierdoor zal het pakket verstuurd worden naar CE-2.
Onderstaande informatie zal je straks nodig hebben om de terugweg te kunnen analyseren.
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.
De captatie tussen PE-2 en P-3 vertoont de volgende informatie.
De captatie tussen P-3 en P-2 vertoont de volgende informatie.
De captatie tussen P-2 en P-1 vertoont de volgende informatie.
De captatie tussen P-1 en PE-1 vertoont de volgende informatie.
De captatie tussen PE-1 en CE-1 vertoont de volgende informatie.