2.2 标志和位置标志分离
2.2.1 主机驱动型
主机驱动型是指在主机协议栈的网络层和传输层之间加入主机标志层的分离类型,主机标志负责标志主机,网络地址负责数据分组的寻址和传送,应用连接不再与IP地址绑定,而是与主机标志绑定,网络层IP地址只作为网络层使用的位置标志,用于数据分组的路由转发。IP地址的变更对传输层以上透明,从而IP地址的改变可以不中断已经建立的应用连接,达到支持主机移动性和多归属的目的。HIP是主机驱动型的典型方案,主要要解决主机的安全和移动性问题,如果所有的IP网络都部属HIP,所有的主机都使用全新的名字空间作为主机标志,IP地址仅用于路由,IP地址就可完全按照网络拓扑分配,IP地址恢复可聚合性,从而彻底解决路由扩展性的问题。
HIP在网络层和传输层中间插入主机标志层(HIL),实现了身份与位置标志的分离,引入主机标志层后的协议体系结构如图5右侧协议栈所示。HIP引进一个新的加密的命名空间,该命名空间引入了3个新的标志符:主机标志符(HI)、主机标志标签(HIT)和局部标志符(LSI)。主机标志符唯一地标志了每台连接到Internet上的主机,每个主机可以有多个HI。HI可以用不对称加密算法中公/私密钥对的公钥来表示,由于不同的加密算法所拥有的密钥长度不一样,因此,在实际使用时,通常用128位定长的HIT来代替HI标志主机身份,HIT是对HI的某种哈希变换,与IPv6地址等长,在应用程序中使用非常方便,同时为了和现有的IPv4地址兼容,HIP协议还定义了LSI,作为局部系统中使用的主机标志符。HIP协议的基本交换是一个使用公钥作为主机标志并建立HIP基本交换加密的4次握手过程,它可以保证通信的安全性。
在HIP体系结构中的两台主机在进行通信时,发起方首先要通过查询DNS和映射系统获得通信对端的标志和位置标志集,然后两台主机再通过HIP基本交换建立安全关联,开始双向数据传输。
由此可见,在HIP体系结构中由于主机标志层的引入,使得原来传输层和网络层之间的紧耦合得以解耦,应用程序只看到一对不变的源、目的HIT,移动与多宿主对应用程序来说是透明的。此外,HIP通过引入汇聚服务器(RVS)用来维护移动节点的当前位置信息,保证节点移动能够不中断通信。
HIP也存在一定的缺陷:
HIP不支持组播;
需要大量部署RVS以解决主机移动问题,如果利用现有的DNS,需增强动态更新的处理能力;
HIP主机之间的通信需要对数据包进行加密和解密,增加CPU的额外负担;
HIP的主机标志采用扁平结构,不具备合理的商业模型;
HIP的部属需要对主机协议栈进行修改,对Internet影响较大。
2.2.2 路由器驱动型
路由器驱动型方案将整个Internet划分为边缘网络与核心网络,边缘网络内部使用PI地址,既作为主机的标志符也用于内部的路由寻址;核心网络使用PA地址,用于核心网络的路由;边界路由器将数据分组中的目的PI地址改为核心网络的PA地址,实现边缘网络与核心网络分离。路由器驱动型方案使用PI地址前缀作为网络标志符,PA地址作为该网络接入Internet的拓扑位置,从而分离了边缘网络的IP地址前缀的双重语义,保证了Internet的路由扩展性。
LISP是这类方案中的一种典型方案,LISP将地址空间分为端点标志(EID)和路由位置符(RLOC)。EID可以唯一地标志边缘网络内的主机,在边缘网络内既用于路由也用于主机标志,EID的前缀作为边缘网络的标志符。RLOC标志网络位置,在核心网络中用于路由。LISP还定义了入口隧道路由器(ITR)和出口隧道路由器(ETR)。
LISP将边缘网络内外主机间的通信路径分成图6所示的3个部分:边缘网络内从源主机到ITR(绿色)的路径部分,使用EID路由;从ITR到ETR的隧道路径部分(红色),使用RLOC路由;从ETR到目的主机的路径部分,使用EID路由(紫色)。下面就以主机A向主机B发送数据分组的过程为例说明LISP的主要原理:
数据分组首先被转发到ITR(路由器E);
ITR在本地映射缓存中查找目的EID到RLOC的映射,如果查找到对应的RLOC,则为数据分组添加一个外部LISP包头,该LISP包头中包括ETR和ITR的RLOC地址,将封装好的数据分组发送到核心网的边界路由器J;
核心网利用RLOC地址进行路由,将数据分组发送到ETR(即路由器I);
ETR接收到数据分组后进行解封装,再将解封装后的数据分组通过目的远端标志进行路由并发送到目的主机B。
如果ITR没有找到所需的映射信息,则需要先向映射系统发送请求映射信息的消息(映射请求、数据探针)。映射系统是LISP系统的一个重要组件,工作在路由系统的控制平面,负责处理ITR没存所需映射信息的情况。LISP目前已提出了4类映射系统,分别为:内容分发覆盖网络服务(CONS)、非新颖的EID到RLOC的映射数据库(NERD)、穿越合作系统的EID映射多播(EMACS)、可替代的逻辑拓扑(ALT)。当前的LISP原型系统采用的是ALT机制。
LISP-ALT由ALT路由器组成,通过通用路由协议封装(GRE)隧道相互连接,在BGP路由系统之上组成一个树形拓扑结构的逻辑覆盖网络,覆盖网络负责将映射请求信息和数据探针(数据探针的内部地址EID和外部地址RLOC相同)转发至存有被请求的EID到RLOC映射信息的ETR,ALT路由器之间使用BGP协议通告EID前缀的可达性信息,这些EID前缀的可达性信息在树形拓扑结构的覆盖网络中逐层汇聚,如图7所示。
LISP将边缘网络与核心网络分离,整个核心网的路由器使用PA地址,实现了核心网络的拓扑聚合,从而减小了DFZ中的路由表规模,并能够支持可扩展的站点多归属和流量工程;边缘网络由于使用EID作为地址空间,因此在更换ISP时无需重新编址。LISP方案不必修改核心路由器,仅要对边缘路由器作一定的修改,对目前已有的网络基础设施改动较少。当然,LISP也存在一些缺点,由于采用隧道机制,存在最大传输单元(MTU)问题,且需要消耗一定的带宽;LISP对移动性支持有限;未来Internet的需求之一是移动性,对移动性的有限支持是LISP亟待解决的重要问题之一;LISP引入了映射系统,方案的部署开销仍需进一步评估。