发明内容
本发明目的之一在于提供一种IPv6接入网络中网络地址重构方法,基于网络前缀重新使能,网络接入设备故障恢复时,使用户网络中的终端设备自动进行地址重构;所述方法包括:a)、网络接入设备向路由设备发起前缀重新使能请求;b)、路由设备禁止与该网络接入设备相连接的用户网络中终端设备当前使用的网络前缀;c)、路由设备为该网络接入设备相连接的用户网络重新分配网络前缀;d)、用户网络中的终端设备根据获得的网络前缀重新构造网络地址。
优选地,步骤a)中前缀重新使能请求包括该网络接入设备标识信息。
优选地,前述前缀重新使能请求使用路由器请求消息方式。
优选地,步骤b)中路由设备构造一个发往上述网络接入设备下用户网络的路由器通告消息,设置其网络前缀的有效生存时间为零。
优选地,步骤c)路由设备构造一个发往上述网络接入设备下用户网络的路由器通告消息,该消息包含重新分配的网络前缀以及合适的非零有效生存时间。
优选地,所述网络接入设备为数字用户线接入复用装置,所述路由设备为宽带接入服务器。
基于上述IPv6接入网络中网络地址重构方法,网络接入设备接收来自各用户网络的终端设备的邻居请求消息,执行重复地址检测、并重构地址-线路端口映射表。
本发明进一步目的在于提供一种网络接入设备地址-线路端口映射表重构方法,基于多播听众发现协议,使得网络接入设备在共享网络前缀下,其地址-线路端口映射表能快速恢复。所述方法包括:a1)、网络接入设备构造并向用户网络中的终端设备发出多播听众查询请求;b1)、终端设备响应上述请求,产生多播听众报告;c1)、网络接入设备根据多播听众报告重构地址-线路端口映射表。
优选地,步骤a1)中,多播听众查询请求是常规查询消息,该消息请求用户网络中的所有终端设备网络接口报告其所加入的所有多播组。
优选地,步骤c1)中,网络接入设备通过路由设备获得网络前缀,并根据多播听众报告记录终端设备的接口标识,进一步构成地址-线路端口映射表。
本发明方法有效地解决了在IPv6接入网络中网络地址重构问题,在网络接入设备出于管理的需要或发生故障时,使得其用户网络终端进行网络地址重构。
本发明所提供的设备地址-线路端口映射表重构方法,可进一步解决在共享网络前缀的接入网模型下,网络接入设备由于某种原因重启或其他故障因素而造成地址-线路端口映射表丢失进而影响接入网络的正常工作的问题。
具体实施方式
下面结合附图,对本发明的优选实施方式进行详细的说明。
实施例一:前缀重新使能(Reenable-Prefix)
本实施例涉及到RFC2461“IPv6邻居发现”和RFC2462“IPv6无状态地址自动配置”。网络接入设备向路由设备发起前缀重新使能请求,路由设备通过对用户网络中的终端设备使用的前缀予以禁止,然后再次使该前缀为合法前缀,促使用户网络中各个正常开机的终端设备重新构造IPv6网络地址;进一步地,终端设备发起DAD检测,网络接入设备根据DAD检测的消息即可成功重构地址-线路端口映射表。
图3是IPv6无状态地址配置中RA消息的前缀信息域格式。其中,Type(类型)选项为3:唯一地标识该消息类型;Prefix(前缀)选项:如前所述,在无状态地址配置中,用户网络中的终端设备通过该Prefix信息,再附加上终端设备接口的64比特的Interface Identifier(接口标识符)构成了自己的IPv6地址;一个IPv6地址有一个Valid Lifetime(有效生存时间)选项与其关联,该有效生存时间被分成两段:推荐生存时间(Preferred Lifetime)和不赞成使用时间。在推荐生存时间内,设备可以与网络上其他设备建立新的会话;在不赞成使用时间内不能建立新的会话,但已有的会话通信仍可进行。
在RFC2462规定,终端设备需对每个RA消息中的前缀信息域作以下处理:(1)如果前缀信息域中的Prefix选项与当前终端设备接口使用地址的网络前缀不匹配,它会构造相应的地址并作DAD检测,DAD检测成功通过后,该地址分配给该接口;(2)如果前缀信息域中的Prefix选项与当前终端设备接口使用地址的前缀匹配,对其处理则视前缀信息域的有效生存时间与该地址的剩余有效生存时间而定,通常不让将剩余生存时间更改为前缀信息域中指定的有效生存时间,除非前缀信息域中的有效生存时间大于2个小时或者其大于剩余有效生存时间,或者此RA消息是认证通过认证的(比如通过IP security等手段)。
而网络接入设备上为与其线路端口相连的用户网络维护了一个地址-线路端口映射表,作DAD检测时,网络接入设备检查所有地址-线路端口映射表帮助实现DAD检测,同时不把各自用户网络中的NS/NA消息转发到其他用户网络中去,前面已有叙述。
如图4所示是本发明实施例之一:前缀重新使能,其具体流程为:
步骤S40,网络接入设备DSLAM在发生需要地址重构的情况下,例如:出于管理的需要或设备重新启动等,它通知BRAS进行前缀重新使能。该通知过程可以通过任何一种方式通知BRAS,比如简单网络管理协议(SNMP)等。在此,我们使用RS(路由器请求)消息方式,可以为RS消息定义一个新的域,称之为前缀重新使能域,其格式见图5:Type(类型)选项可以选择为10,唯一地标识该消息类型,Length(长度)选项为1,接入节点(Access Node #)选项为发出该RS消息的网络接入设备的编号。DSLAM构造一个新的RS消息,携带前缀重新使能域送到BRAS。
步骤S41,BRAS在得到DSLAM前缀重新使能通知消息后,则构造一个发往该DSLAM的RA消息,RA消息包含一个前缀信息域,指明DSLAM下面的用户网络使用的Prefix信息,并且Valid Lifetime选项为0。当然,这个消息需要携带能认证此消息的信息。
步骤S42,用户网络中的终端设备验证此RA消息,发现当前使用地址的前缀与RA中携带的前缀信息匹配并且指定的Valid Lifetime设为0,即抛弃当前使用的地址。
步骤S43,BRAS在步骤S41发出RA消息后,紧接着或者等数秒后,发出携带分配给该网络接入设备下用户网络终端设备的网络前缀的RA消息。该前缀的Valid Lifetime选项和Preferred Lifetime选项设置为一个合理的非0值。
步骤S44,用户网络中的终端设备根据接收到的RA消息,得到的Prefix信息并根据前述方式对每个RA消息中的前缀信息域作相应处理,以进行构造新的IPv6暂定地址。
此外,根据本发明的网络接入设备中的地址-线路端口映射表重构思想,在接下来的步骤S45,用户网络中的终端设备接口产生用于DAD检测的NS消息,该NS消息包含新构造的暂定地址信息。步骤S46,DSLAM根据收到的相关DAD信息,进行DAD检测并重构地址-线路端口映射表。
实施例2:多播听众发现(MLD:Multicast Listener Discovery);
此方案涉及RFC2710“IPv6多播听众发现”和RFC3810“多播听众发现(第二版)”,本实施例利用多播听众发现协议中的多播查询和多播报告,并根据多播报告中的IP源地址重构地址线路端口映射表。
IPv4网络使用IGMP(因特网组管理协议)协议管理本机子网多播成员身份,在IPv6网络中,MLD协议取代了IGMP协议,当前有两个版本的MLD,即MLD第一版和MLD第二版,根据其相关规定:IPv6路由器使用MLD协议去发现与其直接相连的链路上多播成员。MLD协议运行在ICMP(网际控制报文协议)协议之上,其定义了三种类型的消息类型:(1)多播听众查询(MulticastListener Query),由多播路由器以便轮询直接相连链路上组成员情况。查询可以是常规查询,以查询该链路上有哪些多播组成员;或者是特定组查询,以查询是否有某个特定多播组的成员。(2)多播听众报告(Multicast Listener Report),当主机加入多播组时,主机接口在响应多播听众查询时发出此报告消息。在MLD第一版中,报告消息的IPv6目标地址以及报告消息中的MLD多播地址域都设定为该主机加入的多播组地址,因此该报告不仅路由器能听到,该链路上其他加入该多播组的主机成员也能侦听到,由于使用了延迟报告和侦听技术,在与路由器一个接口直接相连的共享链路上,即使有多个同属于这一个多播组的成员,该子网也只产生一个报告消息。而在MLD第二版中,情况有所不同:多播听众报告消息的IPv6目标地址是所有MLD路由器正在侦听的多播地址(FF02:0:0:0:0:0:0:16),该消息不能被该共享链路上属于同一个多播组的主机成员所侦听到,因此在同一个共享链路上的属于同一个多播组的网络接口都会发出报告。(3)多播听众完成(Multicast Listener Done),当主机离开多播组,其网络接口发出此消息。
在IPv6网络中,一个单播地址分配给一个网络接口后,该网络接口也加入了由该单播地址的最低24比特(XX:XXXX)附加在FF02:0:0:0:0:1:FF形成的征求多播组(Solicited Multicast Group,FF02:0:0:0:0:1:FFXX:XXXX),这类多播组地址属于MLD需要报告多播成员关系的多播组地址,因此该网络接口会响应多播听众常规查询消息。
如图6所示本发明实施例之一,它是基于多播听众发现的网络接入设备地址-线路端口映射表重构方案,其具体过程为:
步骤S60、网络接入设备DSLAM在发生需要地址重构的情况下,例如:设备重新启动等,它构造一个多播听众常规查询消息,消息的目标地址是所有节点多播地址(FF02::1)。
步骤S61、用户网络中的终端设备接收到上述多播查询消息,产生多播听众报告,其报告的源地址为其网络接口的当前IPv6单播地址。
步骤S62、DSLAM可以通过实现MLD PROXY/SNOOPING(MLD代理/侦听)功能,截获上述多播听众报告,记录该报告的源IP地址及收到该报告的线路端口,并取得该源IP地址的64比特的接口标识。值得说明的是,地址重构所需要的64比特的网络前缀可以由网络接入设备通过任何方式从BRAS处获得:例如构造一个RS消息请求给BRAS分配网络前缀信息、或者就通过SNMP请求给BRAS以获得网络前缀信息、另外,BRAS也周期性地通过RA消息发送网络前缀信息给DSLAM。接口标识与网络前缀组合即构成终端设备当前的IP地址,进而DSLAM重构地址-线路端口映射表。
值得注意的是:(1)、从某个线路端口上来的多播听众报告不能被网络接入设备中继到其他用户网络;(2)、此方案适应于全局IPv6地址和链路级IPv6地址使用相同的网络接口标识的情形,由于本地连接地址已经完成DAD地址检测、无重复地址,因此重构的可路由地址不会有冲突。
由MLD第二版标准可知,一个子网中即使有多个属于同一个多播组的成员,每一个多播成员都发出多播听众报告以响应多播查询。因此对于使用MLD第二版的接入网络,网络接入设备能根据上述方法重构所有地址-线路端口映射表。
由MLD第一版标准可知,一个子网中即使有多个属于同一个多播组的成员,也只会有一个多播成员发出多播听众报告以响应多播查询。在IPv6的一个子网中只能保证正在使用的接口的IP地址最低64比特不同,并不能保证最低24比特的不同,因此可能由有多个终端设备接口属于同一个征求多播组。当使用MLD第一版时,该方案下的地址-线路端口表重构可能使得表项重构不完整,但在接入网络中一般可以忽略,因为(1)、在接入网络中一个用户网络的多播听众报告不可能被其他用户网络中的设备所侦听到,因此如果不同用户网络中都有属于同个征求多播组的成员(这些成员的地址的低64比特不同),那么每个用户网络会一个对于该多播组的多播听众报告;(2)、一个用户网络中设备不会太多,因此一个用户网络多个设备的地址的最低24相同的可能性是很小的。
不脱离本发明的构思和范围可以做出许多其他改变和改型。应当理解,本发明不限于特定的实施方式,本发明的范围由所附权利要求限定。