移动IPv6报文穿越防火墙的实现方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种移动IPv6报文穿越防火墙的实现方法。
背景技术
进入21世纪,Internet(互联网)不仅要提供已有的数据业务、多媒体音视频业务,还将实现移动Internet的功能,为移动用户提供无线的Internet接入业务。移动IPv6就实现了主机在IPv6网络中的移动性,它使得节点在IPv6网络中移动时仍然保持可达的状态。
在移动IP网络中,无论移动节点是否连接在家乡链路上,其家乡地址总是可以设定的。家乡地址是指定给节点的家乡子网前缀范围内的IP地址。
当移动节点处于家乡网络时,发送给家乡地址的报文会路由到家乡链路,并使用传统路由机制路由到所述的家乡地址。
当移动节点连接在外地链路时,其转交地址是可设定的。转交地址是与节点的特定外地链路前缀有关的IP地址。移动节点可以使用有状态或无状态地址自动配置协议获得转交地址。只要节点还在此位置,指向转交地址的数据包就能够路由到节点。移动节点可以从多个转交地址接收数据包,比如节点正在移动,但从前一个链路仍然可达。在移动IPv6网络中,家乡地址与转交地址之间的关系被称为“绑定”。
与移动节点通信的节点称为“通信对端”,移动节点与通信对端之间有两种通信模式:双向隧道和路由最佳化。
第一种模式是双向隧道,该模式不需要通信对端支持移动IPv6,在这种模式中,家乡代理在家乡链路上使用代理邻居发现协议截取指向移动节点家乡地址的数据包。被截取的数据包通过隧道发送到移动节点当前的转交地址。该隧道采用IPv6封装。
第二种模式是路由最佳化,需要移动节点向通信对端绑定当前的转交地址。从通信对端发出的数据包可以直接路由到移动节点的转交地址。当发送到任意IPv6地址的数据包时,通信对端根据缓存的绑定条目将数据包路由到绑定条目指定的转交地址。
当通信对端直接向移动节点发送数据包时,则将目的地址设为移动节点的转交地址。同时在IPv6的扩展头中加入新型的路由头,包含所要求的家乡地址。当移动节点向通信对端发送数据包时,则将数据包的源地址设为当前的转交地址,在IPv6的扩展头中加入新的目的头,包含要求的家乡地址。
基于上述描述可以看出,移动IPv6的正常通信可以实现。然而,在通信网络中,防火墙作为一种重要的网络防护设备,被广泛的配置在网络的各个环节。防火墙的工作特性使得网络中的报文很可能无法顺利传输到目的端。
防火墙主要包括:包过滤型和应用代理型两大类型。
(1)包过滤(Packet filtering)类型
包过滤型防火墙根据数据包头源地址,目的地址、端口号和协议类型等标志确定是否允许通过。只有满足过滤条件的数据包才被转发到相应的目的地,其余数据包则被从数据流中丢弃。
举例来说,当受保护节点与外部节点通信时,受保护节点为建立TCP(传输控制协议)连接首先发出TCP SYN(传输控制协议同步)包,当该包通过防火墙时,防火墙根据包的内容在它的状态列表里建立一个相应的条目,该条目包含这个TCP连接的源、目的地址和源、目的端口号。然后,防火墙便可以根据这一条目进行数据包的监控。
(2)应用代理(Application Proxy)类型
应用代理型防火墙是的特点是完全“阻隔”了网络通信流,通过对每种应用服务编制专门的代理程序,实现监视和控制应用层通信流的作用。对于从内部发出的数据包经过这样的防火墙处理后,就好像是源于防火墙外部网卡一样,从而可以达到隐藏内部网络结构的作用。这种类型的防火墙被网络安全专家和媒体公认为是最安全的防火墙。
由于现在的防火墙都是针对固定网络通信的特点设计的,所以当MIPv6在有防火墙网络中实施时就会遇到一些困难。例如,在通信的过程中,如果通信对端在受防火墙保护的网络中,若移动节点在外地网络发生了位置的改变,则由于节点移动后,首先会向通信对端进行绑定更新,而发出的CoTI报文由于使用了新的源地址而无法通过防火墙,导致更新过程无法完成,通信对端不能知道移动节点的新的转交地址,进而导致通信对端与移动节点的通信就会中断。
为此,目前提出了利用已有的NSIS NSLP技术为MIPv6(移动IPv6)提供了一种动态的穿越防火墙的实现方法。
NSLP(NSIS的扩展协议)是一种允许主机按照数据流的要求配置数据路径上的NAT(网络地址转换)和防火墙的协议,从而使随后数据流能够穿越相应的设备而不被阻断。例如,一台源主机向数据的目的主机发送NSLP信号报文。所述的NSLP信号报文将通过与数据流相同的路径传送。在该路径上,每一个NAT和防火墙都将截获所述NSLP信号报文,并根据报文承载的信息进行处理并根据报文配置自己的状态,从而使得随后的实际的数据流就可以穿越已经配置过的防火墙和NAT设备。
在该方法中,要求移动节点和通信对端能够明确的知道防火墙的位置及究竟是哪个节点受防火墙的保护,否则无法实现。而对于这一要求,在某些特定的场景中是可能的,但当移动节点在全网络范围内移动时,想要确切地定位一个防火墙则是很困难的,因此,该方法的应用环境有一定的局限性。
另外,该方法中,MIPv6的控制报文的构造都是不同的,每个不同类型的控制报文在穿越防火墙时都要建立不同的过滤规则,也就是说每个控制报文在发送之前都要经过一个NSIS的协商过程,建立相应的过滤规则。这样,当控制报文大量出现或移动节点频繁移动时,相应的处理过程将会显得很繁琐,并且还会给网络带来额外的负担。
目前,SUN公司还为MIPv4穿越防火墙提供了一种实现方法。该方法主要是利用了SKIP(互联网协议的简单密钥管理协议)面向数据包加密和具有名字空间标识符的特性。
SKIP是为了像IP这样基于数据报的协议而设计的。用户是通过SKIP证书的形式发布公共密钥信息的。公共证书是发布给其他用户的,其他用户得到并使用这些公共密钥为加密通信计算一个唯一的共享密钥。
NSID(名字空间标识符)标识了正在使用的密钥类型。
MKID(主密钥标识符)唯一的指定了查找正确的证书所需要的ID。
联合使用NSID和MKID则可以唯一的确定一个证书。比如,移动节点可以将NSID设为1而将MKID设置成家乡地址,这就意味着移动节点要告诉通信对端“忽略源IP地址,使用我的家乡地址查找公共密钥”。
SUN公司的这一设计方案主要是针对应用网关型防火墙,它要求防火墙具有解密数据包并且转发的功能。仍然考虑通信对端被动态包过滤防火墙所保护的场景。移动节点和家乡代理在防火墙网络的外部。这时移动节点发出的数据包采用SKIP的隧道模式。
防火墙得到加密的数据包后,根据数据包中的NSID和MKID的值可以在证书数据库中找到正确的证书,得到共享密钥并解密整个数据包。防火墙再将解密后的数据包转发给通信对端。通信对端得到数据包后进行正常的处理并作出响应,响应的数据包到达防火墙时,由防火墙加密后再转发给移动节点。在这个通信过程中,防火墙在处理数据包时并没有使用移动节点的转交地址,因此,即使移动节点移动了,也不会对通信产生任何的影响,到达通信对端的数据包仍然可以穿越防火墙。
然而,这一方法是基于代理型防火墙实现,该方法要求防火墙具有转发数据包的功能,并且能够进行SKIP的加密和解密操作。但在实际应用中,因为MIPv6是网络层的协议,所以应用代理型防火墙对MIPv6的影响并不大,真正对MIPv6的实施影响最大的是包过滤型防火墙,因此,该方法并不适用。
而且,该方法中同样要求移动节点和通信对端能够明确的知道防火墙的位置及究竟是哪个节点受防火墙的保护。显然,这一要求在某些特定的场景中无法实现。
另外,这一方法是针对MIPv4设计,其核心技术SKIP目前还不支持IPv6,因此这一技术而还不能应用于MIPv6。
发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种移动IPv6报文穿越防火墙的实现方法,可以有效保证,当移动IPv6节点的地址发生改变时,仍可以和通信对端正常开展通信,而不会因防火墙的影响中断通信,且实现过程不增加网络的负担。
本发明的目的是通过以下技术方案实现的:
本发明提供了一种移动IPv6报文穿越防火墙的实现方法,包括:
A、防火墙接收发起通信的移动IPv6报文,获取所述报文中的IPv6扩展头及过滤信息;
B、根据所述IPv6扩展头和过滤信息建立对应的过滤规则信息;
C、防火墙基于所述的过滤规则信息对经过的IPv6报文进行过滤处理。
所述的IPv6扩展头包括:
家乡地址目的选项和类型2路由头,分别用于承载移动节点的家乡地址信息。
所述的步骤A包括:
防火墙接收发起通信的移动节点发来的报文时,则获取所述报文中的家乡地址目的选项信息;
防火墙接收发起通信的通信对端发来的报文时,则获取所述报文中的类型2路由头信息。
本发明中,对于通信对端发送来的报文,所述的过滤信息包括:
作为源地址的通信对端地址、作为目的地址转交地址、源传输控制协议TCP端口号和目的TCP端口号信息。
本发明中,对于移动节点发送来的报文,所述的过滤信息包括:
作为源地址的转交地址、作为目的地址的通信对端地址、源TCP端口号信息和目的TCP端口号信息。
所述的步骤B包括:
当移动节点发起通信时,防火墙将所述过滤信息中的源地址信息替换为IPv6扩展头中的家乡地址信息,并作为相应的过滤规则信息。
所述的步骤B还包括:
当通信对端发起通信时,防火墙将所述过滤信息中的目的地址信息替换为IPv6扩展头中的家乡地址信息,并作为相应的过滤规则信息。
所述的步骤B还包括:
当家乡代理发起通信时,防火墙将所述的过滤信息中的目的地址信息替换为IPv6扩展头中的家乡地址信息,并作为相应的过滤规则信息。
所述的步骤C包括:
C1、防火墙收到移动节点或通信对端发来的IPv6报文时,获取报文中的IPv6扩展头及过滤信息;
C2、将所述过滤信息中的目的地址或源地址替换为IPv6扩展头中的家乡地址,并与保存的过滤规则列表中的过滤规则信息进行匹配,如果匹配通过,则允许该报文通过该防火墙,否则,禁止该报文穿过该防火墙。
本发明还提供了一种基于上述方法的防火墙的实现方法,包括:
接收发起通信的移动IPv6报文,获取其中的IPv6扩展头及过滤信息;
根据所述IPv6扩展头和过滤信息确定对应的过滤规则信息,并将所述的过滤规则信息增加至过滤规则列表中;
防火墙获取经过的IPv6报文的过滤信息,并根据报文中的IPv6扩展头修改所述过滤信息,再基于所述过滤规则列表对该过滤信息进行匹配过滤,即对所述IPv6报文进行过滤处理。
由上述本发明提供的技术方案可以看出,本发明通过对防火墙的修改即可以获得可以实现本发明所述方法的防火墙,从而可以很好的支持MIPv6的通信,保证移动IPv6报文在各种情况下均可以可靠地穿越防火墙。
而且,本发明的实现使得移动节点和通信对端在不知道两者之间是否存在防火墙及防火墙的位置的情况下,仍然可以在移动节点地址发生改变时,保持正常的通信不中断,即两者之间的通信也不会受到地址改变的影响,防火墙对移动节点和通信对端来说是透明的。
本发明还可以在无需在网络中传输大量相关报文的情况下实现,因此,本发明的实现并未增加网络的负担。
附图说明
图1为本发明所述的方法的应用环境1;
图2为本发明所述的方法的应用环境2;
图3为本发明所述的方法的流程图。
具体实施方式
本发明的核心是:首先,在移动IPv6报文中增加IPv6扩展头,用于承载家乡地址目的地址选项或类型2路由头信息;之后,防火墙在过滤数据包时,会逐个访问每一个IPv6扩展头,当它访问到类型2路由头或家乡地址目的地址选项时,就用扩展头中的家乡地址代替IPv6头中转交地址建立过滤信息,这样转交地址就不再用来标识通信也不出现在过滤信息中,已经连接的通信也不会因为转交地址的改变而被防火墙当成新的连接拒绝掉。
为对本发明有进一步的了解,下面首先对现有的移动IPv6的应用环境进行描述。
根据防火墙在网络中配置的不同位置,和受保护节点的不同类型(包括通信对端或移动节点),防火墙对MIPv6的影响包括两种模型:通信对端受防火墙保护,和移动节点在受防火墙保护的网络内移动。
(1)通信对端受防火墙的保护的应用环境
如图1所示,图中的防火墙Fire Wall位于CN侧,即位于CN与互联网Internet Cloud之间,在这一环境中,MN获得新的转交地址后,MN(移动节点)发出的CoTI由于使用了新的源地址和传输层端口号而不能穿越防火墙;同时,由MN到CN的数据也由于使用了新的源地址而无法穿越防火墙。
(2)移动节点在受防火墙保护的网络内移动的应用环境
如图2所示,图中的防火墙Fire Wall位于MN侧,即位于MN与互联网Internet Cloud之间,在这一环境中,MN获得新的转交地址后,CN(通信对端)发送到MN的数据由于使用了新的目的地址不能穿越防火墙。
在上述两种应用环境中,移动节点的位置发生变化后会获得新的转交地址,通信对端和移动节点都使用新的转交地址继续通信。而防火墙的过滤规则信息都是基于以前的转交地址建立的,所以使用新转交地址的数据包会被认为是新的通信而被过滤掉,导致通信过程中断。
基于上述针对现有的应用环境的分析,下面将对本发明所述的方法的具体实现方式进行详细的描述。
在MIPv6中,当移动节点与通信对端通信时,移动节点发出的报文必须要包含家乡地址目的选项,报文格式具体可以如表1所示:
表1
IPv6头 |
目的选项扩展头 |
其它协议 |
源地址=转交地址目的地址=通信对端 |
家乡地址目的选项(家乡地址) | 移动头、TCP或UDP |
同样,在MIPv6中,通信对端发出的报文要包含类型2路由头,相应的报文格式具体可以如表2所示:
表2
IPv6头 |
类型2路由头 |
其它协议 |
源地址=通信对端目的地址=转交地址 | 家乡地址 | 移动头、TCP或UDP |
同样,在MIPv6中,当移动节点与家乡代理通信时,家乡地址目的选项和类型2路由头的使用情况与表1和表2类似。
基于上述MIPv6报文的特殊格式,本发明所述的方法的具体实现方式如图3所示,具体包括以下步骤:
步骤31:当防火墙收到移动节点或通信对端发来的报文时,则解析获得报文中的IPv6扩展头信息和过滤信息;
本发明中,为使得防火墙不会影响MIPv6的正常通信,需要对防火墙进行修改,要求防火墙能够识别MIPv6报文中的IPv6扩展头信息,即家乡地址目的选项和类型2路由头;
即防火墙在过滤数据包时,会逐个访问每一个MIPv6报文的IPv6扩展头,包括类型2路由头和家乡目的地址选项。
步骤32:防火墙根据所述获得的IPv6扩展头和过滤信息,在过滤规则列表中建立增加相关的过滤规则信息;
所述的过滤信息包括:源地址、目的地址、源端口号和目的端口号等;
当移动节点发起通信时,防火墙将所述过滤信息中的源地址信息替换为IPv6扩展头中的家乡地址信息,并作为相应的过滤规则信息;
当通信对端或家乡代理发起通信时,防火墙将所述过滤信息中的目的地址信息替换为IPv6扩展头中的家乡地址信息,并作为相应的过滤规则信息;
步骤33:当防火墙收到移动节点或通信对端发来的报文时,则获取其中的过滤信息;
所述的过滤信息同样需要根据IPv6扩展头中的家乡地址信息采用步骤32所述的方式进行相应的替换处理;
步骤34:将所述经过替换处理后的过滤信息与过滤规则列表中的过滤规则信息匹配,从而对所述报文进行过滤处理;
步骤35:判断报文中的过滤信息是否与防火墙的过滤规则列表中的过滤规则信息匹配,如果匹配,则执行步骤36,否则,执行步骤37;
步骤36:允许报文通过,并进行正常的报文转发处理;
步骤37:禁止报文通过该防火墙。
在本发明中还包括对移动节点和家乡代理间交互的IPv6报文采用上述步骤31至步骤37的处理方式进行处理。
下面再结合具体的应用实例对本发明所述的方法作进一步的说明。具体以图1所示的应用环境为例,当通信对端向移动节点发起通信,且相应的报文格式如表2所示时,本发明提供的处理过程如下:
(1)通常情况下,防火墙扫描数据包将得到的过滤信息是:通信对端地址,转交地址,源TCP端口号和目的TCP端口号;
(2)防火墙在访问到类型2路由头时,则使用家乡地址替换过滤信息中的目的地址(即转交地址),从而获得更新后的过滤信息,具体为:通信对端地址,家乡地址,源TCP端口号和目的TCP端口号;
(3)防火墙将以更新后的过滤信息在过滤规则列表中增加建立相应的过滤规则信息,具体包括两条规则:
1、通信对端地址,家乡地址,源TCP端口号和目的TCP端口号;
2、家乡地址,通信对端地址,源TCP端口号和目的TCP端口号。
(4)当移动节点响应通信对端的通信时,发出的报文格式如表1所示,此时,防火墙扫描数据包将得到的过滤信息是:转交地址,通信对端地址,源TCP端口号和目的TCP端口号;
(5)防火墙访问到目的选项扩展头时,则会根据家乡地址目的选项的内容(即家乡地址)替换过滤信息中的源地址,这时得到的过滤信息变为:家乡地址,通信对端地址,源TCP端口号和目的TCP端口号;
(6)防火墙根据此信息在过滤规则列表中搜索,若能找到相匹配的规则就允许数据报文通过,否则,就阻塞该数据报文;
由于在过程(3)中已经将相应的规则增加于防火墙的过滤规则列表中,所以在该过程中,相应的报文可以顺利通过相应的防火墙;
因此,本发明实现了在移动IPv6报文的地址发生改变的情况下,仍然可以顺利通过相应的防火墙,保证了移动IPv6通信的可靠性。
实质上,本发明提供了一种防火墙的实现方法,基于该方法实现的防火墙可以保证地址发生变化的移动IPv6报文可以顺利穿越。所述的防火墙的实现方法包括:
首先,防火墙接收发起通信的移动IPv6报文,获取其中的IPv6扩展头及过滤信息,即从报文中解析出IPv6扩展头承载的家乡地址信息;
然后,根据所述IPv6扩展头和过滤信息确定对应的过滤规则信息,即将过滤信息中的转交地址替换为家乡地址,再作为新的过滤规则信息,并将所述的过滤规则信息增加至过滤规则列表中。
基于上述方法实现的防火墙便可以保证IPv6报文在地址发生变化的情况下仍然可以顺利通过相应的防火墙,保证了移动IPv6通信的可靠性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。