Sunday, December 23, 2012

EIGRP for IPv6 configuration.

In this lab I tried to implement all the features of EIGRP from this post but this time with IPv6.
The topology was changed though:
On interconnects link-local addresses only.
At first - only basic EIGRP configuration:
R1:
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
#EIGRP for IPv6 still requires some IPv4 address for it's RID. If there is no any IPv4 interface in the up/up state, EIGRP will set it's RID to "0.0.0.0".
!
interface FastEthernet0/0.1
 encapsulation dot1Q 1 native
 ipv6 address 2001::1/64
 ipv6 eigrp 10
 no ipv6 split-horizon eigrp 10
#Just for example.
!
interface FastEthernet0/0.12
 encapsulation dot1Q 12
 ipv6 enable
 ipv6 eigrp 10

 ipv6 bandwidth-percent eigrp 10 30
!
interface FastEthernet0/0.13
 encapsulation dot1Q 13
 ipv6 enable
 ipv6 eigrp 10
!
ipv6 router eigrp 10
 variance 2
 metric weights 0 0 0 1 0 0
#K values still have to be the same across the domain.
 no shutdown #In implementation for IPv6 EIGRP starts in shutdown mode.
 passive-interface default #Configuration for passive interfaces is the same.
 no passive-interface FastEthernet0/0.12
 no passive-interface FastEthernet0/0.13
 maximum-paths 20


R2:
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface FastEthernet0/0.2
 encapsulation dot1Q 2
 ipv6 address 2002::1/64
 ipv6 eigrp 10
!
interface FastEthernet0/0.12
 encapsulation dot1Q 12
 ipv6 enable
 ipv6 eigrp 10
!
interface FastEthernet0/0.24
 encapsulation dot1Q 24
 ipv6 enable
 ipv6 eigrp 10
!
ipv6 router eigrp 10
 metric weights 0 0 0 1 0 0
 no shutdown
 passive-interface FastEthernet0/0.2


R3:
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface FastEthernet0/0.3
 encapsulation dot1Q 3
 ipv6 address 2003::1/64
 ipv6 eigrp 10
 ipv6 eigrp 20
#Actually it is not a new feature. You could do the same with IPv4 using "network" statements instead.
!
interface FastEthernet0/0.13
 encapsulation dot1Q 13
 ipv6 enable
 ipv6 eigrp 10
!
interface FastEthernet0/0.34
 encapsulation dot1Q 34
 ipv6 enable
 ipv6 eigrp 10
!
interface FastEthernet0/0.35
 encapsulation dot1Q 35
 ipv6 enable
 ipv6 eigrp 10
 ipv6 eigrp 20
#In fact the second EIGRP process is used only for demonstration sake. And to show static neighbor configuration.
!
ipv6 router eigrp 10
 metric weights 0 0 0 1 0 0
 no shutdown
 passive-interface FastEthernet0/0.3
!
ipv6 router eigrp 20
 neighbor FE80::C001:1AFF:FE4C:0 FastEthernet0/0.35
#I use only Link-local addresses on the interconnects, therefore I have to specify Link-local address of the neighbor's interface.
 no shutdown
 passive-interface FastEthernet0/0.3


R4:
interface Loopback0
 ip address 4.4.4.4 255.255.255.255
!
interface FastEthernet0/0.4
 encapsulation dot1Q 4
 ipv6 address 2004::1/64
 ipv6 eigrp 10
!
interface FastEthernet0/0.24
 encapsulation dot1Q 24
 ipv6 enable
 ipv6 eigrp 10
!
interface FastEthernet0/0.34
 encapsulation dot1Q 34
 ipv6 enable
 ipv6 eigrp 10
!
interface FastEthernet0/0.46
 encapsulation dot1Q 46
 ipv6 enable
 ipv6 eigrp 10
!
ipv6 router eigrp 10
 metric weights 0 0 0 1 0 0
 no shutdown
 passive-interface FastEthernet0/0.4


