张宇华 中国信息通信研究院技术与标准研究所工程师
陈云柯 中国信息通信研究院技术与标准研究所工程师
尹华瑛 中国信息通信研究院科技发展部工程师
在IPv6网络中,终端获取地址的方式可分为无状态和有状态。状态指服务器是否维护客户端IPv6地址信息的状态机,不维护则称为无状态方式,否则称为有状态方式。通过DHCPv6获取地址称为有状态方式(Stateful Address Autoconfiguration),通过ND协议获取地址称为无状态方式(Stateless Address Autoconfiguration,SLAAC)。
无状态地址获取方式使用ND(Neighbor Discovery)协议中的RS(Router Solicitation,路由器请求)和RA(Router Advertisement,路由器应答)进行报文交互,路由器收到客户端发送的RS报文后,回应RA报文,报文包含如下内容:
(1)标记支持的自动配置类型(包括地址配置M标记、其他信息配置O标记)。
(2)一个或多个链路前缀以及链路前缀的生命周期。
(3)与客户端相关的其它配置信息,如跳数限制、客户端发起的报文能够使用的最大MTU等。
(4)客户端收到RA报文后,若RA报文中地址配置M标记为0,并且RA报文中携带了正确的链路前缀,则客户端使用该前缀和接口ID生成全球单播地址,完成无状态地址配置。
在RS和RA报文交互中,若地址配置M标记为0,其他配置信息O标记为1,表示需要客户端使用有状态的方式获取除地址外的其他配置信息;若路由器在RA报文中设置M为1、O为1,表示需要客户端使用有状态的方式获取地址和其他配置信息。
有状态信息配置(M=0,O=1)通过两步交互完成除地址外其他配置信息的配置:
(1)客户端收到RA后,向DHCPv6服务器发送Information-Request报文获取DNS等配置信息。
(2)DHCPv服务器根据报文中客户端请求的配置信息(如DNS信息)响应Reply报文。
有状态地址配置(M=1,O=1)通过4步交互完成地址和信息的配置,客户端收到M值为1的RA报文后,发起DHCPv6报文交互:
(1)客户端首先发送Soliciate消息查询DHCPv6服务器,报文的目的地址为特定组播地址。请求中带有ClientDUID、IA_NA、RapidCommit(当有此选项时,流程可执行两步交互)等选项。
(2)DHCPv6服务器收到并检查消息合法后,则回应Advertise报文,报文中带有Server DUID、Client DUID、IA_NA、IAAddress(包括地址、有效生命周期)、DNS、Preference等选项。
(3)如果客户端收到多个Advertise,则根据优先级选择一个DHCPv6服务器,并向该服务器发送Request请求。
(4)DHCPv6服务器回应Reply,申请地址交互过程结束。
WLAN接入场景组网结构如图1所示。
●AP发起和AC之间建立基于IPv4的CAPWAP隧道,IPv4和IPv6的报文都通过该隧道承载。
●用户业务报文经终端进行以太网封装后经无线空口802.1a/g/n转发至AP。
●AP将报文增加业务VLAN并放入CAPWAP隧道,封装CAPWAP头,经LAN口送往MxU设备。
●MxU设备增加内层VLAN和GEM报头送往接入网络设备OLT。
●OLT去掉GEM头和Eth报头后,将MxU添加的VLAN替换为QinQ VLAN,然后通过二层转发送至BRAS。
●BRAS剥离QinQVLAN,根据CAPWAP外层隧道的三层IP转发至AC。
●AC终结CAPWAP隧道,去除业务VLAN,通过三层IP将报文转发至城域IP网络。
●CR及以上设备根据IP进行三层转发。
●AP发起和AC之间建立基于IPv4的CAPWAP隧道,IPv4和IPv6的报文都通过该隧道承载。
●用户业务报文经终端进行以太网封装后经无线空口802.1a/g/n转发至AP。
●AP在报文中加入业务VLAN,放入CAPWAP隧道,封装CAPWAP头,经LAN口送往MxU设备。MxU设备增加内层VLAN和GEM报头后送往接入网络设备OLT。OLT去掉GEM头和Eth报头后,将MxU添加的VLAN替换为QinQVLAN,然后通过二层转发送至BRAS。
●BRAS剥离QinQVLAN,根据CAPWAP外层隧道的三层IP转发至AC。
●AC终结CAPWAP隧道,去除业务VLAN,通过三层IP将报文转发至城域IP网络。对于去往IPv4业务网站的报文,需通过IPv6转发到NAT64,NAT64转换协议地址后通过IPv4访问Internet;对于去往IPv6业务网站的报文直接转发。
●CR及以上设备根据IP进行三层转发。
网络中各网元涉及IPv6的功能要点列举如下,重点描述涉及IPv6或双栈部分。
图1 WLAN接入场景组网结构
终端支持IPv4/IPv6协议栈,支持通过DHCPv4、DHCPv6、ND等协议获取IPv4/IPv6地址。支持采用IPv4/IPv6访问网页,完成Portal认证,支持802.1x认证方式。
(1)支持 IPv4/IPv6协议栈,可通过 DHCPv4、DHCPv6获取IPv4/IPv6地址。支持多种发现方式发现AC,并同AC建立IPv4/IPv6的CAPWAP隧道。
●静态配置方式:AP静态配置AC的IPv4或IPv6地址。
●DHCP发现方式:DHCPv4采用Option43、DHCPv6采用Option52携带AC地址。
●DNS发现方式:AP通过DHCPv4/DHCPv6流程获取域名及DNSv4/DNSv6服务器地址,相应地发起IPv4或IPv6的域名获取AC地址。
●广播方式:AP发送广播DISCOVER报文(IPv4,目的地址为255.255.255.255)、组播DISCOVER报文(IPv6,目的地址为FF0X::18C),发现本网络内的AC。
(2)隧道转发模式下支持将终端IPv4/IPv6报文封装在CAPWAP隧道中进行转发。直接转发模式下支持终端IPv4/IPv6报文由AP直接转发。
(1)当采用集中转发模式时
●如果AP/AC间建立IPv4的CAPWAP隧道,AP和AC间的传输设备只需支持IPv4即可。终端业务报文(IPv4或IPv6)将通过IPv4的CAPWAP隧道传递。
●如果AP/AC间建立IPv6的CAPWAP隧道,AP和AC间的传输设备则需支持IPv4/IPv6双栈(或IPv6。IPv6部署初期,只支持IPv6单栈设备应该较少)。
(2)当采用本地转发模式时
终端业务报文(IPv4或IPv6)不再进行CAPWAP封装并由AP直接进行转发,因此AP和AC间的传输设备需支持IPv4/IPv6双栈(三层组网时,中间传输设备还需支持DHCPv6RELAY功能)。
(1)AC支持双栈,支持将终端IPv4/IPv6报文封装在CAPWAP隧道中进行转发,支持IPv4/IPv6报文网络侧转发。支持DHCPv4/DHCPv6Server功能,由AC完成AP、终端的地址分配(IPv4和IPv6)。由AC作为认证点、计费点,完成IPv6单栈用户、IPv4/IPv6双栈用户认证、计费功能等。
Portal认证方式下,支持根据终端的HTTP请求的IP版本(IPv4或IPv6)构造IPv4或IPv6的重定向URL,重定向终端至对应IP版本的Portal页面。
支持与Portal Server采用IPv4或IPv6对接承载Portal协议,支持Portal协议对IPv6用户的扩展。
支持与AAA采用IPv4或IPv6对接承载Radius协议,支持对IPv6用户的Radius扩展属性。支持用户IPv4认证(Portal认证、802.1x认证等)成功后同时对IPv6业务的权限。支持IPv6用户的计费上报。
(2)Portal服务器支持与AC采用IPv4或IPv6对接承载Portal协议,支持Portal协议对IPv6用户的扩展。支持向IPv6用户推送IPv6Portal页面。
(3)AAA服务器支持与AC采用IPv4或IPv6对接承载Radius协议,支持对IPv6用户的Radius扩展属性。支持对IPv6的管理和认证,支持通过IPv4认证后同时向用户IPv6地址的授权。支持对IPv6地址的计费。
(4)DNS64设备针对IPv4站点DNS解析,支持A记录到AAAA记录的转换(生成IPv4向对应的IPv6地址);NAT64设备IPv6终端访问IPv4节点时,完成IPv6到IPv4的双向地址转换,配合支持IPv6单栈用户访问IPv4站点。
网络中各网元涉及IPv6的功能要点列举如下:
(1)终端、AP、接入网、DNS64、NAT64
功能要求同3.1节描述。
(2)AC
AC支持双栈,支持将终端IPv4/IPv6报文封装在CAPWAP隧道中进行转发,支持IPv4/IPv6报文网络侧转发。支持DHCPv4/DHCPv6Server功能,由AC完成AP的地址分配(IPv4和IPv6)。在802.1x认证方式时,由AC作为认证点、BRAS启动RADIUSPROXY功能,完成IPv6单栈用户、IPv4/IPv6双栈用户认证。
(3)BRAS
当AC不具备WLAN用户管理功能时,一般配合BRAS设备组网。BRAS支持双栈,支持DHCPv4/DHCPv6 Server功能,完成终端的地址分配(IPv4和IPv6)。由BRAS对WLAN用户进行管理,完成IPv6单栈用户、IPv4/IPv6双栈用户认证、计费功能等。
Portal认证方式下,支持根据终端的HTTP请求的IP版本(IPv4或IPv6)构造IPv4或IPv6的重定向URL,重定向终端至对应IP版本的Portal页面。
支持与Portal Server采用IPv4或IPv6对接承载Portal协议,支持Portal协议对IPv6用户的扩展。
支持与AAA采用IPv4或IPv6对接承载Radius协议,支持对IPv6用户的Radius扩展属性。支持用户IPv4认证(Portal认证、802.1x认证等)成功后同时对IPv6业务的权限。支持IPv6用户的计费上报。支持RadiusProxy功能,配合AC完成802.1x认证方式下的用户认证。
●AP发起DHCPv4请求以从AC设备获取IPv4地址,中间的BRAS开启DHCPRelay功能。
●AC设备通过Option43携带自己的IPv4地址信息,告知AP设备所属的AC设备地址信息。
●AP获取到IPv4地址后,主动发起和AC之间建立基于IPv4的CAPWAP隧道,完成上线流程。
当采用集中转发模式时,后续DHCP等消息均封装到CAPWAP报文中进行转发。
(1)终端获取IPv4地址:通过DHCPv4协议从AC获取IPv4地址以及IPv4的DNSServer信息。
(2)终端获取IPv6地址:终端根据RA消息中的M、O标志采用SLAAC或DHCPv6方式获取。
●当RA消息中M=0、O=1时,终端则需采用SLAAC方式获取地址:从RA中获得IPv6地址前缀后,同接口ID组合后生成自己的IPv6地址。其他配置信息(例如DNS服务器地址等)则需要通过DHCPv6流程获取。
●当RA消息中M=1、O=1时,终端则需采用DHCPv6方式获取地址及其他配置信息。
双栈终端IPv4Portal的认证流程如图2所示。
图2 双栈终端IPv4 Portal的认证流程
(1)终端通过AC获取到规划的IPv4/IPv6地址。
(2)终端采用IPv4访问网络,发起HTTP请求。双栈终端根据操作系统不同可能会优先选择IPv4或IPv6,例如WIN XP优先选择IPv4,WIN7优先选择IPv6。
(3)AC截获用户的HTTP请求,由于用户没有认证过,就强制到Portal服务器,并在重定向消息中加入PortalURL、UserIP、ACID等参数。由于终端采用了IPv4发起HTTP请求,因此UserIP填写IPv4地址。
(4)终端根据AC下发的重定向URL,向Portal Sever发起HTTP请求。
(5)Portal服务器向终端推送认证页面。
(6)用户在认证页面上填入帐号、密码等信息后提交到Portal服务器。
(7)Portal服务器向AC发起认证请求,消息中携带UserIP(用户的IPv4地址)等。
(8)AC向AAA服务器发送Access Request发起认证。
(9)AAA服务器认证通过后返回AccessAccept,并携带IPv4、IPv6相关属性。
(10)AC向Portal服务器返回认证通过。AC根据AAA的消息对用户IPv4、IPv6业务进行授权,开放网络访问权限。
(11)Portal服务器向用户推送认证结果页面。
(12)AC向AAA发起计费开始请求,AAA回应计费开始响应报文,用户上线完毕,开始上网(访问IPv4或IPv6网络)。
(13)在用户上网过程中,AC定时向AAA上报计费信息,包括用户流量信息(IPv4及IPv6)。用户下线时AC向AAA发计费结束报文,包括用户流量信息(IPv4及IPv6),RADIUS计费服务器回应AC的计费结束报文并生成CDR。
该流程与采用IPv4的Portal认证流程类似,要点如下:
(1)终端采用IPv6访问网络,发起HTTP请求。AC截获用户的HTTP请求,并在重定向消息中加入PortalURL、UserIP(用户的IPv6地址)、ACID等参数。
(2)Portal服务器向AC发送的请求中携带IPv6 UserIP。
(3)AAA在认证通过后,向AC下发IPv4、IPv6相关Radius属性。
(4)用户认证通过后,AC开放IPv4/IPv6业务访问权限。
(5)AC上报计费消息中包含IPv4/IPv6的流量计费信息。
(1)双栈PC终端不同的操作系统按照不同的顺序发送不同的DNSQuery请求。
(2)当DNSQuery是A资源记录时,DNS64服务器到DNSv4查询资源并将域名解析为IPv4地址。
(3)当DNSQuery是4A资源记录时,DNS64服务器到DNSv6查询资源并将域名解析为IPv6地址。
(4)无论Query是A资源还是4A资源,DNS64递归查询无资源记录时,均直接返回“NULL”给用户。
IPv6单栈手机:DNS域名解析流程如图3所示。
图3 IPv6单栈手机:DNS域名解析流程图
(1)IPv6单栈手机终端只发送IPv6的TypeAAAA请求。
(2)DNS64服务器首先到DNSv6查询资源信息,如在DNSv6查询到则将查询到的IPv6地址返回用户。
(3)DNS64服务器若从DNSv6查询不到则发起TypeA请求到DNSv4查询资源信息,如在DNSv4查询到则将查询到的IPv4地址加特定前缀封装为IPv6地址返回用户。
(4)如果从DNSv6和DNSv4均查询不到,则返回NULL信息给用户。
NAT64溯源流程如图4所示。
从上述分析可见,IPv6WLAN用户经过AP上线、终端地址/DNS信息获取、用户认证计费、DNS双栈解析等场景介绍,网络整体基本业务流程可用图5进行简单概括。
图4 NAT64溯源流程图
图5 WLAN业务简易流程图