一种结合网络地址转换与移动互联网协议的通讯方法技术领域
本发明涉及在通信领域路由器中,对访问外部网络时需要进行NAT转换
的私网中的移动节点在internet中利用mobile ip技术进行移动的解决方法。
背景技术
NAT(网络地址转换)技术是通过私网地址与公网地址相互映射的方式,
解决IP地址不足的问题的一种协议。而Mobile ip(移动互联网协议)是用于
解决移动主机在不需要更换ip地址和中断当前连接的情况下在因特网上自由
移动的协议。但是,通常的假设是基于Mobile ip的移动节点(以下简称MN)
与家乡代理(以下简称HA)和外地代理(以下简称FA)都需要有合法的公
网地址才能进行移动,那对于ip地址紧缺的今天而言,是比较奢侈的,因而
其使用可能会受到限制。同时,由于很多专用网是使用私网地址的,并通过
NAT访问internet,所以,这也会使得Mobile ip的应用范围受到限制。在
RFC3024(Mobile ip的反向隧道规范文件)中提到可以利用反向隧道技术实
现具有私网地址或不提供全局路由地址的移动节点与家乡链路上节点通信的
方法,但是,对于如何将NAT与Mobile ip的反向隧道技术结合则没有说明,
本方法即在此基础上进行扩展。
发明内容
本发明所要解决的技术问题是提供一种结合网络地址转换与移动互联
网协议的通讯方法,解决使用私网地址的移动节点在internet上移动时需要
通过Mobile ip和NAT进行不间断通信的问题。
为达到上述目的,本发明提供了一种结合网络地址转换与移动互联网协
议的通讯方法,应用于路由器中对家乡代理、外地代理和移动节点进行配置,
其特点在于,包括如下步骤:在家乡代理上,设置网络地址转换模块,建立
家乡虚接口,对家乡虚接口赋予网络地址转换模块的内口属性;在外地代理
上,移动节点注册转交地址,建立外地虚接口,通过隧道虚接口方式在所述
家乡虚接口和外地虚接口之间建立隧道连接;在移动节点上,判断移动节点
所使用的转交地址是外地代理转交地址还是配置转交地址,如果使用外地代
理转交地址,则移动节点完成正常的移动互联网协议功能;如果移动节点使
用配置转交地址,则移动节点发出的数据包经反向隧道传送;由家乡代理和
外地代理对数据包进行处理,并且数据包在家乡代理和移动节点注册的转交
地址间通过隧道传送。
上述的方法,其特点在于,所述隧道虚接口方式为:将数据包进入/离开
隧道所必须进行的隧道包头封装/解封装功能抽象成虚接口。
上述的方法,其特点在于,当数据包进入隧道时需要先进入所述虚接口,
将其进行隧道包头的封装,然后在通过实际的物理接口发送出去;当隧道中
的数据包进入用于离开隧道的物理接口后,经过校验正确还要进入虚接口,
进行隧道的解封装操作,然后对内层的IP包进行查路由转发处理。
上述的方法,其特点在于,在移动节点的注册过程中还包括:建立所述
外地虚接口、移动节点所在的外地链路对应的外地代理的接口以及移动节点
的链路层信息的绑定关系,用来替代普通路由,作为移动节点通过外地代理
通信的转发依据。
上述的方法,其特点在于,所述链路层信息是MAC地址,用以避免有
相同私网IP地址的移动节点移动到同一个外地代理上。
上述的方法,其特点在于,在所述家乡代理对数据包的处理中,包括有
对家乡节点发送的数据包的处理,并具有如下步骤:
步骤a,家乡代理收到家乡节点发送的数据包;
步骤b,查路由;
步骤c,判断是否需要进行网络地址转换,是则执行步骤d,否则执行步
骤e;
步骤d,进行网络地址转换,并转到步骤h;
步骤e,数据包的出口设置为家乡虚接口,目的地址为在外地的移动节
点;
步骤f,进行隧道包头封装;
步骤g,查外层隧道包头目的地址的路由;
步骤h,从对应的物理接口将数据包发送出去。
上述的方法,其特点在于,在所述外地代理对数据包的处理中,包括有
对来自移动节点的数据包的处理,并具有如下步骤:
步骤A,从外地虚接口收到来自移动节点的数据包;
步骤B,判断数据包的目的地址是否为互联网上的主机,是则执行步骤
D,否则执行步骤C;
步骤C,查路由,并转到步骤F;
步骤D,进行网络地址转换处理;
步骤E,查路由;
步骤F,从相应的接口发送数据包。
本发明的技术效果在于:本发明所提供的方法,通过对移动ip的各个要
素进行适当的改造而将NAT和Mobile ip相结合,使得使用NAT的专用网中
的移动节点可以良好的利用Mobile ip功能,而且移动到外地链路上的的移动
节点无论与家乡专用网或者internet上的主机进行通信时,都如同在其家乡链
路时一样。
下面结合附图进一步详细说明本发明的具体实施例。
附图说明
图1是本发明中移动节点位于家乡链路上时进行通信的数据流的示意
图;
图2是本发明中移动节点移动到外地链路时与家乡链路上节点通信的数
据流的示意图;
图3是本发明中当移动节点移动到外地链路时与internet上的主机通信的
数据流的示意图;
图4是本发明中在HA上家乡节点发送的包的处理流程图;
图5是本发明中HA处理从隧道虚接口进入的来自移动节点的数据包的
流程图。
具体实施方式
请参阅图1,是移动节点位于家乡链路上时进行通信的数据流的示意图。
当移动节点在本地时,其访问本地节点时可以直接通信,而访问外部主机时
则需要经过路由器上的NAT模块进行地址转换,其数据流101如图所示。
请参阅图2,是移动节点移动到外地链路时与家乡链路上节点通信的数
据流的示意图。当MN移动到外地链路上时,其与家乡链路上的节点进行通
信时,数据流201为本地节点和HA上隧道虚接口的数据流,本地节点发送
的数据包到达虚接口时,就将通过隧道向MN发送,而从MN发往本地节点
的数据流,则离开虚接口后,可以直接转发给本地节点。图中数据流202则
是虚接口封装后的数据包通过隧道送往MN的数据流。数据流202在外地代
理上的转发是依靠前面所说的隧道虚接口、链路层信息和MN所在链路端口
的绑定关系进行的。
请参阅图3,是当移动节点移动到外地链路时与internet上的主机通信时
的数据流的示意图。其中数据流301表示在HA上需要进行NAT转换的数据
流部分,此时数据包在NAT的内口(隧道虚接口)和外口(与Internet相连
的接口)之间流动,需要进行NAT转换。而数据流302则为虚接口和移动节
点间的数据流。
下面再分别就FA和HA上涉及的处理进行说明:
在FA上,并不需要涉及NAT,但要将MN的源IP地址屏蔽。在MN的
注册过程中,将移动节点的链路层信息(如mac地址等,不使用ip地址,防
止私网地址冲突)、所连接的外地代理的端口和用于该节点的外地代理与家乡
代理间的隧道相绑定,这样,所有MN从所在外地链路发出的包,在FA上
进行链路层信息检查,检查匹配则都经由反向隧道送给HA,而HA送给MN
的包,先通过隧道送到FA,然后FA通过与该隧道绑定的移动节点所连的外
地链路端口和MN的链路层信息,将该数据包送给MN。
对于HA,在其上将隧道与NAT结合,采用虚接口机制,即将隧道的入、
出口也作为一种接口,称为虚接口,当数据包经过隧道虚接口发出时,要对
原始数据包进行隧道封装,如果从虚接口进入的包,则要进行隧道解封装以
获得原始数据包。这里将隧道虚接口设为NAT内口。具体的数据流可以分两
种情况看,对于MN和私网主机通信,当MN发出的数据包到私网,则从虚
接口进入,因为虚接口为内口,这时该包要到私网去,则出口也是内口,不
需要作NAT转换,如果私网的主机要访问MN,也为内口到内口,其不需要
进行NAT转换,可以直接通过隧道发送给MN;如果MN要到公网去,对于
MN发出的包,在HA上入口为内口,出口是外口,需要作NAT转换,对于
从公网回来的包,入口是外口,出口是虚接口,为内口,因而也要作NAT转
换。
参见附图4,是在HA上家乡节点发送的包的处理流程图,显示了当家乡
节点需要和移动节点通信或直接访问外网时HA上的处理,对访问外网时需
要进行NAT转换,对于访问MN时这要进行隧道封装,具体步骤包括:
步骤401,家乡代理收到家乡节点发送的数据包;
步骤402,查路由;
步骤403,判断是否需要进行网络地址转换,是则执行步骤404,否则执
行步骤405;
步骤404,进行网络地址转换,并转到步骤408;
步骤405,数据包的出口设置为家乡虚接口,目的地址为在外地的移动
节点;
步骤406,进行隧道包头封装;
步骤407,查外层隧道包头目的地址的路由;
步骤408,从对应的物理接口将数据包发送出去。
图5显示当HA收到从MN送来的包的处理,也分两种情况,即访问家
乡链路上的节点时不需要进行NAT转换,而访问外部主机时则需要进行NAT
转换,具体步骤包括:
步骤501,从外地虚接口收到来自移动节点的数据包;
步骤502,判断数据包的目的地址是否为互联网上的主机,是则执行步
骤504,否则执行步骤503;
步骤503,查路由,并转到步骤506;
步骤504,进行网络地址转换处理;
步骤505,查路由;
步骤506,从相应的接口发送数据包。