| 您当前的位置: CERNET >> 下一代互联网 >> 国内概况 >> |
BGP在Ipv6过渡阶段的应用 | ||||
邓冬平 | ||||
摘要 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连接提供可靠的路由信息发布,不需要周期性更新和额外的确认。 BGP的基本工作过程如下: 1 两个BGP实体间建立TCP连接,通过Open消息协商属性,协商成功则建立BGP邻居关系,并周期性发送Keepalive消息保持邻居关系。 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互通
纯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的过渡过程中起到重要作用。 | ||||
| ||||
| |||