PE-CE Communication via EIGRP

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