IPv6实验 6VPE

6VPE is a network technology that allows IPv6 routes to be included in L3VPN VRFs.  A new address family, vpnv6 has been added to MP-BGP to support these operations.  An existing IPv4+MPLS L3VPN core is used and this technology functions without IPv6 running on the P routers in the core. VPNv6 address-family neighbors are peered via IPv4 addresses just like vpnv4 address families.

The primary reason for this solution is as of this writing LDP does not support IPv6 prefixes. You can not create a fully functional label switched core using IPv6.  This requires making use of an existing IPv4 label switched core in order to distribute IPv6 labels properly.  6VPE is a solution for using IPv6 inside of L3VPNs, while 6PE is a technology for using IPv6 in the global table on a label switched core.

Here is the network we will be using for this example:

6VPE Lab Diagram


Basic core configuration

The first step in setting up a network like this is to get the core configured with LDP and OSPF.  The idea here is to give R1 the ability to ping R3 Loopback0 from R1 Loopback0, while making use of label switching.  This will be the base that we build the L3VPN MP-BGP peering on later.

We will walk through the configuration of R1. Full router configs are included at the end of the article.

Configure loopback interface:

interface Loopback0 
 ip address 123.123.123.1 255.255.255.255
end
Enable MPLS and IP:

mpls ip
mpls label protocol ldp
mpls ldp router-id Loopback0
Enable OSPF:

router ospf 123 
 router-id 123.123.123.1 
 log-adjacency-changes 
 network 123.123.12.1 0.0.0.0 area 0 
 network 123.123.123.1 0.0.0.0 area 0
Provision PE-P link:

interface FastEthernet1/0 
 description ** Connection to R2 f1/0 ** 
 ip address 123.123.12.1 255.255.255.0 
 speed auto 
 duplex auto 
 mpls ip
end
This should give you a good idea of how we are configuring the core.  Basically repeat this process on the other routers to get a complete end-to-end LSP (label switched path) between R1 and R3.  You can verify this by reviewing a few pieces of information. Examples are below.

R3 routing table:

R3#sh ip route
Codes: L - local, 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, H - NHRP
+ - replicated route, % - next hop override
Gateway of last resort is not set
123.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
O        123.123.12.0/24 [110/2] via 123.123.23.2, 00:00:57, FastEthernet1/0
C        123.123.23.0/24 is directly connected, FastEthernet1/0
L        123.123.23.3/32 is directly connected, FastEthernet1/0
O        123.123.123.1/32 [110/3] via 123.123.23.2, 00:00:57, FastEthernet1/0
O        123.123.123.2/32 [110/2] via 123.123.23.2, 00:00:57, FastEthernet1/0
C        123.123.123.3/32 is directly connected, Loopback0
R3 mpls forwarding table

R3#sh mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
16         Pop Label  123.123.12.0/24  0             Fa1/0      123.123.23.2
17         16         123.123.123.1/32 0             Fa1/0      123.123.23.2
18         Pop Label  123.123.123.2/32 0             Fa1/0      123.123.23.2
Finally a traceroute to R1 Loopback0 from R3:

R3#trace 123.123.123.1 so lo0
Type escape sequence to abort.
Tracing the route to 123.123.123.1
1 123.123.23.2 [MPLS: Label 16 Exp 0] 64 msec 84 msec 64 msec
2 123.123.12.1 120 msec 80 msec *
Based on the output from the verification commands we can see we have routes and labels between R1 and R3.  This is necessary to be able to do MP-BGP peering between R1 and R3 for L3VPN label distribution. With proper connectivity now established we’ll move onto getting VPNv6 peering configured and verified.

MP-BGP VPNv6 Peering

Now that we have our IPv4+MPLS core configured we can layer on the L3VPN configuration to support IPv6 transport.

Our configuration example will focus on R1. Full config files for the other routers are available at the end of this article.

Enable IPv6 on R1

ipv6 unicast-routing
ipv6 cef
Configure VRF that will have IPv6 in it:

vrf definition 6vpe
rd 123:1
route-target export 123:1
route-target import 123:3
!
address-family ipv4
exit-address-family
!
address-family ipv6
exit-address-family
Configure CE facing interface with IPv6 and VRF defined

interface FastEthernet1/1
 description ** Connection to R4 (VRF 6vpe) **
 vrf forwarding 6vpe
 no ip address
 speed 10
 duplex half
 ipv6 address FEC0::1/64
end
Configure MP-BGP peering for VPNv6 between R1 and R3

router bgp 123
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 123.123.123.3 remote-as 123
 neighbor 123.123.123.3 update-source Loopback0
!
address-family ipv4
 no synchronization
 no auto-summary
 exit-address-family
!
address-family vpnv6
 neighbor 123.123.123.3 activate
 neighbor 123.123.123.3 send-community both
exit-address-family
!
address-family ipv6 vrf 6vpe
 redistribute connected
 redistribute static
 no synchronization
exit-address-family
Create static route on R1 to get to Loopback0 on R4

ipv6 route vrf 6vpe FEC0:0:0:1::/64 FEC0::2
This configuration is basically mirrored onto R3. Once the configs are complete the verification process can begin.

Verify mpls forwarding table on R1

R1#sh mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
16         Pop Label  123.123.123.2/32 0             Fa1/0      123.123.12.2
17         Pop Label  123.123.23.0/24  0             Fa1/0      123.123.12.2
18         19         123.123.123.3/32 0             Fa1/0      123.123.12.2
19         No Label   FEC0::/64[V]     3108          aggregate/6vpe
20         No Label   FEC0:0:0:1::/64[V]   \
3762          Fa1/1      FEC0::2
 

Traceroute from R1 to R3 on 6VPE vrf

