Startseite MPLS - Anbindung per IGP
Eintrag
Abbrechen

MPLS - Anbindung per IGP

Um Standorte mit MPLS zu vernetzen werden sogenannte “VRFs” verwendet. Virtual Route Forwarding erstellt virtuelle Routingtabellen auf den ISP-Edge Routern. Diese sehen nicht die globalen Routingtabellen, die Standorte haben somit keinen Zugriff auf das Provider Backbone. Mit Hilfe dieser Technik werden “MPLS-VPNs” erstellt. Ich gehe von einem Layer 3 MPLS-VPN aus. Der Verkehr wird im MPLS-Backbone mittels BGP geroutet. BGP wird von einem ISP-Edge zum anderen ISP-Edge geroutet. Die BGP-Session wird mittels Provider IGP geroutet, im Falle von MPLS über die Loopbackinterfaces. Es können mittlerweile sämtliche Routingprotokolle zum Customer-Edge benutzt werden. Diese werden in virtuellen Instanzen dem jeweiligen VRF zugeordnet. Anschließend werden diese ins BGP redistributiert und am anderen Ende vom BGP ins Customer Routingprotokoll redistributiert. Im klassischen Routing sollte dieses Konstrukt vermieden werden, im MPLS muss eine Hin- u. Rückroute erstellt werden.

Um Routen eindeutig zu kennzeichnen wird der Route Distinguisher vergeben. Dieser ist unabhängig vom Route-Target. Dieser sollte fortlaufend gewählt werden um Verwirrungen zu vermeiden.

Um VPN-Mitgliedschaften zu definieren wird das Route-Target verwendet. Dieses muss auf beiden Seiten (oder an den jeweiligen Endpunkten) gleich sein. Das RT muss nicht der Zahl des RD entsprechen.

Im Beispiel benutzt Kunde A EIGRP als Routingprotokoll, Kunde B ein OSPF. Beide Kunden sollen untereinander keinen Zugriff haben, jedoch auf ihre beiden Standorte zugreifen können.

Netzwerkplan

Folgendes wird auf den Routern CE-A1 und CE-A2 eingerichtet:

1
2
3
4
5
6
7
8
9
CE-A1(config)# router eigrp 65530
CE-A1(config-router)# network 10.10.11.0 0.0.0.255
CE-A1(config-router)# network 172.16.0.0
CE-A1(config-router)# no auto-summary

CE-A2(config)# router eigrp 65530
CE-A2(config-router)# network 10.10.22.0 0.0.0.255
CE-A2(config-router)# network 172.16.0.0
CE-A2(config-router)# no auto-summary

EIGRP ist somit aktiv. Diese Konfiguration dient nur als Beispiel und sollte nicht produktiv verwendet werden!

Jetzt müssen die Provider-Edge-Router eingerichtet werden, diese werden BGP als Protokoll verwenden.

Es handelt sich nicht um Unicast BGP, sondern um das Protokoll vpnv4. Dies ist ein Unterschied zum bekannten BGP-Protokoll.

1
2
3
4
5
6
7
8
ISPE1(config)#router bgp 65520
ISPE1(config-router)#neighbor 192.168.1.4 remote-as 65520
ISPE1(config-router)#neighbor 192.168.1.4 update-source lo0
ISPE1(config-router)#no auto-summary
ISPE1(config-router)#address-family vpnv4
ISPE1(config-router-af)#neighbor 192.168.1.4 activate
ISPE1(config-router-af)#neighbor 192.168.1.4 next-hop-self
ISPE1(config-router-af)#neighbor 192.168.1.4 send-community both

BGP wird für das AS 65520 aktiviert, der Nachbar ist ISPE2 (Interface: lo0). Als Protokoll kommt vpnv4 zum Einsatz, der Nachbar wird aktiviert, erweiterte Communities werden mitübertragen. Das Gleiche für den zweiten Router.