R5:
interface Loopback0
 ip address 5.5.5.5 255.255.255.255
!
interface FastEthernet0/0.5
 encapsulation dot1Q 5
 ipv6 address 2005::1/64
 ipv6 eigrp 10
 ipv6 eigrp 20
!
interface FastEthernet0/0.35
 encapsulation dot1Q 35
 ipv6 enable
 ipv6 eigrp 10
 ipv6 eigrp 20
!
interface FastEthernet0/0.56
 encapsulation dot1Q 56
 ipv6 enable
 ipv6 eigrp 10
!
ipv6 router eigrp 10
 metric weights 0 0 0 1 0 0
 no shutdown
 passive-interface FastEthernet0/0.5
!
ipv6 router eigrp 20
 neighbor FE80::C005:1AFF:FE4C:0 FastEthernet0/0.35
 router-id 55.55.55.55
 no shutdown
 passive-interface FastEthernet0/0.5


R6:
interface Loopback0
 ip address 6.6.6.6 255.255.255.255
!
interface FastEthernet0/0.6
 encapsulation dot1Q 6
 ipv6 address 2006::1/64
 ipv6 eigrp 10
!
interface FastEthernet0/0.46
 encapsulation dot1Q 46
 ipv6 enable
 ipv6 eigrp 10
!
interface FastEthernet0/0.56
 encapsulation dot1Q 56
 ipv6 enable
 ipv6 eigrp 10
 ipv6 hello-interval eigrp 10 1
#Only ip version was changed in the syntax.
 ipv6 hold-time eigrp 10 4
!
ipv6 router eigrp 10
 metric weights 0 0 0 1 0 0
 no shutdown
 passive-interface FastEthernet0/0.6
 timers active-time 1


Just to confirm that we have full connectivity:
R1#show ipv6 route eigrp
D   2002::/64 [90/51200]
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
D   2003::/64 [90/28160]
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.13
D   2004::/64 [90/76800]
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.13
D   2005::/64 [90/76800]
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.13
D   2006::/64 [90/79360]
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.13
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12


Now let's implement other features.

Using distribute-list to prevent R1 using link through R3 to 2005::/64 (Loopback0 of R5).
R1:
ipv6 router eigrp 10
 distribute-list prefix-list Deny2005::/64 in FastEthernet0/0.13
#For IPv6 you can use only prefix-list with distribute-list.
!
ipv6 prefix-list Deny2005::/64 seq 5 deny 2005::/64
#Syntax and logic are still the same.
ipv6 prefix-list Deny2005::/64 seq 10 permit ::/0 le 128
!
R1#show ipv6 route 2005::/64
D   2005::/64 [90/104960]
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
#Now R1 uses R2 as the next-hop for this prefix.
   
Now let's add couple loopbacks on R2 and start advertising a summary route for them.
R2:
interface Loopback1
 no ip address
 ipv6 address 3000::1/64
 ipv6 eigrp 10
!
interface Loopback2
 no ip address
 ipv6 address 3000:0:0:1::1/64
 ipv6 eigrp 10


R1#show ipv6 route eigrp
D   2002::/64 [90/51200]
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
D   2003::/64 [90/28160]
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.13
D   2004::/64 [90/76800]
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.13
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
D   2005::/64 [90/104960]
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
D   2006::/64 [90/79360]
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.13
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
D   3000::/64 [90/153600]
#Both specific routes are here now.
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
D   3000:0:0:1::/64 [90/153600]
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12


R2:
interface FastEthernet0/0.12
 ipv6 summary-address eigrp 10 3000::/63 5
!
interface FastEthernet0/0.24
 ipv6 summary-address eigrp 10 3000::/63 5


