在PPPoE拨号环境下实现基于前缀委派(PD)的IPv6(H3C设备)

本文于2020年4月成文。

2020年9月12日修订。

2024年6月13日再次修订。

之前写过一篇《在PPPoE拨号宽带上使用IPv6(Cisco路由器)》,今天就H3C设备又写了一篇。

使用此配置,H3C路由器(或其他H3C网络边界设备)可以使用DHCPv6 PD从运营商请求一个前缀,并使用该前缀为内网的终端分配全球单播IPv6地址(公共地址)。公网上的IPv6节点可以直接访问内网的IPv6终端,不需要像IPv4做端口映射之类的配置。

但有几点需要注意:

1、该配置需要V7版本的设备软件;

2、内网终端上网期间,路由器的WAN口掉线重拨,会导致内网终端IPv6不通。因为双栈客户端优先使用IPv6 DNS解析域名,所以同时会导致双栈终端IPv4应用缓慢。

此问题是由于路由器处理失效前缀时,未遵循RFC7084的规定——未通过RA向内网终端宣告前缀失效。无效的前缀因其valid lifetime还有很长时间,可残留在终端上长达一两天。

对于软件版本较老的网关设备,可通过重启内网终端设备来临时缓解。(对一般家用网络,电脑会每天重启;手机会经常脱离、加入Wi-Fi,会重新获取地址,故影响不大。)

---------------------2020年9月12日更新---------------------

经过笔者与H3C研发部门长达五个月的沟通,H3C终于在R5435P02版本中增加了一个新命令,用于处理该种情况,详见下文接口中的配置命令。

---------------------2024年6月13日更新---------------------

前文所述V7 R5435P02版本,仅针对H3C的一体化无线设备(MSG/WAC等),并不适用于路由器设备。

H3C在2024年5月发布了路由器产品的V7 R6749P2102(2023年度稳定版本),在此版本中路由器产品首次支持对IPv6失效前缀宣告无效。

在这里重点标记以下这个关键的命令(用于宣告失效的被委派IPv6前缀无效):

ipv6 nd ra invalid-delegated-prefix advertise enable

dialer-group 1 rule ip permit
#
ipv6 dhcp pool stateless  //创建DHCPv6无状态地址池
 option-group 1  //引用DHCPv6选项组1中的信息(见Dialer接口中的相关命令)
#
interface Dialer5  //PPPoE拨号接口
 mtu 1492
 ppp chap password simple pwd
 ppp chap user usr
 ppp ipcp dns admit-any 
 ppp ipcp dns request 
 ppp pap local-user usr password simple pwd 
 dialer bundle enable
 dialer-group 1
 dialer timer idle 0
 dialer timer autodial 60
 ip address ppp-negotiate
 tcp mss 1452
 nat outbound
 ipv6 address auto  //无状态自动配置IPv6(全球单播)地址
 ipv6 address auto link-local  //设置IPv6链路本地地址
 ipv6 dhcp client pd 1 rapid-commit option-group 1  //通过DHCPv6 PD向ISP请求前缀。pd 1指将获得的前缀分配为前缀编号1;option-group 1指将DHCPv6下发的其他选项(如DNS地址)指派到本地的选项组(option-group);rapid-commit指优先使用DHCPv6快速交互(rapid commit)模式。
#
interface Vlan-interface1  //第一个内网(比如是内部员工或家庭成员使用)
 ip address 192.168.8.1 255.255.255.0
 ipv6 mtu 1280  //H3C V7版本暂不支持ipv6 tcp mss,只能尽量减小MTU(此mtu设置会通过RA通告给“内网”的终端)。
 ipv6 dhcp select server  //指定接口工作在DHCPv6服务器模式
 ipv6 dhcp server apply pool stateless  //引用DHCPv6无状态地址池
 ipv6 address 1 ::1/64 //引用前缀编号1中的前缀,接口主机位设置为::1,前缀长度设置为/64(从运营商获得的委派前缀长度可能为/60)
 ipv6 nd autoconfig other-flag  //指示客户端使用DHCPv6获取IPv6地址之外的其他配置(如DNS)
 undo ipv6 nd ra halt  //允许在此接口上发送RA
 ipv6 nd ra interval 60 10  //RA的最大发送间隔和最小发送间隔(在最大和最小之间随机选择时机)
 ipv6 nd ra invalid-delegated-prefix advertise enable  //被委派前缀失效时发送RA,向内网终端宣告前缀失效(修订本文时新增的命令,对于无线一体化产品2020年9月的R5435P02版本开始支持,对于路由器产品2024年5月的R6749P2102版本开始支持)
 ipv6 nd ra dns server 240C::6666 sequence 0  //使用RA RDNSS通告DNS服务器,以兼容不支持DHCPv6的客户端
 ipv6 nd ra dns server 240C::6644 sequence 1  //使用RA RDNSS通告备用DNS服务器
#
interface Vlan-interface200  //第二个内网(比如给来宾、访客使用)
 ip address 192.168.9.1 255.255.255.0
 ipv6 mtu 1280
 ipv6 dhcp select server
 ipv6 dhcp server apply pool stateless
 ipv6 address 1 ::1:0:0:0:1/64  //运营商委派的前缀长度为/60。出于管理需要,让vlan200下终端获取的IPv6地址与vlan1下的相区别,在此设置接口的主机位为::1:0:0:0:1,前缀长度仍为/64
 ipv6 nd autoconfig other-flag
 undo ipv6 nd ra halt  //允许在此接口上发送RA
 ipv6 nd ra interval 60 10
 ipv6 nd ra invalid-delegated-prefix advertise enable
 ipv6 nd ra dns server 240C::6666 sequence 0
 ipv6 nd ra dns server 240C::6644 sequence 1
#
interface GigabitEthernet1/0/5  //拨号绑定的物理接口
 port link-mode route
 undo lldp enable
 undo dhcp select server
 pppoe-client dial-bundle-number 5
#              
 ip route-static 0.0.0.0 0 Dialer5
 ipv6 route-static :: 0 Dialer5  //IPv6默认路由

验证配置:

display ipv6 interface Dialer 5  //检查拨号口是否正确获得了IPv6地址

display ipv6 prefix  //检查IPv6前缀列表

display ipv6 dhcp option-group  //检查DHCPv6选项组(option-group)中的信息是否正确

display ipv6 dhcp server  //检查DHCPv6服务器是否已经启动,是否绑定到正确的接口

display ipv6 dhcp server statistics  //检查DHCPv6服务器收发数据包的统计值

display ipv6 dhcp client  //检查DHCPv6 PD是否正确获得前缀信息

2020年9月12日修订的内容:

增加了一条Vlan接口中的命令,该命令于R5435P02版本首次引入。

2024年6月13日修订的内容:

区分了无线一体化产品和路由器产品支持“IPv6失效被委派前缀宣告无效”命令的版本。

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值