DS-Lite技术与应用部署浅析
2015-04-15张宇华中国信息通信研究院通信标准研究所工程师
张宇华 中国信息通信研究院通信标准研究所工程师
侯乐青 青海省武警总队网管中心高级工程师
孙晶 中国信息通信研究院电信设备认证中心助理工程师
DS-Lite技术与应用部署浅析
张宇华 中国信息通信研究院通信标准研究所工程师
侯乐青 青海省武警总队网管中心高级工程师
孙晶 中国信息通信研究院电信设备认证中心助理工程师
介绍了DS-Lite技术中B4和AFTR元素的功能,在此基础上对IPv6用户地址分配进行了分析,同时说明了DHCPv6Option64协议的作用,并对DS-LiteCPE瓶颈和推荐关于DS-Lite测试方法的通信行业标准进行了介绍。
AFTR B4 DS-Lite
1 引言
DS-Lite既能够支撑现有的IPv4业务,也能够刺激IPv6的部署。DS-Lite能够降低服务提供商的IPv6部署和其他互联网之间的耦合关系,使得增量部署更加容易。DS-Lite通过IPinIP(IPv4-in-IPv6)和网络地址翻译(NAT)两种已知技术的组合使得宽带服务提供商能够让用户共享IPv4地址。
DS-Lite模型不是通过NAT的级联,而是利用IPv4-in-IPv6隧道穿越网络到达一个运营级的IPv4-IPv4NAT(AFTR),在这里用户将共享IPv4地址,这种方法最重要的特征是在终端节点之间的通信使用相同的地址族,IPv6源只和IPv6目的通信,IPv4源只和IPv4目的通信,这样就没有了协议族翻译的问题,极大地减轻了在负荷中可以承载IP地址应用的任务。
1.1 DS-LiteCPE
DS-LiteCPE是一个IPv6感知的CPE,WAN接口实现B4接口的功能。DS-LiteCPE在内部接口和B4接口之间不进行NAT转换,NAT功能应该由服务提供商网络中的AFTR执行,这样能够避免出现两次NAT的情况。DS-LiteCPE应该使用内置的DHCPv4服务器给家庭中的主机分配[RFC1918]定义的地址空间(如192.168.0.0/16),它应该向这些家庭主机通告自己作为默认的出口路由器,在DHCP选项6中通告自己是DNS服务器。另外,它也应该作为DNS代理,接收家庭主机的IPv4DNS请求,并且使用IPv6将这些请求发送给服务提供商的DNS服务器。
具有IPv6支持能力的设备直接接入到IPv6互联网,这些数据包简单地遵循IPv6路由转发,它们不走隧道转发,且不进行任何翻译。预计大量的具有IPv6支持能力的设备同时也具备IPv4支持能力,且在家庭网络中将被简单地配置一个[RFC1918]类型的IPv4地址,它们使用和家庭中那些只支持IPv4的设备一样,通过IPv4-in-IPv6隧道转发的方式接入到IPv4互联网。
在宽带家庭网络中,有些设备直接连接到宽带服务提供商。此场景下,用户设备是一个支持双栈的主机,但是服务提供商只提供IPv6接入。设备本身就扮演B4的角色,IPv4业务需要通过IPv4-in-IPv6隧道转发,就像有家庭网关/CPE的情况。IPv6业务通过IPv6发送DNS请求到配置好的IPv6DNS服务器,IPv6数据包根据IPv6路由转发,不通过任何隧道,并且不会进行任何翻译。这些设备可以运行任何IPv4和IPv6业务的组合。
1.2 B4和AFTR元素
(1)B4元素
B4元素应该是一个支持双栈节点实现的功能,或者是一个直连设备,或者是一个CPE,它们和AFTR之间建立一条隧道。B4元素可以是一个支持双栈的主机或者CPE。隧道应该是一个多点到点的IPv4-in-IPv6隧道,终结在服务提供商网络中的AFTR。
使用任何封装(IPv4-in-IPv6或者其他的)来承载IPv4流量通过IPv6网络将会减少数据报的有效MTU,处理这个问题时,路径MTU发现[RFC1191]不是一个可靠的方法。一个解决这个问题的方法是服务提供商增加所有B4元素和AFTR元素之间链路的MTU的大小,至少是40字节,以满足一个未分片的IPv4数据报加上IPv6头后所形成的IPv6包的大小。但是,不是所有的服务提供商都能够增加他们网络中链路的MTU,所以当B4元素输出链路的MTU不能满足增加的IPv6头,B4元素必须能够执行分片和重组。原始的IPv4包加上IPv6封装后可以是超过MTU的,被封装在内的IPv4包是不能被分片的,分片只能发生在IPv6封装之后;重组只能发生在IPv4包解封装之前。
为了配置IPv4-in-IPv6隧道,B4元素需要AFTR元素的IPv6地址。这个IPv6地址能够通过手工配置在CPE上,或是CPE通过DHCPv6方式自动发现AFTR端隧道地址。
B4元素通过DHCPv6(或者其他类似的经由IPv6的方法)学习到DNSv6服务器的地址,B4将通过IPv6执行所有的DNS解析,可以向下游IPv6节点传递这个IPv6地址,但不能向下游IPv4节点传递这个地址。因此,B4元素还应该扮演DNS代理的角色工作。
(2)AFTR元素
AFTR元素是一个节点组合了IPv4-in-IPv6隧道终点和IPv4-IPv4网络地址翻译的功能。隧道是一个点到多点的IPv4-in-IPv6隧道,终结在B4元素。如上文所述,分片和重组在隧道的终点是需要被考虑的,因此如果链路MTU不能适应封装的大小时,AFTR必须执行分片和重组。分片只能发生在封装后的IPv6数据包,重组必须在IPv6数据包解封装之前完成。
●扩展的绑定表
AFTR元素中的网络地址翻译绑定表被扩展包括输入数据包的源IPv6地址,这个IPv6地址被用于区分服务提供商用户地址空间中重叠的IPv4地址。通过在扩展的IPv4网络地址翻译绑定表中的反向查找,当数据包从Internet返回时,ARTR知道如何重构IPv6封装。
●应用层网关
AFTR执行NAT44,并且继承了网络地址翻译的限制,有些协议要求在NAT设备上实现ALG功能,以便能够穿越NAT设备,例如主动的FTP就要求ALG功能以正常工作。ALG会消耗资源,并且存在多种ALG,AFTR是一个支持大量B4元素的共享的网络设备,在AFTR上实现当前或者未来出现的所有的ALG是不太现实的。
2 IPv6用户地址分配流程
2.1 CPE桥接模式
CPE为终端用户所在出口网关,设置为桥接型模式,终端主机设备安装DS-Lite客户端软件。双栈主机设备透过桥接型CPE与BRAS设备相连,通过PPPoE拨号从BRAS获取IPv6地址,该IPv6地址将作为隧道ID。
双栈主机可通过DHCPv6 Option 3(Identity Association for Non-temporaryAddress)获得全局单播IPv6地址,通过DHCPv6 Option 23(DNS Recursive NameServer)获得IPv6DNS地址。
2.2 CPE路由模式(见图1、表1)
3 DHCPv6Option64
CPE获取AFTR端隧道地址的方式分为手工方式和DHCPv6Option64方式,前者是在CPE操作界面手动添加AFTR端隧道IPv6地址,后者需要CPE和AFTR同时支持DHCPv6选项64。
以下为DHCPv6Option64方式获取AFTR端隧道地址的流程:
图1 CPE路由模式示意图
表1 CPE路由模式分配流程
●DHCPv6Client向DHCPv6Server发送的Solicit和Request消息中携带Option Request(6),请求DHCPv6Server回复RequestedOptionCode(64),具体参见图2。
●DHCPv6server向DHCPv6Client回复的Advertise和Reply消息中携带DHCPv6 Option 64;DHCPv6Option64中包含AFTR端隧道IPv6地址的域名信息,具体参见图3。
图2 DHCPv6 Option64方式获取AFTR端隧道地址的流程1
图3 DHCPv6 Option64方式获取AFTR端隧道地址的流程2
●CPE为了获取AFTR端的隧道IPv6地址向DNSv6Server请求该域名的AAAA记录,即IPv6地址,具体参见图4。
●DNSv6Server回复CPE,告知该域名的AAAA记录,CPE得到AFTR端的隧道IPv6地址,为DS-Lite隧道的建立做好了准备,具体参见图5。
4 DS-Lite应用部署
4.1 DS-Lite场景—家庭用户接入
DS-Lite场景—家庭用户接入参见图6。场景概述:
城域网部署双栈,BRAS、CR均支持双栈。CPE与CGN之间建立4in6隧道,用于透传IPv4报文。隧道标识为CPEWAN口的IPv6地址。仅在CGN进行NAT转换,将私网IPv4地址转换为公网IPv4地址。CPE取消本地的NAT转换,CGN需要通过隧道标识+私网IPv4地址标识用户。
BRAS仅为CPE分配IPv6地址(WAN口前缀、LAN口PD前缀)。CPE自发分配IPv4地址,但不保证唯一性。
4.2 业务流程
业务流程参见图7。
4.3 IPv4-in-IPv6隧道的建立和释放
IPv4-in-IPv6隧道的建立和释放如图8所示。
●CPE获得CGN域名后会主动发起IPv6DNS请求,目的是需要获得CGN域名对应的IPv6地址。
●去往Internet的IPv4报文会触发CPE和CGN之间的4in6隧道的建立。
●如果PPPoE Session被释放,那么对应的4in6隧道也会随之释放。
图4 DHCPv6 Option64方式获取AFTR端隧道地址的流程3
图5 DHCPv6 Option64方式获取AFTR端隧道地址的流程4
●IPv4-in-IPv6隧道属双向、无状态的隧道,只承载IPv4业务。纯IPv6网络承载IPv6业务。
4.4 端口预分配
●端口预分配的触发场景:在用户上线时预留端口,用户下线时释放。
●端口预分配:为该用户/源IP分配一段连续的端口号,用于相关报文的NAT转换。相同用户或者CPE源IPv6的所有数据流使用相同的外部地址和预留端口段。
预分配的端口段参见表2。
5 DS-LiteCPE设备瓶颈
综上所述,一台功能完善的DS-LiteCPE设备应在路由模式下尽可能支持B4获取地址的多种方式,包括PPPoEv6+RA(0,1)+ DHCPv6 PD和PPPoEv6+RA(1,1)+DHCPv6 NA+PD。DS-LiteCPE设备还应支持对于大于隧道MTU报文的分片处理功能,以及隧道终端(AFTR端)地址的发现能力。
目前的DS-LiteCPE设备可能会出现以下现象或问题:
(1)B4通过PPPoEv6+RA(1,1)+ DHCPv6NA+PD方式获取地址时会出现DHCPv6没有真正为B4分配128位的全局IPv6地址,而是B4在获取的DHCPv6PD地址池中取用一个,这样的方式会造成LAN内IPv6用户与B4使用了同一地址段的地址。
(2)CPE设备的分片机制与RFC6333规定的方式不一致。CPE接收用户侧的数据后先对IPv4报文进行分片,之后才加载隧道封装发送给AFTR,AFTR收到后先拆除隧道封装,再转发IPv4分片给目的地,最后由目的地重组IPv4报文。这个过程不符合RFC6333的规定,CPE应该先封装后分片。
表2 预分配的端口段
(3)隧道终端地址(AFTR端地址)目前看来是手工配置的,对于大多数产品尚不能通过DHCPv6Option64方式自动发现AFTR端IPv6地址。
图6 DS-Lite场景—家庭用户接入
图7 业务流程
6 轻型双栈(DS-Lite)测试内容
轻型双栈(DS-Lite)测试内容可参见中国通信标准化协会发布的通信行业标准YD/TXXXX《轻型双栈(DS-Lite)测试方法》,该标准适用于支持DS-Lite功能的AFTR和CPE设备,不适用于纯IPv6设备(设备不包含IPv4协议栈)以及移动终端设备。该标准规定了基于固网宽带接入方式下采用IP-in-IP封装技术实现IPv4OverIPv6隧道的DS-Lite技术测试方法,具体包含如下测试内容:
图8 IPv4-in-IPv6隧道的建立和释放
(1)DS-Lite用户侧CPE功能测试
●CPEWAN口通过PPPoEv6与ND方式获取IPv6地址测试。
●CPEWAN口通过PPPoEv6与DHCPv6方式获取IPv6地址测试。
●主机作为B4时IPv6地址获取测试。
●CPE手工配置AFTR端隧道地址功能测试。
●CPE通过DHCPv6方式自动发现AFTR端隧道地址的功能测试。
(2)DS-Lite隧道功能测试
●DS-Lite隧道封装及解封装能力测试。
●DS-Lite隧道分片及重组能力测试。
(3)DS-Lite网络侧AFTR功能测试
●DS-Lite基本双栈功能测试。
●重叠私有IPv4地址测试。
●NAT功能测试。
●NATALG功能测试。
●互联网访问功能及DNS解析测试。
(4)DS-Lite安全功能测试
●DS-LiteRADIUS属性上报和溯源功能测试。
●DS-Lite日志功能。
(5)DS-Lite策略控制功能测试
●非法CPE限制功能测试。
●NAT会话控制功能(在不同的DS-Lite实例下)。
●NAT会话控制功能(在相同的DS-Lite实例下)。
(6)DS-Lite冗余可靠性保护测试
●温备可靠性测试(CGN板卡、独立设备)。
●热备可靠性测试(CGN板卡、独立设备)。
(7)DS-Lite性能测试
●隧道建立规格测试。
●NAT会话表项建立规格测试。
●隧道和NAT会话表项建立时间测试。
●转发性能测试(轻载)。
●转发性能测试(满载)。
此外,笔者建议可增加CGN业务共存测试,包括:
●DS-Lite和NAT444业务共存测试。
●NAT444实例切换至DS-Lite实例测试。
PrimaryAnalysison DS-LiteTechnology and ItsApplication
This paper introduces the functions of the elements B4 and AFTR , shows the features of Option 64 using in DHCPv6, the IPv6 address assignment and bottleneck of DS- Lite CPE are analyzed. Some telecommunication standards about testing methods for DS-Lite arerecommended.
AFTR,B4,DS-Lite
2015-03-10)