R1#show ipv6 route eigrp
D   2002::/64 [90/51200]
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
D   2003::/64 [90/28160]
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.13
D   2004::/64 [90/76800]
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.13
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
D   2005::/64 [90/104960]
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
D   2006::/64 [90/79360]
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.13
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12
D   3000::/63 [90/153600]
#And now here is only one summary route.
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.12

Now let's advertise a default route from R6. You can use either redistribution or summary. IOS doesn't support "default-network" for IPv6.
interface FastEthernet0/0.46
 ipv6 summary-address eigrp 10 ::/0 200
#Notice that AD is only locally significant.
!
interface FastEthernet0/0.56
 ipv6 summary-address eigrp 10 ::/0 200
#If you don't advertise this route from both interfaces, R5 would learn specific routes (and default route with suboptimal path through R3).

R4#show ipv6 route eigrp #Notice that there is no more any specific routes from R6 (including it's loopback).
D   ::/0 [90/28160]
     via FE80::C002:1AFF:FE4C:0, FastEthernet0/0.46
D   2001::/64 [90/76800]
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.24
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.34
D   2002::/64 [90/51200]
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.24
D   2003::/64 [90/28160]
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.34
D   2005::/64 [90/76800]
     via FE80::C005:1AFF:FE4C:0, FastEthernet0/0.34
D   3000::/63 [90/153600]
     via FE80::C004:1AFF:FE4C:0, FastEthernet0/0.24


Let's remove summary from R5:
R3#show ipv6 route 2006::/64
D   2006::/64 [90/53760]
     via FE80::C000:1AFF:FE4C:0, FastEthernet0/0.34
     via FE80::C001:1AFF:FE4C:0, FastEthernet0/0.35

R3 uses two equal-cost paths to reach R6's loopback.
If we define R5 as a stub router it will lead to that R3 will have only one path to 2006::/64 (via R4).
R5:
ipv6 router eigrp 10
 stub connected summary
#Connected and summary - are defaults as with IPv4.
!
R3#show ipv6 route 2006::/64
D   2006::/64 [90/53760]
     via FE80::C000:1AFF:FE4C:0, FastEthernet0/0.34


It seems like IOS doesn't support offset-lists for EIGRPv6 route influencing. At least in my version (12.4). It means that only tools for route influencing is bandwith and delay parameters on related interfaces, which are the same as for IPv4. R4 as example:
R4#show ipv6 route 2003::/64
D   2003::/64 [90/51200]
     via FE80::C005:1CFF:FEB0:0, FastEthernet0/0.34
!
interface FastEthernet0/0.34
 delay 10
!
R4#show ipv6 route 2003::/64
D   2003::/64 [90/28160]
     via FE80::C005:1CFF:FEB0:0, FastEthernet0/0.34

I didn't change the bandwidth because metric weights was changed to not include it in the metric calculations.

The last thing to check - authentication. It is said that EIGRP for IPv6 relies on built-in authentication mechanisms of IPv6 (namely AH/ESP). But configuration is almost the same as with IPv4 (key chains with md5-hashed keys). It means that AH/ESP use md5 under the hood. R5 as example:
key chain EIGRPv6
 key 1
   key-string cisco
!
interface FastEthernet0/0.56
 ipv6 authentication mode eigrp 10 md5
 ipv6 authentication key-chain eigrp 10 EIGRPv6

R6 should be configured the same way to form neighborship:
R6#show ipv6 eigrp neighbors
IPv6-EIGRP neighbors for process 10
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   Link-local address:     Fa0/0.56           3 00:00:26   38   228  0  34
    FE80::C001:1CFF:FEB0:0
1   Link-local address:     Fa0/0.46          12 00:22:17  206  1236  0  29
    FE80::C000:1CFF:FEB0:0

   
In conclusion, differences between EIGRP for IPv6 and IPv4:
- distribute-lists support only prefix-lists for route filtering;
- IOS doesn't support "default-network" command for IPv6;
- EIGRP for IPv6 doesn't support offset-lists.

No comments:

Post a Comment