具体实施方式
下面结合图1、图2并以基于IP协议的通信网络为例从系统角度对本发明进行描述,本领域技术人员理解,本发明应不限于基于IP协议的通信网络。
为方便描述,对本文中出现的概念简要介绍如下:
对端节点:两个正在通信的用户终端互为对方的对端节点。
用户终端的永久地址:由运营商分配给各个用户终端的具有全局唯一性的网络地址,在通信时,一个用户终端所发出的IP包的目的地址也即其对端节点的永久地址。
转交地址:一个用户终端移动到外地子网后,为使其归属代理能够准确地转发来自其对端节点的IP包,该用户终端需要将其当前所用的转交地址在其归属代理处进行注册,注册之后,发往该用户终端的IP包将在所述归属代理处进行封装,所加的IP包头中的目的地址即为所述转交地址。
假设用户终端a、b均归属于子网A,且用户终端a位于子网A中,而用户终端b移动至另一子网B中。图1中,为简明起见,图中未示出作为用户终端a或b的对端节点c与网关之间的网络设备和相关链路,而以虚线代替,本领域技术人员理解上述省略不对本发明产生任何影响。
本发明中,用户终端可通过以下方式之一判断出其是否由一个子网移动到另一子网中:
判断方式1:用户终端通过AA的生存时间来进行判断。具体地,用户终端记录前次从各个移动代理处接收到AA后所分别经历的时间,如果直到一个AA的生存时间过期,用户终端仍没有接收到来自同一个代理的另一个AA,用户终端将认定其与该移动代理失去联系,也即离开了该移动代理所在的子网。
判断方式2:用户终端利用AA消息中源地址的网络前缀来进行判断,此方式适用于AA消息中带有“前缀长度扩展”(Prefix-LengthsExtension)的情形。具体地,用户终端接收到一个移动代理发出的AA后,将该AA的源地址网络前缀来与此前接收到的AA的源地址网络前缀进行比较,如果不同(通常,一个子网中的各个移动代理有相同的网络前缀,而不同子网中的移动代理的网络前缀不同),则判断该用户终端已由前一子网移动到了另一子网。
基于上述判断方式,用户终端a得以确定自身仍处于归属子网(子网A)中,而用户终端b则确定自身移动到了一个外地子网中。
对于用户终端a,由于其未移至外地子网,因此,只需固网中一般的IP路由协议运作,即用户终端a所发出的IP包将经由DSLAM1发送至归属代理(HA,如图1中的移动代理I),再由归属代理根据路由协议将该IP包转发给对端节点c。
由于用户终端b移动到了一个外地子网,为进行业务切换,其需要通过DHCP(动态主机配置协议)服务器或者所述外地子网中的AA来获取一个转发地址,以向其归属代理(HA,如图1中的移动代理I)进行注册。针对不同的转交地址对本发明讨论如下:
转交地址为COCOA(Co-located COA,配置转交地址)
-用户终端b请求DHCP服务器为其分配一个COCOA,获得COCOA后,用户终端b可直接向移动代理I发送RRQ消息进行注册,于是,移动代理I处将生成用户终端b的永久地址与其当前COCOA的映射关系。此后,当对端节点c发来的IP包到达移动代理I后,移动代理I将根据该IP包所含的目的地址(即用户终端b的永久地址,如162.105.203.16)来由注册信息中查得用户终端b的COCOA。于是,在基于网络层隧道技术对该IP包进行封装后,将得到以该COCOA为目的地址的新的IP包。此后,所述新的IP包将被发往该COCOA所指示的网络设备。
-用户终端b请求DHCP服务器为其分配一个COCOA,获取COCOA后,用户终端b又在子网b的外地代理(FA,如图1中所示的移动代理II或移动代理III或移动代理IV)处收到了AA消息,且AA消息中的“R”(Registration Required需要注册,表示即使使用了COCOA地址,仍需要向该移动代理注册)比特置位,则表示仍需要通过该移动代理II(或III或IV)向其HA(移动代理I)进行注册。
除由DHCP服务器处获得COCOA之外,用户终端b也可以从子网B中的移动代理处获得FACOA,以向移动代理I进行注册。具体如下:
如果用户终端b此前接收到的来自移动代理I的AA的生存期已过期且未接收到来自子网B中任一移动代理的AA,用户终端b需要发现可以注册的移动代理,进入步骤A:
在步骤A中,用户终端b通过发送代理请求消息(AS)来向其当前所在的子网中的所有移动代理(II、III、IV)请求发送AA,以获得FACOA。该AS的IP源地址有以下情形:
-若移动终端b已获得COCOA而仍发送AS,则所述IP源地址为该COCOA;
-若移动终端b未获得COCOA,则所述IP源地址为移动终端b的永久地址;
-移动终端b未获得COCOA且没有永久地址时,所述IP源地址为0.0.0.0。
由于移动终端b不知道移动终端II、III、IV中任一者的单播地址,因此,该AS消息的目的地址为能够指向子网B中所有移动代理的统一组播地址(例如,224.0.0.11),此外,也可以是单播地址。
根据本发明,当DSLAM2接收到用户终端发来的IP包后,并非简单地允许通过,而需执行以下操作:
对接收到的IP包进行甄别,以确定该IP包为单播IP包还是组播IP包。如果接收到用户终端发来的单播IP包,则直接允许通过,而如果接收到的IP包为组播IP包,则需要对其进行选择性过滤,所依赖的策略包括但不限于以下方式:
(一)根据组播IP包的组播地址进行IP包的过滤
具体地,访问网络中的接入设备(如图1中的DSLAM2)处预先或动态地配置有合法组播地址列表,当接收到来自用户终端的组播IP包后,DSLAM2由其中解析出组播地址,并与所述组播地址列表进行比对,如果该IP包的组播地址位于该组播地址列表中,则说明该组播地址属于合法的组播地址,DSLAM2将允许该组播IP包通过,并将其转发至该组播地址。如果DSLAM2在所述组播地址列表中找不到该组播IP包的组播地址,则丢弃该组播IP包。
上述根据组播IP包的组播地址进行过滤的方式适用于包括无线接入网中的基站、固定接入网中的DSLAM等各种接入设备。
特别地,针对DSLAM,本发明提供如下优选方案:
在DSLAM2处配置多个合法组播地址列表,每个合法组播地址列表对应于DSLAM2的一个或多个用户侧端口,当用户终端经由DSLAM2的一个用户侧端口发来组播IP包后,DSLAM2在与该用户侧端口相对应的合法组播地址列表中查找,仅当将该组播IP包的组播地址存在于所述合法组播地址列表中时,DSLAM2才允许该组播IP包通过。否则,丢弃该组播IP包。
由于AS、RRQ均发往对应于该子网内所有移动代理的统一的组播地址(例如,224.0.0.11),因此,在本例中,在DSLAM2处将对应于该子网内所有移动代理的统一的组播地址(例如,224.0.0.11)作为合法组播地址即可使以组播形式发送的AS和RRQ顺利通过。
除AS、RRQ外,若还需允许发往其它组播地址的组播IP包(譬如,承载上行组播业务的组播业务IP包)通过,可在DSLAM2处将相应的组播地址配置为合法组播地址。
(二)根据组播IP包的类型进行IP包的过滤
以移动IPv4协议为例,IP包的包头部分的协议域的值指示IP包所承载的协议类型,譬如,当IPv4包协议域值为17,指示IPv4包头承载的是UDP报文,当UDP包头中的目的端口域值为434时,表示为RRQ消息。
于是,可在DSLAM2处配置允许通过的组播IP包类型列表,并在来自用户侧的组播IP包到来后,对其协议域进行检测(如,获取包头中的标识信息),再与所述类型列表进行比对,以确定是否允许该组播IP包通过。
本例中,如果单独根据组播IP包协议域来执行上述过滤,为使得AS和RRQ能够顺利通过而阻隔其它来自用户侧的组播IP包,可在DSLAM2处配置仅允许AS、RRQ通过,如,在接到来自用户侧的组播IP包时,对其包头进行解析,具体说明如下:
-AS消息通常按照以下形式封装:IPv4+ICMP+AS,即ICMP消息被封装在IPv4包中,而AS消息是多种ICMP消息中的一种。具体地:当IPv4包头的协议域值为1时,指示该IPv4包数据部分包含ICMP消息,当ICMP消息中的type域为10且code域为0时,指示ICMP消息是AS消息;
-RRQ消息通常按照以下形式封装:IPv4+UDP+RRQ,即,UDP报文被封装在IPv4I包中,UDP头后面紧跟着移动IPv4控制消息,当这个控制消息的type域为1时,表示是RRQ消息。具体地,当IPv4包头的协议域值为17时,指示数据部分包含UDP包,当UDP包头中的端口号为434且移动IPv4控制消息的type域为1时,即可判断出为RRQ消息。
当判断出到来的组播IP包为AS消息或者RRQ消息时,DSLAM2即允许该组播IP包通过,否则,将其丢弃。
在一个变化的实施例中,DSLAM2可以不必具体地判断出该IP包是AS或RRQ消息,而是根据IP包中的一些字段(或者称为域)值来判断是否允许该IP包通过,例如,当DSLAM2发现IPv4的包头的协议域值为17或者发现IPv4的包头的协议域值为17且UDP包头的端口号为434时,即可判断为允许通过的IP包;或者当发现IPv4包头的协议域值为1时,或者当发现IPv4包头的协议域值为1且ICMP消息中的type域为10即可判断为允许通过的IP包。这样的限制条件比判断出具体为AS或RRQ消息的限制条件少,可能会使一些满足上述条件的非AS且非RRQ的消息通过,但是仍在系统的容错范围内,且极大地降低了系统实现的复杂度。此外,可以结合下文所述的一个优选实施例,即DSLAM2根据特定类型的组播IP包的发送频率来防御恶意用户的攻击一起使用。
本领域技术人员理解,上述两种IP包的过滤方式可联合使用,即根据组播IP包的组播地址和类型进行IP包的过滤。譬如,仅当IPv4包头协议域值为17或UDP头中端口号为434或UDP包中包含RRQ消息时,或当IPv4包头协议域值为1或ICMP消息的type域为10或code域为0时,如果该组播IP包的组播地址为对应于该子网内所有移动代理的统一的组播地址(例如,224.0.0.11),则允许该组播IP包通过,否则,将该组播IP包丢弃。不再赘述。
根据本发明的一个优选实施例,DSLAM2根据特定类型的组播IP包的发送频率来防御恶意用户的攻击,以AS消息为例说明如下:
本领域技术人员理解,DSLAM的一个用户侧端口经由物理链路连接到一个用户网络。基于此,DSLAM2可以检测在预定时间长度内经由用户侧端口i(连向用户终端b此时所处的用户网络)接收到的AS消息的个数,在该预定时间长度内接收到的AS消息个数超过一个第二预定阈值时,在该预定时间长度内拒绝此后的来自该端口的AS消息的接入。
对于DSLAM或无线网络中的接入设备如基站等,还可以检测某一个用户终端在另一预定时间长度内发来的AS消息的个数,当在该另一预定时间长度内接收到的来自该用户终端的AS消息个数超出第一预定阈值后,在该另一预定时间长度内拒绝此后的来自该用户终端的AS消息的接入。
所述预定时间和另一预定时间以及第一、第二预定阈值可以人为地基于经验数据或运营商的需求来确定,这里本领域的技术人员应能理解,在此不做赘述。
当判定用户终端b发来的AS消息合法后,DSLAM2在步骤B中允许其通过,并将其发往该子网内的各移动代理。
各个移动代理在接收到AS后,该方法进入步骤C,移动代理II、III、IV均发送AA消息作为应答。
在步骤D中,用户终端b发送RRQ消息至DSLAM2。基于上文中所作说明,本领域技术人员能够理解,如果该RRQ消息以组播方式发送,DSLAM2处将基于本发明对其进行相应的检查,以确定是否允许通过。DSLAM对RRQ消息的检测过程与上述对AS的检测过程除了IP包封装格式不同,其他均相同,在此不再赘述。
以下对移动IPv4中的注册方式作简要说明,并请参照RFC1256以及RFC3344协议(http://www.ietf.org/rfc/rfc1256.txt;http://www.ietf.org/rfc/rfc3344.txt,在此引用作为参考),其中,RFC3344定义了2种不同的注册程序,其一是用户终端经由外地代理来向其归属代理进行注册(用户终端将RRQ消息发给外地代理,由外地代理转发至归属代理);其二是直接由用户终端向其归属代理进行注册(用户终端直接将RRQ消息发送至其归属代理)。系统可以基于以下规则来确定对一个用户终端应用何种注册方式:
-如有一个用户终端需要向其归属代理注册外地代理所分配的FACOA,则该用户终端要经由该外地代理注册;
-如果一个用户终端使用COCOA向其归属代理进行注册,并且,该用户终端由其当前所在子网中的一个外地代理处接收到了AA消息,且该AA消息中的R比特置位,则该用户终端应通过该外地代理(或者其当前所在子网中的其他外地代理)来注册;
-如果用户终端返回到其所归属子网,并且需要向其归属代理重新进行注册,则该用户终端必须直接向其归属代理注册。
以下结合图1简要介绍注册完成后的业务数据转发过程。
注册完成后,对端节点c发往用户终端b的IP包将先到达归属代理(HA,如图1中的移动代理I),此后,归属代理再基于网络层隧道技术(IP-in-IP)转发该IP包。所述网络层隧道的入口是归属代理,而出口有2种情形:当用户终端b直接向归属代理注册其COCOA时,该网络层隧道的出口为用户终端b;当用户终端b经由子网B中的某一外地代理间接向归属代理注册时,该网络层隧道的出口为该外地代理。
以下,参照图3并结合图1对根据本发明第一方面的在接入网的接入设备处用于对来自用户终端的IP包进行控制的方法进行描述,其中,图2及其相关描述在此一并作为参考。
在步骤S10中,接入设备(DSLAM2)接收来自用户终端b的IP包。该IP包可能是组播IP包,也可能是单播IP包。
此后,DSLAM2需要对该IP包进行分析,以确定是否允许其通过,具体地,在步骤S11中,DSLAM2判断该IP包是否为允许接入的组播IP包。当然,如果IP包为单播IP包,则可允许接入;如果其为组播IP包,则在满足以下两种情况的任一项或任多项时,可允许其接入,并以组播IP包的形式将其转发:
i)所述组播IP包的目的组播地址属于预先设定的合法的组播地址。本例中,DSLAM2中维护了一张组播访问控制列表(MulticastAccess Control List,MACL),如果该组播IP包的目的组播地址即为MACL中预存的地址(例如,对应于该子网内所有移动代理的统一组播地址(例如,224.0.0.11)),则当默认DSLAM2被发往该组播地址的组播IP包攻击的概率很低时,可以允许所有发往该地址的组播IP包接入。
ii)所述组播IP包为预定类型的组播IP包,如,以组播方式发送的代理请求消息或注册请求消息等。则当默认上述类型的组播消息均发往对应子网内所有外地代理的统一的组播地址(例如,224.0.0.11)时,可无需再针对组播地址进行筛选,而仅在识别出该IP包的类型后,即对其进行组播或将其丢弃。
本领域技术人员可以根据本申请文件的教导不经创造性劳动地知晓将i)、ii)联合用于组播IP包接入控制的情形,不再赘述。
根据本发明的一个优选实施例,为了防止恶意用户利用组播消息进行攻击的情形,在步骤S11中,在允许组播IP包接入之前,还需要进一步判断,分为2种情形,讨论如下:
-当所接收的来自一个用户设备的IP包为预定类型的组播IP包时,判断由该用户设备在第一预定周期内所发送的该预定类型的组播IP包的次数是否超过第一预定数值;当由该用户设备在第一预定周期内所发送的该预定类型的组播IP包的次数未超过第一预定数值时,将该IP包作为允许接入的组播IP包。所述周期可以长至无限长,可以短至一个时间单位(小时/分/秒)。
-当所述接入网为固定接入网,则当由一个用户侧端口所接收的IP包为预定类型的组播IP包时,判断由该用户侧端口在第二预定周期内所接收的该预定类型的组播IP包的次数是否超过第二预定数值;当由该用户侧端口在第二预定周期内所接收的该预定类型的组播IP包的次数未超过第二预定数值时,将该IP包作为允许接入的组播IP包。
所述第一、第二预定周期以及第一、第二预定数值可以人为地基于经验数据或运营商的需求来确定,这是本领域的技术人员应能理解的,在此不做赘述。
如果判断出用户终端发来的IP包为允许接入的组播IP包,则进入步骤S12,并在其中将该组播IP包以组播形式发送出去。
如果判断出该IP包为不允许接入的组播IP包,则进入步骤S12’,并在其中将该组播IP包丢弃。
如果该IP包为单播IP包,则DSLAM2将在步骤S12”中将该单播IP包转发。
以下,参照图4并结合图1对根据本发明第二方面的在接入网的接入设备处用于对来自用户终端的IP包进行控制的控制装置的各个具体实施例进行详细描述,其中,对图2、图3所作说明在此一并作为参考。图4所示的控制装置10位于以图1所示DSLAM2为例的各个接入设备中,其中,包括:接收装置100、第一判断装置101、发送装置102。具体地,所述第一判断装置101包括:第二判断装置1010、第三判断装置1011、第四判断装置1012和第五判断装置1013。
所述接收装置100负责接收来自用户终端b的IP包;该IP包可能是组播IP包,也可能是单播IP包。
接入设备的第一判断装置101对所述IP包进行检测,判断该IP包是否为允许接入的组播IP包。如果IP包为单播IP包,则允许接入;如果IP包为组播IP包,则在满足以下两种情况的任一项或任多项时,允许其接入:
i)所述组播IP包的目的组播地址属于预先设定的合法的组播地址。本例中,DSLAM2中维护了一张组播访问控制列表,如果该组播IP包的目的组播地址即为MACL中预存的地址(如,对应于该子网内所有移动代理的统一的组播地址(例如,224.0.0.11)),则当默认该DSLAM2被发往该组播地址的组播IP包攻击的概率很低时,可以允许所有发往该地址的组播IP包接入。
ii)所述组播IP包为预定类型的组播IP包,如,以组播方式发送的代理请求消息或注册请求消息等。则当默认上述类型的消息均发往对应该子网内所有移动代理的统一的组播地址(例如,224.0.0.11)时,可无需再针对组播地址进行筛选,而仅在识别出该IP包的类型后,即对其进行组播或将其丢弃。
本领域技术人员可以根据本申请文件的教导不经创造性劳动地知晓将i)、ii)联合用于组播IP包接入控制的情形,不再赘述。
根据本发明的一个优选实施例,为了防止恶意用户利用组播消息进行攻击,第一判断装置101优选地还包括以下2个子装置:
第二判断装置1010,用于当所接收的来自一个用户设备的IP包为预定类型的组播IP包时,判断由该用户设备在第一预定周期内所发送的该预定类型的组播IP包的次数是否超过第一预定数值。
第三判断装置1011,用于当由该用户设备在第一预定周期内所发送的该预定类型的组播IP包的次数未超过第一预定数值时,将该IP包作为允许接入的组播IP包。所述周期可以长至无限长,也可短至一个时间单位(小时/分/秒)。
当所述控制装置10位于固定接入网中的接入设备(如,DSLAM2)中时,所述第一判断装置101优选地可包括以下子装置:
第四判断装置1012,用于当由一个用户侧端口所接收的IP包为预定类型的组播IP包时,判断由该用户侧端口在第二预定周期内所接收的该预定类型的组播IP包的次数是否超过第二预定数值。
第五判断装置1013当由该用户侧端口在第二预定周期内所接收的该预定类型的组播IP包的次数未超过第二预定数值时,将该IP包作为允许接入的组播IP包。
DSLAM2中的发送装置102负责将被允许接入的组播IP包和单播IP包分别进行发送。
以上对本发明的实施例进行了描述,但是本发明并不局限于特定的系统、设备和具体协议,本领域内技术人员可以在所附权利要求的范围内做出各种变形或修改。