1
2
3
4
5
6
7
8
ISPE2(config)#router bgp 65520
ISPE2(config-router)#neighbor 192.168.1.1 remote-as 65520
ISPE2(config-router)#neighbor 192.168.1.1 update-source lo0
ISPE2(config-router)#no auto-summary
ISPE2(config-router)#address-family vpnv4
ISPE2(config-router-af)#neighbor 192.168.1.1 activate
ISPE2(config-router-af)#neighbor 192.168.1.1 next-hop-self
ISPE2(config-router-af)#neighbor 192.168.1.1 send-community both

Der BGP-Prozess erwacht zum Leben:

1
2
3
4
5
*May 26 23:38:06.371: %BGP-5-ADJCHANGE: neighbor 192.168.1.1 Up
*May 26 23:39:33.287: %BGP-5-ADJCHANGE: neighbor 192.168.1.1 session 2 Up

*May 26 23:38:06.439: %BGP-5-ADJCHANGE: neighbor 192.168.1.4 Up
*May 26 23:39:33.943: %BGP-5-ADJCHANGE: neighbor 192.168.1.4 session 2 Up

Jetzt müssen für die jeweiligen Kunden VRFs eingerichtet werden. Achtung: sobald VRF Forwarding auf einem Interface aktiviert wird, wird die IP-Adresse entfernt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ISPE1(config)#vrf definition KundeA
ISPE1(config-vrf)#rd 65520:100
ISPE1(config-vrf)#route-target both 200:2000
ISPE1(config-vrf)#address-family ipv4
ISPE1(config-vrf-af)#exi
ISPE1(config-vrf)#int g1/0
ISPE1(config-if)#vrf forwarding KundeA
% Interface GigabitEthernet1/0 IPv4 disabled and address(es) removed due to disabling VRF KundeA
ISPE1(config-if)# ip address 172.16.11.1 255.255.255.128

ISPE1(config)#vrf definition KundeB
ISPE1(config-vrf)#rd 65520:500
ISPE1(config-vrf)#route-target both 400:2000
ISPE1(config-vrf)#address-family ipv4
ISPE1(config-vrf-af)#exi
ISPE1(config-vrf)#int gi0/0
ISPE1(config-if)#vrf forwarding KundeB
% Interface GigabitEthernet0/0 IPv4 disabled and address(es) removed due to disabling VRF KundeB
ISPE1(config-if)# ip address 172.16.22.1 255.255.255.128
1
2
3
4
ISPE1#sh vrf
  Name                             Default RD          Protocols   Interfaces
  KundeA                           65520:100           ipv4        Gi1/0
  KundeB                           65520:500           ipv4        Gi0/0

Jetzt muss für das VRF “KundeA” EIGRP eingerichtet werden und Redistribution aktiviert werden.

1
2
3
4
5
6
7
8
9
10
11
ISPE1(config)#router eigrp 65520
ISPE1(config-router)#address-family ipv4 vrf KundeA
ISPE1(config-router-af)#network 172.16.0.0
ISPE1(config-router-af)#redistribute bgp 65520 metric 1000 100 255 1 1500
ISPE1(config-router-af)#autonomous-system 65530

ISPE2(config)#router eigrp 65520
ISPE2(config-router)#address-family ipv4 vrf KundeA
ISPE2(config-router-af)#network 172.16.0.0
ISPE2(config-router-af)#redistribute bgp 65520 metric 1000 100 255 1 1500
ISPE2(config-router-af)#autonomous-system 65530

Anschließend ist EIGRP aktiv:

1
2
3
4
5
6
7
8
9
*Mar  1 00:32:48.091: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 65530: Neighbor 172.16.11.129 (FastEthernet0/0) is up: new adjacency

ISPE1#sh ip route vrf KundeA
Gateway of last resort is not set

D     10.0.0.0/8 [90/130816] via 172.16.11.2, 00:01:19, GigabitEthernet1/0
      172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C        172.16.11.0/25 is directly connected, GigabitEthernet1/0
L        172.16.11.1/32 is directly connected, GigabitEthernet1/0

Jetzt wird vom EIGRP ins BGP redistributiert:

