IOS XE 15.5
IOS XR 5.3
The topology for this demo:
In this post we will be taking a look at EIGRP as PE-CE Routing protocol. Like BGP and OSPF, both IPv4 and IPv6 are supported. This allows us to leverage EIGRP to do the same, there are a few unique details we will have to cover as we have with BGP and OSPF. EIGRP being a distance vector protocol, like RIPv2, normally would have to identify a method when redistributing routes into EIGRP, to calculate DUAL. In our case here, that isn't necessary, this is due to the "cost community" that is leveraged to copy the EIGRP metrics into BGP extended communities, carried in VPNv4/VPNv6 updates to the remote PE and then copied back into EIGRP. Very similar to how the IGP metric is copied to the BGP MED.
We will be leveraging "named mode" EIGRP in our scenario, I rarely ever use the "classic mode" EIGRP anymore. If you ask why, centralized configuration, I can do everything I need to under the Named mode process. At the same time, this is the only place where EIGRPv6 in a VRF is supported. I plan on showing you IOS and IOS XR syntax for the scenario, so we'll start with R14 and XR3, then take a look at R3 and R8.
R14
router eigrp CCIE
!
address-family ipv4 unicast vrf EIGRP autonomous-system 90
!
topology base
exit-af-topology
network 113.0.0.0 0.0.0.255
exit-address-family
!
address-family ipv6 unicast vrf EIGRP autonomous-system 90
!
topology base
exit-af-topology
exit-address-family
XR3
router eigrp CCIE
vrf EIGRP
address-family ipv4
autonomous-system 90
redistribute bgp 50693
interface GigabitEthernet0/0/0/0.1090
!
!
address-family ipv6
autonomous-system 90
redistribute bgp 50693
interface GigabitEthernet0/0/0/0.1090
!
!
router bgp 50693
vrf EIGRP
rd 90:50693
address-family ipv4 unicast
redistribute eigrp 90
!
address-family ipv6 unicast
redistribute eigrp 90
R3
router eigrp CCIE
!
address-family ipv4 unicast vrf EIGRP autonomous-system 90
!
topology base
redistribute bgp 50693
exit-af-topology
network 83.0.0.0 0.0.0.255
network 131.0.0.0 0.0.0.255
exit-address-family
!
address-family ipv6 unicast vrf EIGRP autonomous-system 90
!
topology base
redistribute bgp 50693
exit-af-topology
exit-address-family
!
!
router bgp 50693
address-family ipv4 vrf EIGRP
redistribute eigrp 90
exit-address-family
!
address-family ipv6 vrf EIGRP
redistribute eigrp 90
exit-address-family
R8
router eigrp CCIE
!
address-family ipv4 unicast vrf EIGRP autonomous-system 90
!
topology base
exit-af-topology
network 83.0.0.0 0.0.0.255
network 90.90.90.0 0.0.0.255
exit-address-family
!
address-family ipv6 unicast vrf EIGRP autonomous-system 90
!
topology base
redistribute connected route-map CONNECTED
exit-af-topology
exit-address-family
As you can see the configuration is relatively straightforward and easy to implement.
The part we need to focus on now is the PE EIGRP breakdown for the BGP VPNv4/VPNv6 info to see how that is all put together.
R3#sh bgp vpnv4 unicast vrf EIGRP 113.0.0.0/24
BGP routing table entry for 90:50693:113.0.0.0/24, version 381
Paths: (2 available, best #1, table EIGRP)
Not advertised to any peer
Refresh Epoch 2
Local
192.168.1.13 (metric 3) (via default) from 192.168.1.2 (192.168.1.2)
Origin incomplete, metric 0, localpref 100, valid, internal, best
Extended Community: RT:90:50693 Cost:pre-bestpath:128:10240
0x8800:32768:0 0x8801:90:256 0x8802:65280:2560 0x8803:1:1500
0x8806:0:3232235789
Originator: 192.168.1.13, Cluster list: 192.168.1.2
mpls labels in/out nolabel/24017
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 1
Local
192.168.1.13 (metric 3) (via default) from 192.168.1.14 (192.168.1.14)
Origin incomplete, metric 0, localpref 100, valid, internal
Extended Community: RT:90:50693 Cost:pre-bestpath:128:10240
0x8800:32768:0 0x8801:90:256 0x8802:65280:2560 0x8803:1:1500
0x8806:0:3232235789
Originator: 192.168.1.13, Cluster list: 192.168.1.14
mpls labels in/out nolabel/24017
rx pathid: 0, tx pathid: 0
The majority of the above output has been covered in previous post, R2 is the best path since it has a lower Router ID. I want to focus on the Extended community information and break that down.
0x8800 is route information used for the Route Flag and tag
0x8801 is route metric and AS used for the ASN and dely
0x8802 is route metric and is used for Reliability, next-hop and bandwidth
0x8803 is route metric and is used for Reserve, load and MTU
0x8804 is external route metric and is used for Remote AS and Remote ID
0x8805 is external route metric and is used for Remote protocol and Remote metric
0x8806 is Originating Router ID
I'll add a loopback on R14 and give an IPv4 and IPv6 address, matching in it a route-map and redistributing it into IPv4/IPv6 EIGRP.
router eigrp CCIE
!
address-family ipv4 unicast vrf EIGRP autonomous-system 90
topology base
redistribute connected route-map LO1000
exit-af-topology
exit-address-family
!
address-family ipv6 unicast vrf EIGRP autonomous-system 90
!
topology base
redistribute connected route-map LO1000
exit-af-topology
exit-address-family
!
route-map LO1000 permit 10
match interface Loopback1000
R3#sh bgp vpnv4 unicast vrf EIGRP 192.168.100.0
BGP routing table entry for 90:50693:192.168.100.0/24, version 388
Paths: (2 available, best #1, table EIGRP)
Not advertised to any peer
Refresh Epoch 2
Local
192.168.1.13 (metric 3) (via default) from 192.168.1.2 (192.168.1.2)
Origin incomplete, metric 10880, localpref 100, valid, internal, best
Extended Community: RT:90:50693 Cost:pre-bestpath:129:10880 0x8800:0:0
0x8801:90:288 0x8802:65281:2560 0x8803:1:1500 0x8804:0:1895825422
0x8805:11:0
Originator: 192.168.1.13, Cluster list: 192.168.1.2
mpls labels in/out nolabel/24020
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 1
Local
192.168.1.13 (metric 3) (via default) from 192.168.1.14 (192.168.1.14)
Origin incomplete, metric 10880, localpref 100, valid, internal
Extended Community: RT:90:50693 Cost:pre-bestpath:129:10880 0x8800:0:0
0x8801:90:288 0x8802:65281:2560 0x8803:1:1500 0x8804:0:1895825422
0x8805:11:0
Originator: 192.168.1.13, Cluster list: 192.168.1.14
mpls labels in/out nolabel/24020
rx pathid: 0, tx pathid: 0
As you can see, the outputs changed a bit. We no longer see the 8806 as it is replaced with an 8805 and 8804. These metrics are received as BGP extended communities, when BGP is redistributed into EIGRP, those extended communities are copied as well, EIGRP understands what is being handed off and is able to use those values to populate metrics and run DUAL.
R8#sh ip route vrf EIGRP eigrp | b Gateway
Gateway of last resort is not set
59.0.0.0/24 is subnetted, 1 subnets
D 59.0.0.0 [90/15360] via 83.0.0.3, 00:29:57, GigabitEthernet1.1090
106.0.0.0/24 is subnetted, 1 subnets
D 106.0.0.0 [90/15360] via 83.0.0.3, 00:28:04, GigabitEthernet1.1090
113.0.0.0/24 is subnetted, 1 subnets
D 113.0.0.0 [90/15360] via 83.0.0.3, 00:37:09, GigabitEthernet1.1090
131.0.0.0/24 is subnetted, 1 subnets
D 131.0.0.0 [90/15360] via 83.0.0.3, 5d05h, GigabitEthernet1.1090
D EX 192.168.100.0/24
[170/16000] via 83.0.0.3, 00:08:37, GigabitEthernet1.1090
R8#sh ipv6 route vrf EIGRP eigrp | b App
ld - LISP dyn-eid, a - Application
D 2113:CC1E::/64 [90/15360]
via FE80::20C:29FF:FE06:2644, GigabitEthernet1.1090
D 2913:CC1E::/64 [90/16000]
via FE80::20C:29FF:FE06:2644, GigabitEthernet1.1090
D FC00::9/128 [90/16000]
via FE80::20C:29FF:FE06:2644, GigabitEthernet1.1090
D FC00::90/128 [90/16000]
via FE80::20C:29FF:FE06:2644, GigabitEthernet1.1090
D FC00:100::/64 [90/16000]
via FE80::20C:29FF:FE06:2644, GigabitEthernet1.1090
As you can see, all is well.
Thanks for stopping by!
Rob Riker, CCIE #50693
No comments:
Post a Comment