PE-CE Communication via EIGRP
Problem
You want to use EIGRP to exchange routing information between your CE and PE routers.
Solution
The solution to this problem is similar to the RIP solution in Recipe 26.5 and the OSPF solution in Recipe 26.6. First we have to enable the routing protocol on the CE routers, which we do in the usual way:
Router-CE-A1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router-CE-A1(config)#router eigrp 156 Router-CE-A1(config-router)#network 192.168.1.0 Router-CE-A1(config-router)#network 192.168.5.0 Router-CE-A1(config-router)#no auto-summary Router-CE-A1(config-router)#end Router-CE-A1#
We have disabled EIGRP autosummarization because, for the clarity of the example, we want to see all of the subnets. The other CE router's configuration is similar:
Router-CE-A2#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router-CE-A2(config)#router eigrp 156 Router-CE-A2(config-router)#network 10.0.0.0 Router-CE-A2(config-router)#network 192.168.3.0 Router-CE-A2(config-router)#no auto-summary Router-CE-A2(config-router)#end Router-CE-A2#
And then we must configure the PE routers to take part in EIGRP for this VRF:
Router-PE1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router-PE1(config)#router eigrp 1001 Router-PE1(config-router)#no auto-summary Router-PE1(config-router)#address-family ipv4 vrf NetworkA Router-PE1(config-router-af)#redistribute bgp 100 metric 10000 10 255 1 1500 Router-PE1(config-router-af)#network 192.168.1.0 Router-PE1(config-router-af)#no auto-summary Router-PE1(config-router-af)#autonomous-system 156 Router-PE1(config-router-af)#exit-address-family Router-PE1(config-router)#exit Router-PE1(config)#router bgp 100 Router-PE1(config-router)#address-family ipv4 vrf NetworkA Router-PE1(config-router-af)#redistribute eigrp 156 Router-PE1(config-router-af)#exit-address-family Router-PE1(config-router)#exit Router-PE1(config)#end Router-PE1#
The other PE router's configuration is similar:
Router-PE2#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router-PE2(config)#router eigrp 1001 Router-PE2(config-router)#auto-summary Router-PE2(config-router)#address-family ipv4 vrf NetworkA Router-PE2(config-router-af)#redistribute bgp 100 metric 10000 10 255 1 1500 Router-PE2(config-router-af)#network 192.168.3.0 Router-PE2(config-router-af)#no auto-summary Router-PE2(config-router-af)#autonomous-system 156 Router-PE2(config-router-af)#exit-address-family Router-PE2(config-router)#end Router-PE2#
Discussion
As you should start to expect with MPLS, the CE router configurations don't contain any special commands, and look exactly the same as the nonMPLS configurations that we have discussed elsewhere in this book. The PE configurations are where all of the differences are. The syntax for EIGRP looks very similar to what we saw when using RIP for PE-to-CE routing in Recipe 26.5. First, we configure a global routing process, and then we use the address-family command to define how the protocol should behave for each VRF:
Router-PE1(config)#router eigrp 1001 Router-PE1(config-router)#no auto-summary Router-PE1(config-router)#address-family ipv4 vrf NetworkA Router-PE1(config-router-af)#redistribute bgp 100 metric 10000 10 255 1 1500 Router-PE1(config-router-af)#network 192.168.1.0 Router-PE1(config-router-af)#no auto-summary Router-PE1(config-router-af)#autonomous-system 156 Router-PE1(config-router-af)#exit-address-family
There are several key things to notice in this configuration. First, we use the network command to define which networks will take part in EIGRP. Recall from Chapter 7 that this command defines which interfaces will take part in the protocol, as well as which routing prefixes the EIGRP will distribute.
Second, the redistribute command behaves a little bit differently under EIGRP than under other routing protocols. Specifically, there are no default metric values, so you must explicitly define them either in this command, as we have done here or on a separate line using the metric command. This is generally true with redistribution in EIGRP, so we ask the reader to refer to Chapter 7 for more details.
The third key point is the autonomous-system command:
Router-PE1(config-router-af)#autonomous-system 156
In the OSPF configuration in Recipe 26.6, we created a separate OSPF routing instance for each VRF. That works for OSPF because the protocol doesn't care about the AS number. However, EIGRP routers will not form adjacencies if they don't have the same AS number. Since different customers using different VRFs could easily have the same AS number, we have to define the AS number that EIGRP will use within each address-family configuration block.
Then, once EIGRP is configured and redistributing routes from BGP, we have to make sure that BGP redistributes the routes from EIGRP so that they are available at the other sites that share this VRF:
Router-PE1(config)#router bgp 100 Router-PE1(config-router)#address-family ipv4 vrf NetworkA Router-PE1(config-router-af)#redistribute eigrp 156
Notice that we have redistributed EIGRP by using the customer's AS number, 156, and not the global EIGRP process number, which is 1001 in this example.
We can then look at the customer routing tables from the PE router using the VRF name:
Router-PE1#show ip route vrf NetworkA Routing Table: NetworkA Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set D 192.168.57.0/24 [90/158720] via 192.168.1.5, 01:14:20, FastEthernet0/0 D 192.168.5.0/24 [90/30720] via 192.168.1.5, 01:14:20, FastEthernet0/0 10.0.0.0/32 is subnetted, 1 subnets B 10.8.8.8 [200/156160] via 10.0.0.4, 00:33:06 C 192.168.1.0/24 is directly connected, FastEthernet0/0 B 192.168.2.0/24 [200/0] via 10.0.0.3, 02:01:42 B 192.168.3.0/24 [200/0] via 10.0.0.4, 00:33:52 Router-PE1#
Or we can look at the same information from the CE router using the standard command:
Router-CE-A1#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is not set D 192.168.57.0/24 [90/156160] via 192.168.5.12, 01:56:04, FastEthernet0/0.2 C 192.168.5.0/24 is directly connected, FastEthernet0/0.2 10.0.0.0/32 is subnetted, 1 subnets D 10.8.8.8 [90/158720] via 192.168.1.1, 00:31:26, FastEthernet0/0.1 C 192.168.1.0/24 is directly connected, FastEthernet0/0.1 D EX 192.168.2.0/24 [170/261120] via 192.168.1.1, 01:14:30, FastEthernet0/0.1 D 192.168.3.0/24 [90/30720] via 192.168.1.1, 00:31:47, FastEthernet0/0.1 Router-CE-A1#
Notice that the prefixes located at the same site, such as 192.168.57.0/24, look like internal EIGRP routes. Similarly, the entries for prefixes, such as 10.8.8.8/32 and 192.168.3.0/24, which are located at the other EIGRP site, also appear as internal EIGRP routes. But other networks like 192.168.2.0/24 appear as external routes, exactly as we saw in the OSPF example in Recipe 26.6.
Because EIGRP doesn't use the concept of an area as OSPF does, there is no need for the equivalent of a sham link.
See Also
Chapter 7; Recipe 26.5; Recipe 26.6