在无线网普遍使用的环境中,如何提供随时无缝移动连接的网络是一个难题,但如今随着位置标识/身份标识分离协议出现已经成为一个现实,它提供了一种数据包路由方法,它可以在不改变终端软件的前提下实现虚拟机在服务器之间的无缝迁移,让移动设备在Wi-Fi和无线网络之间的无缝迁移。
一、传统IP转发机制不适用于在网络之间迁移的节点。因为IP地址(IPv4和IPv6)包含一个网络号和一个网卡地址,所以转发难度加大。
网络号可用于将数据包转发到相应的网络;网卡地址则可用于选择网络节点。一旦节点移动到另一个网络,地址上的网络段就会失效。如果要在节点移动时更新终端IP地址,则需要修改节点软件,但是这种方法不适用于VM或移动设备。
二、在传统网络中,终端节点不会移动,需要发送数据包的节点会通过DNS查找或检查之前从该目标接收到的数据包,查找目标节点的终端标识符(End Point Identifier, EID)。
EID就是目标节点的IP地址,而路由位置标识(Routing Locator, RLOC)部分则可以精确确定本地网络的目标地址。数据包将从本地网络发送到提供互联网通路的路由器。这台路由器负责使用标准路由协议确定如何到达目标网络。
三、LISP标准包含以下几个定义:
1、EID:终端标识符是终端初始化时分配到的IP地址,它通常由动态主机配置协议(Dynamic Host Configuration Protocol)确定。在网络迁移过程中,设备或虚拟机的EID不会发生变化。
2、ETR:出口通道路由器(Egress Tunnel Router)是负责将数据包从互联网传输到本地网络的路由器,而目标终端节点就位于本地网络中。
3、ITR:入口通道路由器是负责将数据包从本地网络传输到互联网的路由器,而源节点就位于本地网络中。由于数据包在两个方向移动,所以路由器将作为离开网络的数据包的ITR,和来自互联网,去往网络节点的数据包的ETR。
4、RLOC:路由位置标识是指IP地址的网络标识符部分。它可用于将数据包从ITR传输到ETR。
四、当节点移动时,传统的数据包转发方法就会失效。发送数据包的节点会通过DNS或之前通过传统方式接收到的数据包,学习目标的EID。然而,在移动网络中,EID所包含的RLOC是无效的。移动节点的EID是在节点初始化时分配的。当节点移动时,RLOC部分就不能再用于将数据包转发到移动目标。
五、LISP会在通向移动节点的数据包上添加一个额外IP头,从而解决这个问题。入口通道路由器(ITR)会通过位置标识/身份标识分离协议(LISP)定义的映射功能学习到移动节点的当前位置。
当ITR接收到来自本地网络节点的数据包时,它就会查询LISP映射功能。映射功能会返回(响应)RLOC,用于确定当前位置到目标节点的路径。
六、然后,ITR会在离开的数据包前面添加一个传统包头,然后在其中添加从映射服务中学习到的RLOC。接着,数据包会通过标准路由协议转发到互联网。LISP不需要对任何路由协议或互联网核心路由器进行修改。
七、在到达目标网络时,接收端出口通道路由器会删掉所添加的包头。然后,它会将数据包从它的本地网络转发到目标节点。对于目标节点而言,接收的数据包就好像从未发生移动一样。所以LISP不要求对节点软件进行任何修改。
当一个ETR需要转发数据包但又不知道该使用哪一个RLOC时,它会发送一个“映射请求”到“映射解析器”。映射解析器会使用通过BPG学习到的信息确定相应的ETR。
然后,映射解析器会将映射请求转发给ETR,ETR则会通过发送映射响应原始的ITR。ITR会在数据包上附加额外的包头信息,并且将接收到的RLOC添加在目标地址域中。