张书民 田海建 许 静
山东省邮电规划设计院有限公司 济南 250031
IANA及APNIC可分配的IPv4公有地址已于2011年上半年分配完毕,国内各运营商申请的IPv4地址也将陆续耗尽。为解决IPv4地址枯竭后网络和业务的可持续发展问题,运营商纷纷开始试点布局IPv6。PPPoE接入方案是目前国内外比较普遍采用的接入方案,过渡初期,PC终端操作系统大多都是同时支持IPv4和IPv6双栈,只支持纯IPv6协议栈的较少。因此,研究双栈环境下PPPoE接入认证技术及相关网络部署,对于实现IPv4网络向IPv6网络顺利过渡非常必要。
PPPoE接入方案基于PPPoE和AAA架构对终端设备进行接入控制,是目前国内外普遍采用的接入方案。
IPv4环境下,PPPoE协议簇包括PPPoE发现协议、LCP协议、NCP协议中的IPCP协议。在PPPoE链路建立过程中,依次建立虚拟链路、配置链路层相关参数、配置网络层相关参数。PPPoE链路建立过程可分为两个阶段:发现阶段和会话阶段,会话阶段是在同一个PPPoE接入认证控制链路域内与BRAS协商唯一的PPPoE Session-ID,会话阶段包括PPP链路建立和PPP网络层配置两个协商过程以及PPPoE的认证过程[1]。
IPv6环境下PPPoE链路建立过程与IPv4环境下PPPoE链路建立过程没有本质的区别。PPPoE的前两个阶段,PPPoE虚拟链路建立阶段和PPPoE数据链路建立是完全一致的,网络层配置阶段也是相似的,区别就是在网络层配置阶段使用IPv6CP来配置网络层参数。PPPoE认证成功后,进入NCP配置阶段,纯IPv6网络开始进行网络层配置,使用的协议为IPv6CP。
典型的PPPoE链路建立报文交互过程如图1所示。
图1 典型的PPPoE链路建立报文交互过程
PPP标准RFC5072仅仅通过PPP的NCP(IPv6CP)协商Interface-ID,不做其他额外工作。这个Interface-ID的目的是用来创建终端的Link-local地址,即后64位采用NCP协商的ID,前64位采用FE80::/64[2-3]。在整个PPPoE建立完连接后,终端设备并没有获得一个完整的全局IPv6地址,IPv6终端获得全局IPv6地址可通过两种方式获得[1,4]。
一种方式是PPPoE+ND,即PPPoE认证成功后,通过ND方式获取IPv6前缀,此前缀和协商好的接口ID组合成全局IPv6地址。PPPoE连接完成后,PC发起NDRS,BRAS收到NDRS请求后,回应NDRA下传IPv6前缀,PC收到NDRA后,自动生成IPv6公网地址,完成IPv6公网地址的配置。对于DNS地址,如果PC的PPPoE逻辑接口设定DNS地址自动获取(O标志位置1,主机使用DHCPv6获取除地址以外的其他参数),PC则会通过DHCPv6协议发送Information Request请求报文,携带DNS Recursive Name Server option(option-code为OPTION_DNS_SERVERS[5]),BRAS通过DHCPv6的Reply报文回应请求报文,下传DNS地址,完成PPPoE逻辑接口IPv6协议配置。
另一种方式是PPPoE+DHCPv6方式,即PPPoE认证成功后,通过DHCPv6方式下发IPv6地址前缀或全局IPv6地址。PPPoE连接完成后,PC通过DHCPv6协议报文发送Solicit多播报文寻找DHCPv6服务器,BRAS发送Advertise单播报文响应,表示它可以提供地址和参数配置服务;PC再以单播的方式向BRAS发送Request请求报文,请求服务器为其分配IPv6前缀(option-code为OPTION_IAPREFIX[6])及DNS地址,BRAS使用Reply报文确认分配IPv6前缀以及DNS地址。PC根据获取的IPV6前缀生成IPv6公网地址,完成PPPoE逻辑接口的IPv6协议配置。PC也可以直接通过DHCPv6获取IPv6地址和DNS地址,完成PPPoE逻辑接口的IPv6协议配置。
IPv4中,DHCPv4协议分配网关地址,而在IPv6中,DHCPv6 Server不分配缺省网关,缺省网关通过RA报文获得。在ND协议的RS-RA报文交互中,RA报文的源IPv6地址即为IPv6主机的网关地址,而且该地址类型必须是路由器的链路本地地址。同时,IPv6主机收到路由器通告报文时,会以路由器的链路-本地地址为下一跳创建一条默认路由,路由器的生存期字段指定了该默认路由的有效期,当此字段值为0时,表示此默认路由器不可再作为默认路由器。
向IPv6过渡初期,终端操作系统大多都需要同时支持IPv4和IPv6双栈,只支持纯IPv6的协议栈较少,因此研究双栈用户的接入流程具有重要的意义。
双栈用户同时拥有IPv4和IPv6两个地址,PPPoE双栈用户在NCP协商阶段同时进行IPCP和IPv6CP的协商,其他阶段与IPv6用户的PPPoE基本流程相比没有变化。实际网络中,根据终端工作模式的不同,双栈用户的接入流程略有不同。
家庭网关(CPE)的工作模式可分为桥接模式和路由模式两种。对于桥接型的CPE,ISP直接为用户PC分配IP地址,完成用户的接入认证;对于路由型的CPE,ISP为CPE分配IP地址,完成接入认证,CPE再为用户PC分配地址并进行相关配置。
1) 家庭网关工作在桥接模式。这种模式下,由PC发起PPPoE连接,家庭网关只需二层转发用户和BRAS间的报文。
对于IPv4,BRAS通过IPCP为终端分配IPv4地址并下发DNS等参数;对于IPv6,BRAS通过IPv6CP为终端分配接口ID,并通过ND协议分配IPv6前缀或者DHCPv6协议分配IPv6地址。桥接模式下双栈用户的PPPoE接入流程(ND协议分配IPv6前缀)如图2所示。
图2 桥接模式下双栈用户的PPPoE接入流程
2) 家庭网关工作在路由模式。这种模式下,由家庭网关发起PPPoE连接,在家庭网关WAN侧和LAN侧分别进行不同的配置,接入流程如图3所示。
在WAN侧,BRAS使用DHCPv6-PD机制为家庭网关分配IPv6前缀。家庭网关发送Solicit报文携带IA-PD选项请求BRAS为其分配IPv6前缀,BRAS发送Advertise报文响应,并在Request和Reply报文交互之后完成家庭网关的前缀分配。
在LAN侧,家庭网关使用ND协议为用户分配前缀或DHCPv6协议为用户分配IPv6地址,封装PPPoE头和Ethernet头,转发用户IPv6数据报文。
与桥接模式相比,路由模式的前几步只是配置了CPE的WAN口的IPv4地址和IPv6地址,PC并没有完成地址配置。为给用户PC分配IPv4和IPv6地址并配置信息,CPE需要调用DHCPv4完成PC的IPv4地址配置,调用DHCPv6完成IPv6地址配置。
图3 路由模式下双栈用户的PPPoE接入流程
对于PPPoE接入,无论桥接型CPE还是路由型CPE,用户的IPv4接入和IPv6接入都不受接入网络的影响,差别仅在于PPPoE拨号的起点分别在PC和CPE。两种模式下双栈PPPoE用户的地址分配过程如表1。
表1 不同模式下双栈PPPoE用户的地址分配
在实际的宽带接入中,用户终端必须完成接入认证、获得IP地址、DNS服务器等信息后才能访问服务器。用户访问网络,首先由终端(PC或家庭网关)发起PPPoE连接请求,由支持IPv6的BRAS终结用户IPv6的PPP请求,在AAA、DNS的配合下完成用户的接入认证。
双栈用户终端接入网络访问应用服务器时,相关的设备和系统必须同时支持IPv4、IPv6相关功能。涉及的设备和系统必须支持双栈运行,具体的要求如下。
终端:对于桥接模式下的PC终端需支持IPv6协议和PPPoE拨号,支持IPCP/IPv6CP协议,支持DHCPv4、DHCPv6等功能;路由模式的家庭网关在支持以上功能的同时还需支持DHCPV6-PD功能,根据汇聚层过渡部署方案选择支持隧道功能。对于PC终端采用Windows XP操作系统的,由于XP操作系统不支持IPv6CP协议和DHCPv6协议,所以不支持双栈PPPoE拨号,需要额外的拨号终端软件支持。
接入网:PPPoE不受二层接入网的影响,可直接透传到BRAS,终结PPP帧,因此,现有的二层接入网只需升级或替换支持IPv6的安全策略。
BRAS:BRAS是双栈用户PPPoE接入的关键设备,需要支持PPPoE、DHCPv4、DHCPv6和DHCPV6-PD、RADIUS等功能,支持无状态和有状态的地址分配。
AAA:支持IPv6的接入认证、授权和计费。
DNS:支持AAAA记录查询。
BRAS是PPPoE接入的核心设备和部署关键节点,根据现网设备对IPv6的支持情况,对BRAS的部署方案不同。
1) 已支持IPv6的BRAS。如运营商的BRAS已经支持IPv6并能双栈运行,用户终端可发起PPPoE拨号,完成IPv4和IPv6的地址分配和终端配置,完成双栈用户的PPPoE接入认证。
2) 需升级支持IPv6的BRAS。如运营商的BRAS可通过升级支持IPv6,需对BRAS进行升级,开启双栈,并完成用户的接入认证。
3) 不能升级支持IPv6的BRAS。如运营商BRAS不能升级支持IPv6,可选用支持IPv6的BRAS替换老旧BRAS;过渡初期为保护现网投资,可以配合使用L2TP隧道完成IPv6用户的接入。
边缘路由器不支持IPv6的情况下,可以通过L2TP协议接入到其他支持IPv6并开启双栈的BRAS。原BRAS作为LAC,远端BRAS作为LNS,LAC和LNS之间建立L2TP隧道。PPPoE通过L2TP接入时,PPPoE与LAC端交互不变,L2TP协议本身的交互不变,只有PPPoE用户与LNS端交互发生变化,LNS需要为PPPoE用户分配IPv6地址或者前缀。典型的用户接入模型如图4所示。
图4 典型的用户接入模型
为支持双栈用户访问网络,DNS系统需要能够同时支持IPv4和IPv6域名解析。目前DNS系统大多支持IPv6地址的记录,在小规模试点阶段,为避免与现有IPv4域名系统相互影响,可考虑建立独立的IPv4/IPv6双栈域名管理系统为双栈用户进行域名解析。若DNS服务器中同时有A记录和AAAA记录,则为终端返回IPv4地址和IPv6地址,终端根据操作系统的默认选择IPv4或IPv6地址进行访问。
目前DNS承载网络尚不支持IPv6,这种情况下,可采用IPv4封装的DNS请求,为用户进行地址解析。后期通过对DNS承载网络的交换机和路由器升级支持IPv6,可使承载网具备支持IPv6访问的能力。
关于IPv6主机获取DNS参数的方式,除了采用DHCPv6协议外,RFC6106还提出使用RA option进行DNS下发[7]。基于RA Option的DNS配置可以使主机在同一个RA报文中获取DNS信息,也使网络不必运行DHCPv6,这在IPv6主机地址配置方式为无状态地址自动配置,或者网络中根本不支持DHCPv6、主机没有DHCPv6客户端的情况下,是一种有效的备选方式。这样即使网络不支持DHCPv6,也可以完成主机的基本参数配置。但如果网络要求额外的参数而必须部署DHCPv6,对于基于RA的DNS配置则不是必需的。
双栈主机可以分别使用IPv4和IPv6进行DNS解析,根据DNS服务器中携带的地址决定使用IPv4或IPv6进行访问。但目前部署纯IPv6的DNS仍有困难,双栈客户端可以借助IPv4 DHCP SERVER下发DNS服务器地址进行IPv6地址解析,而不需要单独的DHCPv6 SERVER下发DNS服务器地址。
在IPv4时代,用户上网的所有参数在PPP协议的NCP提供全部解决方案。首先PPP的LCP阶段实现用户上网认证,认证通过后进入PPP的NCP阶段,协商上网需要的终端地址、DNS地址和缺省网关地址。双栈环境下却存在一些问题。
1) 终端对IPv6支持能力不足。Windows XP及其以前的Windows系统均不支持IPv6CP,也不支持DHCPv6客户端功能;而现有宽带用户中采用Windows XP系统的仍占很高的比例,部署IPv6将对用户造成一定的影响。
2) IPv6在NCP阶段仅协商Interface-ID,不能获得完整的IPv6地址,终端接口地址或者路由型家庭网关WAN口地址依然需要通过ND或者DHCPv6获得,这导致用户认证授权时间延长。
3) 在双栈终端的地址分配机制中,BRAS并不能同时完成IPv4和IPv6地址的分配,BRAS在下发一个IP地址后即用accounting-start消息上报计费,而不会等待另一个地址分配完成,不能对IPv4和IPv6业务进行同步计费。
4) 只有对流量的统计属性,但是不能区分是IPv4还是IPv6流量,无法满足运营商针对IPv4和IPv6流量分别计费的要求。
5) 双栈运行使网络更加复杂,故障排除更加困难,这给网络运维带来了很大的挑战。
互联网业务的快速发展,使IPv4地址耗尽速度和IPv6部署进程加快。双栈技术作为IPv4网络向IPv6过渡的主要方式,会使双栈用户在现网中的比例逐步提高。由于IPv6与IPv4协议不兼容,向IPv6过渡必然会影响现有IPv4用户,且由于宽带用户规模庞大,部署IPv6后出现的问题将会造成较大范围的影响。现网中PPPoE作为主要的认证方式,部署IPv6后PPPoE方式仍将继续沿用,双栈用户PPPoE接入的流程有待进一步优化,其他存在的问题和对用户造成的影响需要在网络试点中逐步发现并解决。在向IPv6过渡过程中,完成用户的接入认证只是用户使用IPv6网络的第一步,要实现IPv6环境下网络的可运营、可管理,需要网络支撑系统、运维支撑系统的同步升级。这将是一个漫长、复杂的过程,需要综合考虑投资成本、网络现状及技术发展趋势,选择适合的方式进行网络过渡。在IPv6网络部署过程中,需要不断发现并解决问题,总结经验,使IPv6网络部署对现有IPv4用户的影响最小化,以推动网络向IPv6平滑演进。
参考文献
[1]杨国良,李阳春,伍佑明,等.IPv6技术、部署与业务应用[M].北京:人民邮电出版社,2011
[2]胡捷,王茜,陈运清.IPv6过渡期的用户接入认证[C]//下一代互联网与应用研讨会论文集,2011:114-117
[3]Broadband Forum TR-187_Issue-2.IPv6 for PPP Broadband Access[S].2013
[4]陈琦.IPv6环境下的PPPoE接入技术研究[J].电信科学,2010(7):14-16
[5]IETF RFC 3646.DNS Conf i guration options for Dynamic Host Conf i guration Protocol for IPv6[S].2003
[6]IETF RFC 3633.IPv6 Pref i x Options for Dynamic Host Conf i guration Protocol(DHCP)version 6[S].2003
[7]IETF RFC 6106.IPv6 Router Advertisement Options for DNS Conf i guration[S].2010