R1#trace vrf 6vpe ipv6 fec0:0:0:3::1
Type escape sequence to abort.
Tracing the route to FEC0:0:0:3::1
1 ::FFFF:123.123.12.2 [MPLS: Labels 19/20 Exp 0] 116 msec 104 msec 84 msec
2 FEC0:0:0:2::1 [MPLS: Label 20 Exp 0] 80 msec 68 msec 48 msec
3 FEC0:0:0:3::1 104 msec 56 msec 68 msec
 

Traceroute from R4 to R5 over the 6VPE L3VPN

R4#trace ipv6 fec0:0:0:3::1
Type escape sequence to abort.
Tracing the route to FEC0:0:0:3::1
1 FEC0::1 56 msec 16 msec 12 msec
2 ::FFFF:123.123.12.2 40 msec 28 msec 16 msec
3 FEC0:0:0:2::1 48 msec 20 msec 32 msec
4 FEC0:0:0:3::1 48 msec 20 msec 24 msec

Summary

6VPE, at the moment, is the best solution for establishing IPv6 connectivity inside of existing IPv4 L3VPNs, or for creating IPv6-only L3VPNs. From a configuration stand-point its basically adding an IPv6 address family to the VRF,  VPNv6 and IPv6 address family to BGP, and placing an IPv6 address on a VRF enabled interface.  IPv6 traffic is labeled and transmitted across an IPv4+MPLS network using label switching.

R1==========================


ip cef
!
ipv6 unicast-routing
ipv6 cef
!
interface Loopback0
 no ip address
 ipv6 address 2000::1/128
!
interface e0/0
 no ip address
no sh
int e0/0.12
en do 12
 ipv6 address 2012::1/64
!
ipv6 route ::/0 2012::2
!
!

R2===================================


vrf definition 6VPE
 rd 1:1
 route-target export 1:1
 route-target import 1:1
 !
 address-family ipv4
 exit-address-family
 !
 address-family ipv6
 exit-address-family
!
!
ip cef
!
no ip domain lookup
ipv6 unicast-routing
ipv6 cef
!
mpls label protocol ldp
mpls lab ran 2000 2999
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface e0/0
 no ip address
no  shutdown
!
interface e0/0.23
en do 23
 ip address 23.1.1.2 255.255.255.0
 mpls ip
!
interface e0/0.12
en do 12
 vrf forwarding 6VPE
 no ip address
 ipv6 address 2012::2/64
!
router ospf 100
 router-id 2.2.2.2
 log-adjacency-changes
 network 2.2.2.2 0.0.0.0 area 0
 network 23.1.1.2 0.0.0.0 area 0
!
router bgp 100
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 4.4.4.4 remote-as 100
 neighbor 4.4.4.4 update-source Loopback0
 !
 !
 address-family vpnv6
  neighbor 4.4.4.4 activate
  neighbor 4.4.4.4 send-community both
 exit-address-family
 !
 address-family ipv6 vrf 6VPE
  redistribute connected
  redistribute static
  no synchronization
 exit-address-family
!
ipv6 route vrf 6VPE 2000::1/128 2012::1
!
mpls ldp router-id Loopback0
!

R3=============================

ip cef

mpls label protocol ldp
mpls lab r 3000 3999
!
!
!
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface e0/0
 no ip address
no sh
!
interface e0/0.23
en do 23
 ip address 23.1.1.3 255.255.255.0
 mpls ip
!
interface e0/0.34
en do 34
 ip address 34.1.1.3 255.255.255.0
 mpls ip
!
router ospf 100
 router-id 3.3.3.3
 log-adjacency-changes
 network 3.3.3.3 0.0.0.0 area 0
 network 23.1.1.3 0.0.0.0 area 0
 network 34.1.1.3 0.0.0.0 area 0

mpls ldp router-id Loopback0
!

R4==========================


vrf definition 6VPE
 rd 1:1
 route-target export 1:1
 route-target import 1:1
 !
 address-family ipv4
 exit-address-family
 !
 address-family ipv6
 exit-address-family
!
!
ip cef
!
ipv6 unicast-routing
ipv6 cef
!
!
mpls label protocol ldp
mpls lab r 4000 4999
interface Loopback0
 ip address 4.4.4.4 255.255.255.255
!
interface e0/0
 no ip address
no  shutdown

!
interface e0/0.34
en do 34
 ip address 34.1.1.4 255.255.255.0
 mpls ip
!
interface e0/0.45
en do 45
 vrf forwarding 6VPE
 no ip address
 ipv6 address 2045::4/64
!
router ospf 100
 router-id 4.4.4.4
 log-adjacency-changes
 network 4.4.4.4 0.0.0.0 area 0
 network 34.1.1.4 0.0.0.0 area 0
!
router bgp 100
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 2.2.2.2 remote-as 100
 neighbor 2.2.2.2 update-source Loopback0
 !
 address-family ipv4
  no synchronization
  no auto-summary
 exit-address-family
 !
 address-family vpnv6
  neighbor 2.2.2.2 activate
  neighbor 2.2.2.2 send-community both
 exit-address-family
 !
 address-family ipv6 vrf 6VPE
  redistribute connected
  redistribute static
  no synchronization
 exit-address-family
!

ipv6 route vrf 6VPE 2000::5/128 2045::5
!
mpls ldp router-id Loopback0
!

R5=====================


ip cef
ipv6 unicast-routing
ipv6 cef
!
!
interface Loopback0
 no ip address
 ipv6 address 2000::5/128
!
interface e0/0
no sh
int e0/0.45
en do 45
 no ip address
 ipv6 address 2045::5/64
!

ipv6 route ::/0 2045::4
!
!

posted @ 2020-04-22 20:01  cyrusxx  阅读(268)  评论(0编辑  收藏  举报