Ipv6是下一代互联网的核心协议,从Ipv4网络迁移到Ipv6网络需要一个长时间的过渡阶段。BGP是目前Ipv4网络域间路由采用的主要路由协议,BGP具有良好的扩展能力,能够支持Ipv6过渡阶段的不同应用需求。 本文分析了Ipv6过渡阶段中BGP协议的多种应用环境。
BGP及其扩展
边界网关协议(BGP)是目前IP网络中应用广泛,并且也是唯一的域间路由协议,目前协议版本号是4(即BGP4)。BGP4最早由RFC1771描述(1995年),在2006年则发布了BGP的最新描述RFC4271。在此期间的十几年内,随着BGP的广泛应用,各种各样的扩展功能被加入到BGP中。对BGP的扩展分为两个大的方面:一个方面是对性能的增强(比如反射器,自治系统联盟,路由过滤,平稳重启,聚合),另一个方面是对功能的增强(多协议支持)。
在功能方面,RFC2858为BGP引入了多协议扩展(MBGP),从而大大扩展了BGP的使用范围。现在,BGP已经不局限于Ipv4路由的交换,它能够支持BGP/MPLS VPN,Kompella MPLS L2VPN,组播拓扑通告,以及Ipv6路由交换。
BGP具有很多独特属性:
使用TCP连接提供可靠的路由信息发布,不需要周期性更新和额外的确认。
采用距离矢量方法,路由计算简单。
路由更新采用增量更新,只更新发生变化的路由,减小了路由更新开销。
强大的路由控制能力(LOCAL_PREF,MED,聚合,团体属性),能够进行动态的策略路由。
具有较好的可伸缩性(路由反射器,自治系统联盟),能够适应不同的网络规模。
BGP的基本工作过程如下:
1 两个BGP实体间建立TCP连接,通过Open消息协商属性,协商成功则建立BGP邻居关系,并周期性发送Keepalive消息保持邻居关系。
2 在BGP邻居建立时一次性交换路由信息。
3 路由发生改变时发送Update消息更新路由。
BGP使用TCP来传输协议消息,而TCP本身属于传输层机制,能够在Ipv4和Ipv6上运行,和底层IP版本无关。BGP的传输机制和MBGP能力结合起来,使得BGP承载的信息与网络层无关,比如,能够通过Ipv4网络传递Ipv6路由,也能够通过Ipv6网络传递Ipv4路由。这一能力决定了BGP在Ipv6过渡阶段将起到重要作用,BGP可以用于单纯Ipv6环境,也可以用于Ipv4和Ipv6混合环境。
Ipv6过渡阶段与BGP
下一代互联网(CNGI)将采用Ipv6作为核心协议以替代目前的Ipv4。然而,互联网络的现状决定了Ipv6替代Ipv4的过程是平稳和漫长的。这个过程的第一步是利用Ipv4网络连接不同的Ipv6孤岛,第二步是大的Ipv6网络连接不同的Ipv4孤岛,最后,网络将完全使用Ipv6。可见,在Ipv6完全替代Ipv4之前,网络设备一个重要功能就是实现Ipv4和Ipv6的互通。当前互通应用主要有三类,即Ipv4和Ipv6网络的通信(NATPT,SIIT等),Ipv6孤岛通过Ipv4网络的通信(各种隧道技术),以及Ipv4通过Ipv6网络的通信(也是各种隧道技术)。在这三类应用中,Ipv4和Ipv6互通只需要一个网关设备,不需要BGP的参与;而隧道技术则至少需要一对隧道端点,可以采用BGP来建立隧道。BGP在纯Ipv6环境下协议操作过程和Ipv4环境下的过程基本一致,因此本文以下仅分析BGP在Ipv4/v6混合环境下的应用。以下的分析包括如何建立BGP会话以及如何使用BGP两个部分。
混合环境下的BGP应用分析
BGP可应用于跨越Ipv4网络的Ipv6互联和跨越Ipv6网络的Ipv4互联,这两种情况的原理基本一致,因此以下仅分析前一种网络环境下的应用。图1显示了这种应用的示意图,图中,R1和R4是纯Ipv6节点,而R2和R3则是双栈节点,R2和R3之间通过隧道技术提供两个Ipv6网络的互联。
图1:跨越Ipv4网络的Ipv6互通
在这个网络环境中,按照节点类型的不同,我们将BGP的使用分为以下几个情况来分析:
纯Ipv6节点间应用BGP
假定需要在R1和R4间使用BGP,则双方均采用Ipv6地址进行通信。此时,BGP协议消息在Ipv4网络看来就是普通的Ipv6数据,可以由隧道直接传输,BGP本身也不需要检测Ipv4的存在,这种情况实际上等同于纯Ipv6环境中的应用。
纯Ipv6节点于双栈节点间应用BGP
假定需要在R1和R3间使用BGP,R1采用Ipv6传输,而R3同时支持Ipv4和Ipv6,因此具有两种选择。根据网络过渡的基本原则,R3应采用和R1相同的传输技术,即Ipv6。此时,R1和R3间的BGP会话也等同于纯Ipv6环境中的应用。
双栈节点间应用BGP-Ipv6
假定R2和R3间需要建立BGP会话,则存在两种选择,即同时使用Ipv6地址,和同时使用Ipv4地址。R2和R3间使用Ipv6地址时,BGP的协议消息需要通过R2和R3间的隧道传输,本质上仍然是纯Ipv6环境的范畴,与上面的两种应用相同。
双栈节点间应用BGP-Ipv4
当R2和R3间采用Ipv4建立BGP会话时,情况与上述纯Ipv6环境有所不同。此时,BGP能够控制R2和R3间的隧道,因此,比单纯Ipv6环境中的应用更有意义。以下根据隧道类型不同分别进行描述
1 MPLS3层隧道(6PE)
BGP可以在交换Ipv6路由的时候为此路由分配一个MPLS标记。比如,当R3向R2通告路由2000::/64时可以附加一个标记L。R2收到此更新后将生成一条2000::/64的路由,路由下一跳指向(R3,L)组成的一条MPLS3层隧道。此后,当R2转发2000::/64的数据时,将把Ipv6数据前填充MPLS标记L,并将此标记包发送到R3(可以采用MPLS或GRE来封装这个MPLS包)。这种技术被称为6PE。
2 MPLS2层隧道
现有的BGP扩展能够实现VPWS/VPLS这样的2层服务,在这种应用中,R1和R4在IP层不识别R2和R3,对R1和R4而言,它们是直接连接的。R2将R1发送的2层包整个发送到R4。
3 Ipv6隧道
现有的Ipv6隧道需要在隧道两个端点进行配置,所有参数都需要人工检查。BGP的扩展能力使得自动隧道成为可能,通信双方只需要在本地配置隧道参数,而使用BGP交换隧道信息,从而自动生成隧道。而BGP自身具有的各种属性能够对隧道建立进行监控,比如出现配置错误时能够给出告警。自动建立隧道能够极大减少隧道配置工作量,对Ipv6网络的演进具有推动作用。
烽火网络对Ipv6的支持
武汉烽火网络公司与2004年6月推出了从高端到低端的IPv6路由器产品,烽火网络公司最新的模块化路由操作系统软件平台MROS全面支持IPv4/IPv6双栈。MROS中的BGP协议实现了RFC2858规定的MBGP,能够支持纯Ipv6环境下的Ipv6路由交换,还支持MPLS L3VPN,6PE,VPWS/VPLS等MPLS隧道功能,能够很好地适应Ipv6应用过渡过程中的各个阶段。
适应Ipv6过渡阶段中不同的网络环境和要求,并能够减少Ipv6部署的配置工作量。因此,BGP将在Ipv6的过渡过程中起到重要作用。
中国教育和科研计算机网版权与免责声明
①凡本网未注明稿件来源的所有文字、图片和音视频稿件,版权均属本网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本网协议授权的媒体、网站,在下载使用时必须注明"稿件来源:中国教育和科研计算机网",违者本网将依法追究责任。
② 本网注明稿件来源为其他媒体的文/图等稿件均为转载稿,本网转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。