6vPE即IPv6 MPLS L3VPN,其典型组网环境如图-1所示。6vPE组网中,服务提供商骨干网为IPv4网络。VPN内部及CE和PE之间运行IPv6协议,骨干网中PE和P设备之间运行IPv4协议。PE需要同时支持IPv4和IPv6协议,连接CE的接口上使用IPv6协议,连接骨干网的接口上使用IPv4协议。
PE从CE接收到IPv6路由后,为其分配私网标签,并通过VPNv6路由将私网标签和IPv6路由信息发布给远端PE。PE通过IPv4骨干网转发IPv6报文时,为IPv6报文封装私网标签,以实现在IPv4网络上透明传输IPv6报文,达到IPv6网络通过IPv4网络互通的目的。
如图-2所示:
CE 1、CE 3属于VPN 1,CE 2、CE 4属于VPN 2;
VPN 1使用的Route Target属性为111:1,VPN 2使用的Route Target属性为222:2。不同VPN用户之间不能互相访问;
CE与PE之间配置EBGP交换VPN路由信息;
PE与PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换VPN路由信息。
IPv6用户终端Host通过CE 2连接到PE 1设备,CE 2作为PPPoE client发起PPPoE连接后,PE 1作为PPPoE server通过DHCPv6协议给CE 1分配代理前缀,CE 1再通过代理前缀给下面的主机分配IPv6地址,接入并通过认证后,可以访问属于同一站点的VPN设备。
图-2 6vPE场景下IPv6用户采用PPPoE接入配置组网图
设备 | 接口 | IP地址 | 设备 | 接口 | IP地址 |
CE 1 | XGE3/1/1 | 2001:1::1/64 | P | Loop0 | 2.2.2.9/32 |
PE 1 | Loop0 | 1.1.1.9/32 |
| XGE3/1/4 | 10.1.1.2/24 |
| XGE3/1/1 | 2001:1::2/64 |
| XGE3/1/5 | 10.2.1.1/24 |
| XGE3/1/2 | 2001:2::2/64 | PE 2 | Loop0 | 3.3.3.9/32 |
| XGE3/1/4 | 10.1.1.1/24 |
| XGE3/1/1 | 2001:3::2/64 |
CE 2 | XGE3/1/1 | 2001:2::1/64 |
| XGE3/1/2 | 2001:4::2/64 |
CE 3 | XGE3/1/1 | 2001:3::1/64 |
| XGE3/1/4 | 10.2.1.2/24 |
CE 4 | XGE3/1/1 | 2001:4::1/64 |
|
|
|
采用如下的思路进行配置:
PE 1上配置PPPoE接入。
MPLS骨干网上配置IGP协议,实现骨干网PE和P的互通。
MPLS骨干网上使能MPLS,MPLS LDP,使得PE 1、P、PE 2之间建立LDP会话。
PE设备上配置IPv6 VPN实例,将CE接入PE。
PE与CE之间建立EBGP对等体,引入VPN路由。
PE之间建立MP-IBGP对等体。
配置各接口的IPv6地址及IPv4地址。
# 配置PE 1。
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface ten-gigabitethernet 3/1/4
[PE1-Ten-GigabitEthernet3/1/4] ip address 10.1.1.1 24
[PE1-Ten-GigabitEthernet3/1/4] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
[PE1-ospf-1-area-0.0.0.0] quit
[PE1-ospf-1] quit
# 配置P。
<P> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface ten-gigabitethernet 3/1/4
[P-Ten-GigabitEthernet3/1/4] ip address 10.1.1.2 24
[P-Ten-GigabitEthernet3/1/4] quit
[P] interface ten-gigabitethernet 3/1/5
[P-Ten-GigabitEthernet3/1/5] ip address 10.2.1.1 24
[P-Ten-GigabitEthernet3/1/5] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
[P-ospf-1-area-0.0.0.0] quit
[P-ospf-1] quit
# 配置PE 2。
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface ten-gigabitethernet 3/1/4
[PE2-Ten-GigabitEthernet3/1/4] ip address 10.2.1.2 24
[PE2-Ten-GigabitEthernet3/1/4] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
[PE2-ospf-1-area-0.0.0.0] quit
[PE2-ospf-1] quit
# 配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface ten-gigabitethernet 3/1/4
[PE1-Ten-GigabitEthernet3/1/4] mpls enable
[PE1-Ten-GigabitEthernet3/1/4] mpls ldp enable
[PE1-Ten-GigabitEthernet3/1/4] quit
# 配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls ldp
[P-ldp] quit
[P] interface ten-gigabitethernet 3/1/4
[P-Ten-GigabitEthernet3/1/4] mpls enable
[P-Ten-GigabitEthernet3/1/4] mpls ldp enable
[P-Ten-GigabitEthernet3/1/4] quit
[P] interface ten-gigabitethernet 3/1/5
[P-Ten-GigabitEthernet3/1/5] mpls enable
[P-Ten-GigabitEthernet3/1/5] mpls ldp enable
[P-Ten-GigabitEthernet3/1/5] quit
# 配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface ten-gigabitethernet 3/1/4
[PE2-Ten-GigabitEthernet3/1/4] mpls enable
[PE2-Ten-GigabitEthernet3/1/4] mpls ldp enable
[PE2-Ten-GigabitEthernet3/1/4] quit
# 配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 222:2
[PE1-vpn-instance-vpn2] quit
[PE1] interface ten-gigabitethernet 3/1/1
[PE1-Ten-GigabitEthernet3/1/1] ip binding vpn-instance vpn1
[PE1-Ten-GigabitEthernet3/1/1] ipv6 address 2001:1::2 64
[PE1-Ten-GigabitEthernet3/1/1] quit
[PE1] interface ten-gigabitethernet 3/1/2
[PE1-Ten-GigabitEthernet3/1/2] ip binding vpn-instance vpn2
[PE1-Ten-GigabitEthernet3/1/2] ipv6 address 2001:2::2 64
[PE1-Ten-GigabitEthernet3/1/2] quit
# 配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] route-distinguisher 200:2
[PE2-vpn-instance-vpn2] vpn-target 222:2
[PE2-vpn-instance-vpn2] quit
[PE2] interface ten-gigabitethernet 3/1/1
[PE2-Ten-GigabitEthernet3/1/1] ip binding vpn-instance vpn1
[PE2-Ten-GigabitEthernet3/1/1] ipv6 address 2001:3::2 64
[PE2-Ten-GigabitEthernet3/1/1] quit
[PE2] interface ten-gigabitethernet 3/1/2
[PE2-Ten-GigabitEthernet3/1/2] ip binding vpn-instance vpn2
[PE2-Ten-GigabitEthernet3/1/2] ipv6 address 2001:4::2 64
[PE2-Ten-GigabitEthernet3/1/2] quit
# 配置CE 1的接口IP地址。
<CE1> system
[CE1] interface ten-gigabitethernet 3/1/1
[CE1-Ten-GigabitEthernet3/1/1] ipv6 address 2001:1::1 64
[CE1-Ten-GigabitEthernet3/1/1] quit
# 配置CE 2的接口IP地址。
<CE2> system
[CE2] interface ten-gigabitethernet 3/1/1
[CE2-Ten-GigabitEthernet3/1/1] ipv6 address 2001:2::1 64
[CE2-Ten-GigabitEthernet3/1/1] quit
# 配置CE 3的接口IP地址。
<CE3> system
[CE3] interface ten-gigabitethernet 3/1/1
[CE3-Ten-GigabitEthernet3/1/1] ipv6 address 2001:3::1 64
[CE3-Ten-GigabitEthernet3/1/1] quit
# 配置CE 4的接口IP地址。
<CE4> system
[CE4] interface ten-gigabitethernet 3/1/1
[CE4-Ten-GigabitEthernet3/1/1] ipv6 address 2001:4::1 64
[CE4-Ten-GigabitEthernet3/1/1] quit
# 配置CE 1。
[CE1] bgp 65410
[CE1-bgp-default] peer 2001:1::2 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001:1::2 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
# 配置CE 2。
[CE1] bgp 65420
[CE1-bgp-default] peer 2001:2::2 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001:2::2 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
# 配置CE 3。
[CE1] bgp 65430
[CE1-bgp-default] peer 2001:3::2 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001:3::2 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
# 配置CE 4。
[CE1] bgp 65440
[CE1-bgp-default] peer 2001:4::2 as-number 100
[CE1-bgp-default] address-family ipv6 unicast
[CE1-bgp-default-ipv6] peer 2001:4::2 enable
[CE1-bgp-default-ipv6] import-route direct
[CE1-bgp-default-ipv6] quit
[CE1-bgp-default] quit
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001:1::1 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001:1::1 enable
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] ip vpn-instance vpn2
[PE1-bgp-default-vpn2] peer 2001:2::1 as-number 65420
[PE1-bgp-default-vpn2] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn2] peer 2001:2::1 enable
[PE1-bgp-default-ipv6-vpn2] quit
[PE1-bgp-default-vpn2] quit
[PE1-bgp-default] quit
# 配置PE 2。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 2001:3::1 as-number 65430
[PE1-bgp-default-vpn1] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn1] peer 2001:3::1 enable
[PE1-bgp-default-ipv6-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] ip vpn-instance vpn2
[PE1-bgp-default-vpn2] peer 2001:4::1 as-number 65440
[PE1-bgp-default-vpn2] address-family ipv6 unicast
[PE1-bgp-default-ipv6-vpn2] peer 2001:4::1 enable
[PE1-bgp-default-ipv6-vpn2] quit
[PE1-bgp-default-vpn2] quit
[PE1-bgp-default] quit
# 配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv6
[PE1-bgp-default-vpnv6] peer 3.3.3.9 enable
[PE1-bgp-default-vpnv6] quit
[PE1-bgp-default] quit
# 配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] peer 1.1.1.9 as-number 100
[PE2-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv6
[PE2-bgp-default-vpnv6] peer 1.1.1.9 enable
[PE2-bgp-default-vpnv6] quit
[PE2-bgp-default] quit
# 配置虚拟模板接口1的参数,采用CHAP认证对端。
<PE1> system-view
# 取消对RA消息发布的抑制。
# 在Ten-GigabitEthernet3/1/2接口上配置本端自动生成IPv6链路本地地址。
# 取消对RA消息发布的抑制。
# 配置接口工作在DHCPv6服务器模式。
# 在Ten-GigabitEthernet3/1/2接口上启用PPPoE server协议,将该以太网接口与虚拟模板接口1绑定。
# 在Ten-GigabitEthernet3/1/1接口上指定漫游域dm1,如果从接口上线的用户需要使用用户名中携带的ISP域进行认证,但该域在设备上不存在,则可以通过接口上指定的漫游域作为用户的归属域进行认证。
# 配置DHCPv6前缀池6,包含的前缀为2003::/32,分配的前缀长度为42。
# 创建名称为pool1的IPv6地址池,在地址池下引用前缀池6。
# 配置PPPoE用户。
# 在ISP域下配置使用本地AAA方案,并为用户授权地址池属性。
本设备(本例中为PE1)仅支持作为PPPoE Server,不支持作为PPPoE Client。
担任PPPoE Client角色的产品的不同版本的配置命令可能存在差异,本节配置仅供参考,有关PPPoE Client上配置的详细介绍,请参见担任PPPoE Client角色的设备的产品手册。
# 在Dialer1接口上开启共享DDR。
# 配置CE2被PE1以CHAP方式认证时CE2发送的CHAP用户名和密码。
# 配置PPPoE client工作在永久在线模式。
# 配置DDR自动拨号的间隔时间为60秒。
# 配置Dialer1接口作为DHCPv6客户端,通过DHCPv6方式获取IPv6地址和其他网络配置参数。
# 配置Dialer1接口作为DHCPv6客户端,通过DHCPv6方式获取IPv6前缀和其他网络配置参数;指定获取到IPv6前缀后,创建编号为1的IPv6前缀,该前缀编号1对应的IPv6前缀为DHCPv6客户端获取到的前缀。
# 配置一个PPPoE会话,该会话对应Dialer bundle 1(Dialer bundle 1对应Dialer1接口)。
# 配置缺省路由。
# 接口Ten-GigabitEthernet3/1/2上取消对RA消息发布的抑制。
# 在接口Ten-GigabitEthernet3/1/2上配置动态获取IPv6前缀的编号为1,即该接口将使用编号为1的前缀生成自己的IPv6地址2003::123:1:1(CE2下连用户需要将该地址设置为自己的网关地址),并将编号为1的IPv6前缀通过RA报文分配给终端设备。
# 在PE设备上执行
以PE 1为例:
配置完成后,当CE2使用用户名user1、密码123456TESTplat&!,通过PPPoE接入PE1后,PE1通过DHCPv6协议为CE2分配一个代理前缀。
# 显示DHCPv6前缀绑定信息。
Pool: pool1
IPv6 prefix Type Lease expiration
2003::/42 Auto(C) Jul 10 19:45:01 2019
以上信息表示,PE1通过DHCPv6协议为CE2分配一个代理前缀。
# 显示CE2上创建的IPv6前缀信息。
Number Prefix Type
1 2003::/42 Dynamic
以上信息表示,CE2从PE1获取到代理前缀后,已根据
CE2把分配到的代理前缀2003::/42再分配给Host,Host用来生成IPv6全球单播地址。
CE1
CE2
CE3
CE4
PE1
aaa roam-domain dm1
PE2
P