收藏 分销(赏)

BGP&MPLS IP VPN基本原理.doc

上传人:pc****0 文档编号:6269311 上传时间:2024-12-04 格式:DOC 页数:16 大小:193.93KB 下载积分:10 金币
下载 相关 举报
BGP&MPLS IP VPN基本原理.doc_第1页
第1页 / 共16页
BGP&MPLS IP VPN基本原理.doc_第2页
第2页 / 共16页


点击查看更多>>
资源描述
BGP&MPLS IP VPN基本原理 一.MP-BGP VPN为什么使用MP-BGP 前面提过,传统的BGP-4(RFC1771)只能管理IPv4的路由信息,无法正确处理地址空间重叠的VPN的路由。 为了正确处理VPN路由,VPN使用RFC2858(Multiprotocol Extensions for BGP-4)中规定的MP-BGP,即BGP-4的多协议扩展。MP-BGP实现了对多种网络层协议的支持,在Update报文中,将网络层协议信息反映到NLRI(Network Layer Reachability Information)及Next Hop。 MP-BGP采用地址族(Address Family)来区分不同的网络层协议,既可以支持传统的IPv4地址族,又可以支持其它地址族(比如VPN-IPv4地址族、IPv6地址族等)。关于地址族的一些取值可以参考RFC1700(Assigned Numbers)。 说明:VRP实现多种MP-BGP扩展应用,包括对VPN的扩展、对IPv6的扩展等,不同的扩展应在各自的地址族视图下配置。默认情况下,对于IPv4地址族,只要指定了对等体的地址及其所在的AS,本端就自动具备与对等体建立会话能力。但是对于其他地址族,需要手工使能。 MP-BGP能够在PE路由器之间传播VPN组成信息和VPN-IPv4路由,是通过在BGP中引入扩展团体属性来实现的。 MP-BGP中引入了两个新的路径属性: MP_REACH_NLRI MP_UNREACH_NLRI 这两个属性都是可选非过渡(Optional non-transitive)的,不提供多协议能力的BGP发言者将忽略这两个属性的信息,不把它们传递给其它邻居。因此,在VPN中,提供多协议能力的PE设备将把VPN路由信息通过MP-BGP发布给具备该能力的对端PE或作为ASBR的PE。不具备该能力的其他BGP对等体将忽略该属性,也就不会识别和保存VPN路由信息。 说明可选非过渡是BGP的一种属性类型。如果BGP路由器不支持此类属性,则相应的Update消息会被忽略,且不会通告给其他对等体。 下面介绍这两个属性: 二.MP_REACH_NLRI MP_REACH_NLRI(Multiprotocol Reachable NLRI),即多协议可达NLRI,用于发布可达路由及下一跳信息。该属性由一个或多个三元组<地址族信息、下一跳信息、网络可达性信息>组成,格式如下: 图1-1 MP_REACH_NLRI属性的格式 1.地址族信息(Address Family Information)域:由2字节的地址族标识AFI(Address Family Identifier)和1字节的子地址族标识SAFI(Subsequent Address Family Identifier)组成。 − AFI标识网络层协议,对应RFC1700的“Address Family Number”所定义的地址族值。例如IPv4的值是1,IPv6的值是2。 − SAFI表示NLRI的类型。 AFI值为1,SAFI值为128表示NLRI中的地址为MPLS-labeled VPN-IPv4地址。 2.下一跳信息(Next Hop Network Address Information)域:由一字节的下一跳网络地址长度和可变长度的下一跳网络地址组成。下一跳网络地址是指去往目的系统的路径上的下一个路由器网络地址。MP-BGP中,BGP发言者在向EBGP对等体发布MP_REACH_NLRI属性时,会把下一跳网络地址设置为本地与对端连接的接口地址。BGP发言者在向IBGP对等体发布MP_REACH_NLRI属性时,保持下一跳网络地址不变。 3.网络层可达性信息(NLRI)域:由一个或多个三元组<长度、标签、前缀>组成。其格式如下: 图1-2 携带标签的NLRI格式 − 长度域:标签域和前缀域的总比特数。 − 标签域:标签域由一个或多个标签组成,每个标签长度为3字节。标签的格式与MPLS中定义的一样,最高位表示是否为栈底,接下来三位为0,后面20位是标签值。关于标签的详细介绍请参见《VRP 特性描述 MPLS》。 − 前缀域:在BGP/MPLS IP VPN中,前缀域由RD和IPv4地址前缀组成。 当两个PE(或ASBR PE)之间交换VPN路由信息时,在Update消息中携带MP_REACH_NLRI属性。一个Update消息可以携带多条具有相同路由属性的可达路由信息。 三.MP_UNREACH_NLRI MP_UNREACH_NLRI(Multiprotocol Unreachable NLRI),即多协议不可达NLRI,用于通知对等体删除不可达的路由。该属性的格式如下: 图1-3 MP_UNREACH_NLRI属性的格式 1.地址族标识AFI:与MP_REACH_NLRI属性中的相同,用于标识网络层协议,对应RFC1700的“Address Family Number”所定义的地址族值。 2.子地址族标识SAFI:与MP_REACH_NLRI属性中的相同,表示NLRI的类型。 3.撤销路由(Withdrawn Routes):不可达路由列表,也是由一个或多个NLRI组成。BGP发言者可以通过在撤销路由域中携带与之前发布的可达路由中相同的NLRI来撤销路由。 BGP发言者通过携带MP_UNREACH_NLRI属性的Update消息来撤销VPN-IPv4路由。一个Update消息可以携带多条不可达路由信息。 当撤销路由时,如果指定了标签,只有指定的标签被撤销;如果没有指定标签,只有不带标签的路由被撤销。 携带MP_UNREACH_NLRI属性的Update消息不再携带其他路径属性。因为不同的路径分配的标签不同,对端只需根据标签来删除对应的路由。 三.MP-BGP能力协商 BGP路由器通过Open消息协商能力,通过查看OPEN消息中的能力参数来确定对等体所具有的能力(如使用多协议扩展来携带标签映射信息的能力)。BGP路由器如果支持某功能,并且确定对方也具备该能力,那么该BGP路由器将使用该功能与对等体交互。 Open消息包含可选的能力协商参数Capabilities,由一个或多个三元组<Parameter Type、Parameter Length、Parameter Value>组成。其格式如图1-4。 图1-4 BGP可选能力协商参数格式 1.Capability Code:唯一标识了该能力的类型。该值为1表示BGP发言者具备MP-BGP能力。 2.Capability Length:表示能力值域的长度。MP-BGP能力参数中,能力值域的长度为4。 3.Capability Value:能力值域,可变长度,决定于Capability Code。MP-BGP能力参数中,能力值域的格式如图1-5。其中, − AFI(2字节)和SAFI(1字节)的含义与MP_REACH_NLRI中的相同。 − Res.为保留域(1字节)。发送方应将其置0;接收方应忽略该域信息。 图1-5 MP-BGP能力值域的格式 目前BGP不支持动态能力协商。BGP发言者发布了一个携带可选能力参数后, 1.如果收到对端回应的Notification消息,表明对端不支持能力发布。此时BGP发言者将中断与该对等体的会话,发送一个不携带任何可选能力参数的Open消息,试图重新建立BGP连接。 2.如果对端支持能力发布,但该可选能力参数是未知的或不支持的,则协商失败。此时BGP发言者将中断与该对等体的会话,发送一个不携带该可选能力参数的Open消息(可能还携带其他可选能力参数),试图重新建立BGP连接。 因此BGP能力的变化,如使能或禁止标签路由能力、使能或禁止某地址族能力(如IPv4、IPv6、VPNv4、VPNv6)、使能GR能力等,BGP发言者都会中断与该邻居的会话,之后重新进行邻居能力协商。 BGP路由交互的条件 MP-BGP对等体之间进行路由交互,必须具备如下条件: 1.MP-BGP对等体之间有互相到对方的可达路由 BGP的运行是通过消息驱动的,这些消息通过TCP协议进行传播(端口号是179)。为了在对等体之间建立TCP连接,MP-BGP对等体之间必需有到对方的可达路由。 BGP对等体不一定就是相邻的路由器,利用逻辑链路也可以建立BGP对等体关系。为了增强BGP连接的稳定性,使用32位掩码的Loopback接口地址建立连接。 BGP不会自己去发现和计算AS内部的路由信息,一般通过引入IGP路由、静态配置的路由或直连路由到BGP路由表中。 MP-BGP对等体之间建立和维持BGP会话连接 Open消息是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。对等体在接收到Open消息后,将发送Keepalive消息确认并保持连接的有效性。确认后,对等体间才进行其他类型消息的交换。因此MP-BGP对等体之间必须建立和维持BGP会话连接。 四.VPN-IPv4路由更新请求 以下几种情况,PE设备需要向对等体请求重传BGP Update消息来刷新路由: l 本端入口策略发生变化 l 本端新增或删除VPN-Instance实例 l 本端VPN-Instance的VPN-Target属性的添加或删除 当需要向对等体请求重传BGP Update消息时,PE向已经和自己成功进行能力协商的邻居发送Route Refresh消息,其中携带AFI和SAFI。 邻居收到Route-Refresh消息会重传满足特定AFI和SAFI的所有路由。 五.PE上的VPN路由选择 私网路由交叉 两台PE之间通过MP-BGP传播的路由是VPNv4路由。当接收到VPNv4路由,PE先进行如下处理: 1.检查其下一跳是否可达。如果下一跳不可达,该路由被丢弃。 2.对于RR发送过来的VPNv4路由,如果本地已有该路由,需检查其Cluster ID是否相同。如果相同,丢弃该路由。 3.进行BGP的路由策略过滤,如果不通过,拒丢弃该路由。 之后,PE把没有丢弃的路由与本地的各个VPN实例的Import Target属性匹配。 VPNv4路由与本地VPN实例的VPN-Target进行匹配的过程称为私网路由交叉。PE在收到VPNv4路由后,既不进行优选,也不检查隧道是否存在,直接将其与本地的VPN实例进行交叉。 PE上有种特殊的路由——来自本地CE的属于不同VPN的路由。对于这种路由,如果其下一跳直接可达或可迭代成功,PE也将其与本地的其他VPN实例的Import Target属性匹配,该过程称为本地交叉。要使本地交叉成功,需要在被交叉的路由所属VPN对应的BGP-VPN实例地址族下引入直连路由。 说明为了能够将报文正确转发出去,BGP路由器必须先找到一个直接可达的地址,通过这个地址到达路由表中指示的下一跳。在上述过程中,去往直接可达地址的路由被称为依赖路由,BGP路由依赖于这些路由指导报文转发。根据下一跳地址找到依赖路由的过程就是路由迭代。 在PE上执行display ip routing-table vpn-instance vpn-instance-name verbose命令可查看该PE上交叉成功的私网路由和来自本地CE的路由。该命令的显示结果中,只有对应的状态带有“Active”的路由才被放入VPN实例路由表。VPN实例路由表的查看方法是执行不带参数verbose的display ip routing-table vpn-instance vpn-instance-name命令。 隧道迭代 为了将私网流量通过公网传递到另一端,需要有一条公网隧道承载这个私网流量。因此私网路由交叉完成后,需要根据目的IPv4前缀进行路由迭代,查找合适的隧道(本地交叉的路由除外);只有隧道迭代成功,该路由才被放入对应的VPN实例路由表。将路由迭代到相应的隧道的过程叫做隧道迭代。 隧道迭代成功后,保留该隧道的标识符(Tunnel ID),供后续转发报文时使用。Tunnel ID用于唯一标识一条隧道。VPN报文转发时根据Tunnel ID查找对应的隧道,然后从隧道上发送出去。 display ip routing-table vpn-instance vpn-instance-name verbose命令的显示结果中,路由的状态带有“GotQ”表示隧道迭代成功;带有“WaitQ”表示隧道迭代不成功。隧道迭代成功的交叉路由对应的隧道标识符(Tunnel ID)不为0x0。如果交叉路由的隧道标识符为0x0,表示隧道迭代不成功。去往本地CE的报文不从隧道转发,因此本地CE路由和本地交叉路由对应的隧道标识符都是0x0。 私网路由的选择规则 经过路由交叉和隧道迭代的路由并不是全部被放入VPN实例路由表。从本地CE收到的路由和本地交叉路由也不是全部被放入VPN实例路由表。 对于到同一目的地址的多条路由,如果不进行路由的负载分担,按如下规则选择其中的一条: l 同时存在直接从CE收到的路由和交叉成功后的同一目的地址路由,则优选从CE收到的路由。 l 同时存在本地交叉路由和从其他PE接收并交叉成功后的同一目的地址路由,则优选本地交叉路由。 对于到同一目的地址的多条路由,如果进行路由的负载分担,则: l 优先选择从本地CE收到的路由。只有一条从本地CE收到的路由而有多条交叉路由的情况下,也只选择从本地CE收到的路由。 l 只在从本地CE收到的路由之间分担或只在交叉路由之间分担,不会在本地CE收到的路由和交叉路由之间分担。 l 选择了交叉路由进行负载分担后,一旦从本地CE收到VPN路由,PE选择从本地CE收到的路由之间进行负载分担。 l 负载分担的AS-PATH属性必须完全相同。 六.VPNv4路由发布 PE设备通过MP-BGP发布给对端PE的VPNv4路由分为两种情况: l 从本地CE接收的IPv4路由 − 没有配置负载分担时,从CE收到的路由直接转换为VPNv4的路由发送所有对等体 − 配置了负载分担后,从CE收到的路由优选后条数发生了变化,但发送给对等体的只有一条,下一跳为本PE设备。配置负载分担和取消负载分担的配置都会使PE重新发布这条VPNv4路由。 l 从其他对等体接收过来的VPNv4路由 PE把VPNv4路由向别的对等体发送前,需要检查是否从该对等体收到了RD相同的同一条路由:如果没有收到就发送给该对等体;如果收到了,则不再发送。 MP-BGP的VPN-IPv4路由发布策略仍与普通BGP相同: l 存在多条有效路由时,BGP Speaker只将最优的路由发布给对等体。 l BGP Speaker只把自己使用的路由发布给对等体。 l BGP Speaker从EBGP获得的路由会向它所有BGP对等体发布(包括EBGP对等体和IBGP对等体)。 l BGP Speaker从IBGP获得的路由不向它的IBGP对等体发布。 l BGP Speaker从IBGP获得的路由发布给它的EBGP对等体(在不使能BGP与IGP同步特性的情况下)。 l 连接一旦建立,BGP Speaker把自己所有BGP路由发布给新对等体。 七.应用于BGP/MPLS IP VPN的隧道 BGP/MPLS IP VPN中常用的隧道有: l LSP隧道 使用标签转发,是应用于BGP/MPLS IP VPN中常见的隧道。使用LSP隧道作为BGP/MPLS IP VPN的公网隧道,骨干网在转发VPN数据转发时,只在PE设备分析IP报文头,而不用在VPN报文经过的每一台设备都分析IP报文头。这样,节约了对VPN报文的处理时间,可降低VPN报文时延。另外,标签能够被任意的链路层所支持。LSP在功能上与ATM和帧中继的虚电路相同,其安全性与ATM和帧中继网络相当。因此,如果传输BGP/MPLS IP VPN报文的骨干网设备都支持MPLS,建议使用LSP或MPLS TE(Traffic Engineered)作为公网隧道。 l GRE隧道 如果网络边缘的PE路由器具备MPLS功能,但骨干网核心路由器(P路由器)只提供纯IP功能,不具备MPLS功能。这样,就不能使用LSP作为公网隧道。此时,可以使用GRE隧道替代LSP作为VPN骨干网隧道。GRE的详细介绍请参见“GRE协议”。 l L2TP隧道 对于出差用户,不可能总是可以直接接入到MPLS骨干网的PE设备上。这样就无法通过Internet或者是IP骨干网直接访问MPLS VPN内部的站点。此时可以采用L2TP协议来解决此问题。这种技术也称为L2TP接入三层VPN技术。详细介绍请参见“L2TP协议”。 l MPLS TE隧道 MPLS TE是MPLS技术与TE流量工程相结合的技术,通过建立到达指定路径的LSP隧道进行资源预留,使网络流量绕开拥塞节点,达到平衡网络流量的目的。MPLS TE中用到的这种LSP隧道就称为MPLS TE隧道,也是应用于BGP/MPLS IP VPN中常见的隧道。 除了具备LSP隧道的优势外,MPLS TE隧道在解决网络拥塞问题方面有着自己的优势。利用MPLS TE隧道,服务提供商能够充分利用现有的网络资源,提供多样化的服务。同时可以优化网络资源,进行科学的网络管理。 在MPLS VPN业务中,运营商往往需要为VPN用户的各种业务类型(如语音业务、视频业务、关键数据业务、普通上网业务)提供端到端的QoS保证。为满足用户需求,可以使用MPLS TE隧道,为用户创建具有QoS保证的隧道。 此外,使用MPLS TE隧道,运营商还可以根据VPN用户的不同服务要求,通过一定的策略构建各种有QoS保证的VPN服务,具体请参见十三.VPN QoS。 八.MP-BGP标签分配 在BGP/MPLS IP VPN中,PE通过MP-BGP发布给骨干网的其他相关的PE前,需要将私网路由与MPLS标签关联。当用户数据包在骨干网传输时,携带MPLS标签。 每个PE在分配标签前,需要发布一个标识自己的路由。该路由需要通过IGP发布给骨干网的其他PE节点,使其他节点根据该路由为PE分配标签。为了减少全网LSP数量,推荐使用只对32位掩码的Loopback接口的路由分配标签,一般与BGP会话使用同一个Loopback接口。 PE分配标签的方法有多种。VRP实现如下两种方法: l 基于路由的MPLS标签分配:默认情况下,VRP为VPN路由表的每一条路由分配一个标签(one label per route)。这种方式的缺点是:当路由数量比较多时,路由器入标签映射表ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对路由器容量的要求。 l 基于VPN的MPLS标签分配:为整个VPN实例分配一个标签,该VPN实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。 运营商的运营商(Carriers' Carrier)中采用基于路由的MPLS标签分配方式,在目前的VRP版本中,不能在运营商的运营商组网中使用基于VPN的MPLS标签分配。 九基本BGP/MPLS IP VPN的路由发布 概述 在基本BGP/MPLS IP VPN组网中,VPN路由信息的发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。PE路由器一般只维护自身接入的VPN的路由信息,不维护所有VPN路由。 VPN路由信息的发布过程包括三部分: l 本地CE到入口PE l 入口PE到出口PE l 出口PE到远端CE 完成这三部分后,本地CE与远端CE之间建立可达路由,VPN路由信息能够在骨干网上发布。 下面分别对这三部分进行介绍。 本地CE到入口PE的路由信息交换 CE与直接相连的PE建立邻居或对等体关系后,把本站点的VPN路由发布给PE。CE与PE之间可以使用静态路由、RIP、OSPF、IS-IS或BGP。无论使用哪种路由协议,CE发布给PE的都是标准的IPv4路由。 PE上的各VPN路由转发表之间相互隔离,并与公网路由转发表相互独立。PE从CE学习路由信息时,PE需要区分该路由应注入哪个路由转发表。通常的静态路由和路由协议自身并不具备这种区分能力,必须使用手工配置实现: 1.如果CE与PE之间使用静态路由,需要在配置静态路由时指定VPN实例(使用命令ip route-static vpn-instance)。 通常情况下,静态路由用于stub VPN的CE与PE间交换路由,或者CE是个主机或者交换机的情况。如果CE是台主机或者交换机,通常在与之相连的PE上配置到该CE所在site的静态路由,无需使用路由协议。 说明:如果一个VPN接收本VPN以外的、非PE发布的路由,并将这些路由发布给PE,这类VPN称为过渡VPN(transit VPN)。 只接收本VPN路由以及PE发布的路由的VPN称为stub VPN。 PE与CE之间采用静态路由的好处是配置简单,并且可以避免因CE设备的路由振荡影响骨干网PE设备的BGP VPNv6路由的稳定性。 2.如果CE与PE之间使用IGP,每个VPN单独使用一个进程,不同的VPN使用不同的进程。此时需要在配置IGP进程时指定VPN实例(例如,ospf process-id vpn-instance vpn-instance-name)。 当CE与PE之间使用IGP交换路由信息时,如果站点内包括后门连接(backdoor link)时,处理相对复杂,具体请参见Error! Reference source not found.。另外,在Hub&Spoke组网中IGP在CE与PE之间的使用也有一定的限制,具体请参见Error! Reference source not found.。 说明后门连接是指两个Site之间的连接,该连接不经过VPN骨干网。这两个site的流量主要通过VPN骨干网的链路传输,后门连接作为备份链路。 3.如果CE与PE之间运行EBGP,需要在相应的BGP VPN实例视图下使能MP-EBGP对等体。 从技术角度看,使用BGP是较好的选择: − BGP是一种外部网关协议,可以用来实现不同AS之间传递路由信息。 − 使用BGP,CE更易于传递路由属性(如AS-PATH)给PE。 − BGP提供了丰富的路由策略,能够对VPN路由实现灵活的过滤和选择。 − 如果站点内包括backdoor,BGP也能正确处理,而使用IGP的处理相对复杂。 如果PE和CE之间运行EBGP,由于BGP使用AS号检测路由环路,为保证路由信息的正确发送,需要为物理位置不同的节点分配不同的AS号。但VPN站点使用的是私有AS号,不同VPN的站点可能使用相同的AS号。Transit VPN站点使用的AS号要求全局唯一。 Stub VPN站点可以复用相同的私有AS号,此时需要在PE上使用十一.BGP的AS号替换功能。 入口PE到出口PE的路由信息交换 入口PE到出口PE的路由信息交换过程可分为三部分: 1.PE从CE学到VPN路由信息后,为这些标准IPv4路由增加RD和VPN Target属性,形成VPN-IPv4路由,存放到VPN实例中。 2.入口PE通过MP-BGP的Update报文把VPN-IPv4路由发布给出口PE。Update报文中还携带RD、VPN-Target属性及MPLS标签。 BGP发布的VPN-IPv4路由,首先通过策略路由的过滤,然后通过BGP路由策略的过滤,才能被下一跳PE接收到。 出口PE收到VPN-IPv4路由后,进行本地交叉、隧道迭代和路由优选,决定是否将该路由加入到VPN实例的路由表。从其他PE接收的并被加入到VPN路由表的路由,本地PE为其保留如下信息以供后续转发报文时使用: − MP-BGP Update消息中携带的MPLS标签值 − 隧道迭代成功后的Tunnel ID 出口PE到远端CE的路由信息交换 远端CE有多种方式可以从出口PE学习VPN路由,包括静态路由、RIP、OSPF、IS-IS和BGP,与本地CE到入口PE的路由信息交换相同。此处不再赘述。值得注意的是,出口PE发布给远端CE的路由是普通IPv4路由。 VPN路由发布过程举例 下面以图1-6(PE-CE之间使用BGP,公网隧道为LSP)为例,说明将CE2的一条路由发送到CE1的过程。 图1-6 CE2->CE1的路由发布过程 1.在CE2的BGP IPv4单播地址族下引入IGP路由。 2.CE2将该路由随EBGP的Update消息一起发布给Egress PE。Egress PE从连接CE2的接口收到Update消息,把该路由转化为VPN IPv4路由,加入对应的VPN实例路由表。如果Egress上有其他VPN实例的路由表,比较其Import RT是否与该路由的Export RT一样。如果一样,将该路由加入相应的VPN实例的路由表。 3.同时,Egress PE为该路由分配MPLS标签,并将标签和VPNI IPv4路由信息加入MP-IBGP的Update消息中的NLRI,Export-RT属性加入MP-BGP Update消息的扩展团体属性字段中,将Update消息发送给Ingress PE。 4.Ingress PE先要对该路由进行BGP的路由策略过滤。如果不通过,则拒绝接收;如果通过,则Ingress PE对该路由进行路由交叉。交叉成功则根据路由目的IPv4地址进行隧道迭代,查找合适的隧道。如果迭代成功,则保留该隧道的Tunnel ID和标签,并将路由加入该VPN实例路由表。 5.Ingress PE把该路由通过BGP Update消息发布给CE2。此时路由是普通IPv4路由。 6.CE2收到该路由后,把该路由加入BGP路由表。通过在IGP中引入BGP路由的方法可使CE把该路由加入IGP路由表。 上面过程只是将CE2的路由发布给CE1。要实现CE1与CE2的互通,还需要将CE1的路由发布给CE2,其过程与上面的步骤类似,此处不再赘述。 十.基本BGP/MPLS IP VPN报文转发 在BGP/MPLS IP VPN骨干网中,P路由器并不知道VPN路由信息,VPN报文通过隧道在PE之间转发。以图1-6为例说明BGP/MPLS IP VPN报文的转发过程。图1-7是CE1发送报文给CE2的过程。其中,I-L表示内层标签,O-L表示外层标签。 图1-7 VPN报文转发过程 1. CE1发送一个VPN报文。 2. Ingress PE从绑定了VPN实例的接口上接收VPN数据包后进行如下操作: − 先根据绑定的VPN实例的RD查找对应VPN的转发表。 − 匹配目的IPv4前缀,查找对应的Tunnel-ID, − 根据Tunnel-ID找到隧道,并打上对应的标签(I-L)。 − 将报文从隧道发送出去。此例的隧道是LSP,则打上公网(外层)MPLS标签头(O-L1)。 接着,该报文携带两层MPLS标签穿越骨干网。骨干网的每台P设备都对该报文进行外层标签交换。 3. Egress PE收到该携带两层标签的报文,交给MPLS协议处理。MPLS协议将去掉外层标签(此例最后的外层标签是O-L2)。 4. 此时Egress PE就可以看见内层标签,发现该标签处于栈底,将内层标签剥离。 5. Egress PE将报文从对应出接口发送给CE1。此时报文是个纯IP报文。 这样,报文就成功地从CE1传到CE2了。CE2按照普通的IP转发过程将报文传送到目的地。 十一.BGP的AS号替换 VPN站点使用的是私有AS号,不同VPN的站点可能使用相同的AS号。由于EBGP使用AS号检测路由环路,如果PE和CE之间运行EBGP,为保证路由信息的正确发送,需要为物理位置不同的节点分配不同的AS号。 实现方法是在PE上配置BGP的AS号替换功能(在BGP-VPN实例视图下配置peer ip-address substitute-as命令),使复用的AS号在离开骨干网时剥离。此功能是BGP的出口策略,在发布路由时有效。 使能了BGP的AS号替换功能后,当PE向指定对等体中的CE发布路由时,如果路由的AS_Path中有与CE相同的AS号,将被替换成PE的AS号后再发布。对于对等体组,处理规则一样,即PE向对等体组中所有已建立连接的CE重新发送所有路由,并对发送路由中的AS_Path属性按上述规则替换。 图1-8 BGP AS号替换应用示意图 在图1-8中,CE1和CE2都使用AS号800,在PE2上使能针对CE2的AS号替换功能。当CE1发来的Update信息从PE2发布给CE2时,PE2发现AS_PATH中存在与CE2相同的AS号800,就把它替换为自己的AS号100,这样,CE2就可以正确接收CE1的路由信息。 对于PE使用不同接口连接多个CE的情况,如上图中的CE2和CE3,也可以使用BGP的AS号替换功能。 十二.VPN路由反射器 BGP Speaker从IBGP获得的路由不向它的IBGP对等体发布。为了让PE将自己接入的VPN的路由发布给同一个AS的BGP VPNv4对等体,该PE必须与所有对等体建立IBGP连接,以便直接交互VPN路由信息。即,MP-IBGP对等体之间需要建立全连接关系。假设在一个AS内部有n台PE(包括ASBR PE),那么应该建立的MP-IBGP连接数就为n(n-1)/2。当IBGP对等体数目很多时,需要消耗大量网络资源和CPU资源。 利用BGP的路由反射RR(Route Reflector)可以解决这一问题。在一个AS内选择一台路由器作为RR(反射VPNv4路由),其它PE和ASBR PE做为客户机(Client)。RR可以是P路由、PE路由器、ASBR PE路由器或者其他路由器。为了减轻RR的负担,可以使RR只维护路由信息,不用于转发用户数据。 使用路由反射器,可以减少PE之间的MP-IBGP连接的数量,既减轻了PE的负担,也给维护和管理带来方便。 十三.VPN QoS 现有的VPN QoS解决方案 VPN用户需要的是一种端到端的QoS保证,PE-CE之间的QoS是用户自己的网络来保证的,因此对于MPLS VPN运营商来说就要实现两个PE之间对于VPN流量的QoS保证。 MPLS VPN骨干网使用MPLS转发VPN报文。MPLS具有面向连接的特点。MPLS作为一种叠加模型,可以方便地在物理的网络拓扑上建立一个虚拟的拓扑,然后将流量映射到这个拓扑上。如果针对该拓扑实施QoS,就有可能解决通过LSP的数据流的QoS问题。按照这个思路,DiffServ和IntServ模型被运用到MPLS中: 1.MPLS同DiffServ结合,产生了MPLS DiffServ技术。 MPLS DiffServ提供了基于类的QoS,具有良好的可扩展性,但缺乏有效的端到端部署的机制。 2.MPLS同IntServ的结合,产生了MPLS流量工程(Traffic Engineer)技术。 MPLS TE通过有效地管理带宽资源间接改善网络服务质量,但其带宽管理以及MPLS TE隧道都无法做到基于业务类别(例如时延)。如果EF(Expedited Forwarding)、AF(Assured Forwarding)、BE(Best-Effort)业务都承载在一个MPLS TE隧道中,各VPN竞争资源时EF和AF业务将受到严重的影响。 MPLS DiffServ-Aware TE在原来MPLS TE的基础上,增加了基于类别的资源管理,例如可根据带宽及时延的不同将接口资源划分为EF、AF、BE三类,通过信令协议携带类别建立LSP。 由于MPLS VPN网络是多个VPN用户共享的网络资源,普通的DiffServ模型和IntServ模型都不能满足用户的多样QoS需求。另外,用户期望运营商提供的VPN业务能达到物理专线,或是ATM PVC的QoS效果。 可能的VPN QoS解决方案有: 1.Diffserv方式 这种方式先在PE间建立LSP,VPN流量进入PE前预先设置优先级,或者由PE设置优先级;进入MPLS域后,根据优先级在每一跳上进行不同的处理。 这种方式实现简单,但存在两个问题: 每一跳上为某个优先级分配的资源是被多个业务流共享的,包括VPN业务流,也包括其他业务流(如Internet业务流)。多个业务流之间存在着竞争。由于IP流量具有突发性的特点,如果按照高峰流量分配带宽,存在极大的资源浪费;如果按照平均流量分配带宽,则无法避免某个业务流在拥塞时发生的丢包。 业务流经过多个链路,虽然这些链路上都为优先级分配了带宽,但可能存在不匹配的情况,有些链路带宽是足够的,而有些链路可能不够,这就无法保证端到端的QoS。 2.CE-CE专用隧道 为每一对CE-CE连接建立专用的TE隧道,这个TE隧道是有带宽保证,两端的PE-CE链路是专用的,因此保证了端到端的带宽。 这种方式的缺点是扩展性差,由于没有采用隧道复用技术,LSP的数目与CE的平方成正比,在骨干网中需要大量的LSP。MPLS TE需要有信令协议定时刷新整个隧道上的协议状态,消耗资源比较大。 上述这两种VPN QoS解决方案只能实现按优先级的QoS,无法区分具体VPN业务,或者扩展性差,无法复用。 VRP提供了两种具备VPN QoS特性的解决方案——资源隔离VPN和VPN隧道绑定,可以较好的解决这些问题,从而为企业网络互连以及虚拟业务平台等应用提供了适合的技术解决方案。 资源隔离VPN和VPN隧道绑定为解决MPLS VPN网络应用中,MPLS VPN运营商对承载的多个VPN的业务共享网络资源而提出的一种新的技术方案,可以满足每个VPN的QoS需求,从而提供VPN用户端到端的QoS服务要求。 十四.资源隔离VPN解决方案 资源隔离VPN技术采用隧道复用技术,根据VPN对带宽的需求进行调整的方法实现VPN QoS保证。 图1-9 资源隔离VPN示意图 如图1-9,PE1和PE2都与两个VPN(VPNA和VPNB)相连,CE1与CE3属于VPNA,CE2与CE4属于VPNB;VPNA和VPNB共用PE1和PE2之间的Tunnel。以带宽为例,如果Tunnel配置的带宽是10M,VPNA需要2M,VPNB需要3M,通过配置资源隔离VPN特性,VPNA和VPNB的带宽都可以得到保证。 资源隔离VPN主要解决两个问题: 1.不同业务类型进行隧道资源抢占 可以把VPN业务的分为3~4种主要业务类型,如视频和语音,关键数据业务,普通上网业务(对应于DiffServ模型中的EF、AF和BE三种业务),或其他特殊业务类型。在两个PE设备之间创建3~4条隧道。其中每一条隧道对应了VPN用户的一种业务类型,让两个PE之间类型相同的VPN业务走同一条隧道,这样可以保证几种不同类型业资源隔离务之间不会有资源抢占问题。比如FTP流量不会影响到语音的时延和抖动。 如果由于新增的VPN用户或是用户对带宽的需求增加了,可以通过动态调整一条TE隧道的带宽,或是另外创建一条新的TE隧道来接纳VPN用户的业务。 2.同种业务类型对同一个隧道的资源抢占 如两个VPN用户都有语音流量进入了同一条TE隧道,两者之间也会产生资源竞争。这可以通过CAR来解决。运营商在向VPN用户提供服务时,和用户签订相关的QoS服务协议,比如总带宽、业务类型、每种业务类型的带宽等。在接入一个VPN用户的业务时,确定这个VPN用户的业务类型和对应的带宽要求。将VPN用户的业务和某个TE隧道关联时,确保用户的流量不会超过预知的带宽;如果超过,在TE隧道的
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服