1
2
3
4
5
6
7
ISPE1(config)#router bgp 65520
ISPE1(config-router)#address-family ipv4 vrf KundeA
ISPE1(config-router-af)#redistribute eigrp 65530 metric 1

ISPE2(config)#router bgp 65520
ISPE2(config-router)#address-family ipv4 vrf KundeA
ISPE2(config-router-af)#redistribute eigrp 65530 metric 1

Damit ist die Verbindung für KundeA eingerichtet. Jetzt kann ein Ping von 10.10.11.11 auf 10.10.22.11 geschickt werden. Dieser sollte ankommen.

1
2
3
4
5
6
CE-A1#ping 10.10.22.11

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.22.11, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 656/713/796 ms

Kunde B hat OSPF als internes Routingprotokoll konfiguriert. Kunde B hat die gleichen internen IP-Adressen wie Kunde A. Die “Beschränkung”, dass ein VPN nur eindeutige IP-Ranges benutzen kann, gibt es im MPLS nicht. Ausnahme: Kunde A und Kunde B wollen zeitgleich Zugriff untereinander haben. Dann kollidieren die Ranges, denn MPLS kann nicht zaubern. Der Rest liegt als virtuelle Routingtabelle vor (VRF-Instanzen haben keinen Zugriff untereinander, solange nicht der gleiche RT verwendet wird).

Folgendes wird auf den Routern CE-B1 und CE-B2 eingerichtet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CE-B1(config)#router ospf 65535
CE-B1(config-router)#network 172.16.22.0 0.0.0.127 area 0
CE-B1(config-router)#network 10.10.11.0 0.0.0.255 area 1
CE-B2(config)#router ospf 65535
CE-B2(config-router)#network 172.16.22.128 0.0.0.127 area 0
CE-B2(config-router)#network 10.10.22.0 0.0.0.255 area 1

ISPE1(config)# router ospf 65535 vrf KundeB
ISPE1(config-router)# log-adjacency-changes
ISPE1(config-router)#  redistribute bgp 65520 subnets
ISPE1(config-router)#  network 172.16.22.0 0.0.0.127 area 0

ISPE2(config)# router ospf 65535 vrf KundeB
ISPE2(config-router)# log-adjacency-changes
ISPE2(config-router)#  redistribute bgp 65520 subnets
ISPE2(config-router)#  network 172.16.22.128 0.0.0.127 area 0
*May 30 13:44:28.123: %OSPF-5-ADJCHG: Process 65535, Nbr 10.10.22.11 on GigabitEthernet0/0 from LOADING to FULL, Loading Done

OSPF ist somit aktiv. Diese Konfiguration dient nur als Beispiel und sollte nicht produktiv verwendet werden!

Jetzt müssen die Routen ins BGP eingefügt werden.

1
2
3
4
5
6
7
8
9
ISPE1(config)#router bgp 65520
ISPE1(config-router)#address-family ipv4 vrf KundeB
ISPE1(config-router-af)#no auto
ISPE1(config-router-af)#redistribute ospf 65535

ISPE2(config)#router bgp 65520
ISPE2(config-router)#address-family ipv4 vrf KundeB
ISPE2(config-router-af)#no auto
ISPE2(config-router-af)#redistribute ospf 65535

Anschließen werden die Routinginformationen übertragen.

1
2
3
4
5
6
7
8
9
10
11
CE-B2#ping 10.10.11.11

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.11.11, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 484/525/568 ms
CE-B2#sh ip route ospf
     172.16.0.0/25 is subnetted, 2 subnets
O IA    172.16.22.0 [110/2] via 172.16.22.129, 00:02:09, FastEthernet0/0
     10.0.0.0/32 is subnetted, 2 subnets
O IA    10.10.11.11 [110/3] via 172.16.22.129, 00:02:09, FastEthernet0/0

Dies ist lediglich ein Beispiel. Für eventuell auftretende Schäden bin ich nicht verantwortlich, jeder konfiguriert auf eigene Gefahr.