BGPMPLSVPN白皮书.docx
- 文档编号:27751901
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:48
- 大小:261.03KB
BGPMPLSVPN白皮书.docx
《BGPMPLSVPN白皮书.docx》由会员分享,可在线阅读,更多相关《BGPMPLSVPN白皮书.docx(48页珍藏版)》请在冰豆网上搜索。
BGPMPLSVPN白皮书
白皮书
RFC2547bis:
BGP/MPLSVPN基础
BGP/MPLSVPN概况
RFC2547bis定义了允许服务提供商使用其IP骨干网为用户提供VPN服务的一种机制。
RFC2547bis也被称为BGP/MPLSVPN,因为BGP被用来在提供商骨干网中发布VPN路由信息,而MPLS被用来将VPN业务从一个VPN站点转发至另一个站点。
这种方式的主要目的如下:
▪对于用户来说,这种服务非常简单,即便他们在IP路由方面缺乏经验。
▪使服务具有非常良好的可扩展性和灵活性、适于大规模实施。
▪允许通过策略的使用使VPN能够通过服务提供商或服务提供商与用户一同进行实施。
▪允许提供商提供重要的增值服务以获取用户的忠诚度
网络构成
对于RFC2547bis,一个VPN是一组策略的集合,这些策略控制着一组站点间的连接。
用户站点通过一个或多个端口连接到服务提供商网络,服务提供商将每个端口与一个VPN路由表联合在一起。
在RFC2547bis术语中,VPN路由表被称为VPN路由及转发表(VRF)。
图1举例说明了BGP/MPLSVPN的基本组成模块。
图1:
RFC2547bis网络构成
用户边缘设备
用户边缘(CE)设备通过连接至一个或多个提供商边缘(PE)路由器的数据链路为用户提供对服务提供商的接入。
CE设备可以是一台主机或一台二层交换机,通常情况下,CE设备是一台IP路由器,它与直连的PE路由器建立邻接关系。
建立邻接关系后,CE路由器将站点的本地路由广播给PE路由器,并从该PE路由器学习到远端VPN路由。
提供商边缘路由器
PE路由器使用静态路由,RIPv2,OSPF,或EBGP与CE路由器交换路由信息。
对于PE路由器来说,它只需要维护与其直接相连的那些VPN的VPN路由信息。
这种设计增强了RFC2547bis模型的可扩展性,因为它避免了要求PE路由器维护服务提供商网络中所有VPN路由信息。
每个PE路由器为其直连的站点维持一个VRF。
每个用户链接(如帧中继PVC,ATMPVC,或VLAN)被映射至一个特定的VRF。
由此可见,与每个VRF相关联的是PE路由器的一个端口,而不是一个站点。
这里需要注意的是,一个PE路由器上的多个端口可与一个VRF相联系。
PE路由器具有维护多个转发表的能力以支持每个VPN间路由信息的隔离。
在从CE路由器学习到本地VPN路由后,PE路由器使用IBGP与其它PE路由器交换路由信息。
PE路由器可与路由反射器维持IBGP会话期,将其作为维护IBPG全网状会话期的可选方案。
实施多个路由反射器增强了RFC2547bis模型的可扩展性,因为其避免了任何单个网络成分维护所有VPN路由的需求。
最后,当使用MPLS对VPN业务进行转发以穿过提供商骨干网时,入口PE路由器的作用相当于入口LSR,而出口PE路由器的作用相当于出口LSR。
提供商路由器
提供商(P)路由器是提供商网络中不连接任何CE设备的路由器。
当在PE路由器间对VPN数据业务进行转发时,P路由器的作用相当于传输LSR。
由于数据在MPLS骨干网中被转发时使用了两层标记堆栈,P路由器只需维护到达提供商PE路由器的路由;它们并不需要为每个用户站点维护特定的VPN路由信息。
运行模式
在BGP/MPLSVPN中具有两个基本的业务流。
▪用于VPN路由发布及标记交换路径(LSP)建立的控制流。
▪用于转发用户数据业务的数据流
网络拓扑举例
图2提供了一个网络拓扑的例子。
这里,一个服务提供商为不同的企业用户提供BGP/MPLSVPN服务。
在这个网络中具有2个PE设备,它们连接了四个不同的用户站点。
图2:
BGP/MPLSVPN网络拓扑举例
▪任何站点1中的主机能够与任何站点2中的主机进行通信。
▪任何站点2中的主机能够与任何站点1中的主机进行通信。
▪任何站点3中的主机能够与任何站点4中的主机进行通信。
▪任何站点4中的主机能够与任何站点3中的主机进行通信。
控制流
在BGP/MPLSVPN中,控制流包括两个子流。
▪第一个控制子流负责在提供商骨干网边缘的CE与PE路由器间的路由信息交换及PE路由器间穿过提供商骨干网的路由信息交换。
▪第二个控制子流负责PE路由器间穿过提供商骨干网建立LSP。
路由信息交换
在这个例子中,PE1被配置成通过与红色VRF相关的接口或子接口从CE1学习路由。
当CE1将前缀10.1/16广播给PE1时,PE1将在红色VRF中安装一条至10.1/16的本地路由。
PE1使用IBGP将到达10.1/16的路由广播给PE2。
在广播该条路由前,PE1选择一个MPLS标记(在这个例子中,222)连同这条路由一起广播,同时将自己的回环地址作为该条路由的BGP下一跳。
RFC2547bis通过使用路由区分器(RD)及VPN-IPv4地址组对地址空间复用(在RFC1918中定义的私有地址)进行支持。
RFC2547bis通过使用基于BGP扩展共同体属性(路由目标)的路由过滤对PE路由器间的路由信息发布进行限制。
当PE2接收到PE1的路由广播时,它将基于在该条路由中承载的BGP扩展共同体属性执行路由过滤,决定其是否将到达10.1/16的这条路由安装到红色VRF中。
如果PE2决定安装该条路由到红色VRF中,它将向CE2广播此条去往10.1/16的路由。
LSP的建立
为了使用MPLS在提供商网络中对VPN业务进行转发,必须在学习到某条路由的PE路由器及广播该条路由的PE路由器间建立LSP(图3)。
图3:
站点1与站点2间的LSP
可以使用标记分配协议(LDP)或资源预留协议(RSVP)在服务提供商网络中建立并维护LSP。
▪如果提供商希望在两个PE路由器间建立最努力LSP,其可使用LDP。
这种情况下,LSP将依从最努力业务的相同路由。
▪如果提供商希望为LSP分配带宽或使用流量工程来为LSP选择明确路径,其可使用RSVP。
基于RSVP的LSP支持服务质量(QoS)保证和/或特定的流量工程对象。
为确保多厂商的互操作性,要求所有PE及P路由器至少支持LDP。
▪如果提供商选择使用LDP,将在骨干网中建立一个最努力LSP的全网状连接以支持PE至PE的连通性。
▪如果提供商选择使用RSVP,基于RSVP的LSP将比基于LDP的LSP具有更高的优先级。
当在一对PE路由器间既具有基于LDP的LSP又具有一条基于RSVP的LSP时,入口标记交换路由器(LSR)将选择基于RSVP的LSP,而不是基于LDP的LSP。
这种模式在骨干网中支持基于RSVP的LSP的递增配置。
这里需要注意的是,可以在PE路由器间建立一条LSP或多条并行的LSP(可能具有不同的QoS能力)。
同时,路由反射器可简单的作为将来自入口PE路由器的路由器反射给出口PE路由器的服务器。
如果提供商使用路由反射,仍只要求在PE路由器间建立LSP,因为路由反射器不需要成为PE路由器间传输路径的必要部分。
数据流
图4描述了穿过服务提供商骨干网从一个用户站点到另一个用户站点的VPN数据业务流。
假设站点2的主机10.2.3.4希望与站点1的服务器10.1.3.8进行通信。
图4:
从站点1至站点2间的数据流
主机10.2.3.4将所有去往服务器10.1.3.8的数据转发到它的缺省网关。
当一个数据包到达CE2时,它执行最长匹配路由查询,并将IPv4数据包转发给PE2。
PE2接收到该数据包,在红色VRF中执行路由查询,并获得如下信息。
▪由PE1连同该路由一起广播的MPLS标记(标记=222)
▪该路由的BGP下一跳(PE1的回环地址)
▪从PE2至PE1的LSP输出子接口
▪从PE2至PE1的LSP的初始MPLS标记
用户业务通过使用具有包含两个标记的标记堆栈的MPLS从PE2向PE1被转发。
对于这个数据流,PE2为LSP的入口LSR,而PE1为此LSP的出口LSR。
在传送一个数据包前,PE2将标记222压入标记堆栈,作为底部(或内部)标记。
这个标记原来在PE2接收到PE1的到达10.1/16的路由IBGP广播时被安装在红色VRF中。
然后,PE2将与到达PE1的基于LDP或RSVP的LSP(路由的BPG下一跳)相关的标记压入标记堆栈,将其作为顶部(或外部)标记。
在建立标记堆栈后,PE2将此MPLS数据包通过输出接口转发给沿从PE2至PE1的LSP上的第一个P路由器。
P路由器使用顶部标记在提供商骨干网的核心对数据包进行交换。
到达PE1的倒数第二跳路由器时将顶部标记弹出(暴露出底部或内部标记)并将数据包转发给PE1。
当PE1接收到数据包时,其弹出标记并建立原来的IPv4数据包。
PE1使用底部标记(222)确定到达10.1/16下一跳的直连CE。
最后,PE1将原来的IPv4数据包转发给CE1,CE1将把数据包转发给站点1内的服务器10.1.3.8。
BGP/MPLSVPN的优势
BGP/MPLSVPN的主要目的是为用户简化网络运行,同时使服务提供商能够提供可扩展的、可产生利润的增值业务。
BGP/MPLSVPN具有许多优势,总结如下。
▪对每个VPN用户的地址使用计划没有任何约束。
用户即可以使用全局唯一地址,也可以使用私有IP地址空间。
从服务提供商的角度来说,不同的用户可具有交迭的地址空间。
▪每个用户站点处的CE路由器并不直接与其它CE路由器交换路由信息。
因为站点间的路由问题由服务提供商负责,因此,用户不需处理站点间的路由问题。
▪VPN用户不需管理骨干网或虚拟骨干网。
因此,用户不需对PE或P路由器的接入进行管理。
▪提供商不需要为每个用户VPN管理一个单独的骨干网或虚拟骨干网。
因此,提供商不需对CE路由器的接入进行管理。
▪决定一个特定站点是否为一个特定VPN成员的策略是用户的策略。
RFC2547bisVPN的管理模型允许用户策略由提供商自己或提供商与用户一起进行实施。
▪VPN可跨越多个服务提供商。
虽然这种BGP/MPLSVPN的能力是重要的,但这篇白皮书并不讨论提供商间的VPN解决方案。
▪不使用加密技术时,安全性与现有二层(ATM或帧中继)骨干网所支持的程度相当。
▪提供商可利用相同的基础结构同时提供VPN及Internet连接服务。
▪通过使用MPLS报头内的经验位或使用LSP流量工程(通过RSVP进行信令),可为用户VPN业务提供灵活的和可扩展的QoS。
▪RFC2547bis模型与链路层(二层)相独立。
挑战及解决方案
RFC2547bis采用了多种机制来增强可扩展性并解决特定的VPN运营问题。
挑战包括如下:
▪支持交叠的用户地址空间
▪约束网络连通性
▪维护更新的VPN路由信息
▪节约骨干网带宽及PE路由器数据包处理资源
交迭的用户地址空间
VPN用户经常管理自己的网络并使用RFC1918中的私有地址空间。
如果用户不使用全局唯一IP地址,可在不同的VPN中使用相同的32位IPv4地址以识别不同的系统。
但是,由于BGP假设其承载的每个IPv4地址都是全局唯一的,因此,可能在路由层面产生一定的难度。
为了解决这个问题,BGP/MPLSVPN支持一种机制,可通过使用VPN-IPv4地址族及实施多协议BGP扩展(MP-BGP)将非唯一的IP地址转化成为全局唯一地址。
VPN-IPv4地址族
交叠地址空间所带来一个挑战是,如果传统BGP发现去往相同的IPv4地址前缀(前缀被分配给不同VPN的系统)的两条不同路由时,BGP将认为这些前缀是相同的而只安装一条路由。
结果使另一个系统不可达。
为了消除这个问题,需要一种机制能够使BGP对这些前缀进行区分,可以使其能够为该地址安装两个完全不同的路由,每个VPN一条。
RFC2547bis通过定义VPN-IPv4地址族对这一能力进行支持。
VPN-IPv4地址为12字节长,由8字节的RD及随后的4字节IPv4地址前缀组成。
图5说明了VPN-IPv4地址的结构。
图5:
路由区分器及IPv4地址的编码
8字节长的RD由2字节类型区域及6字节数值区域组成。
类型区域决定数值区域内两个子区域(管理器和分配数值)的长度,同时还确定管理器区域内的语义。
目前,类型区域定义了两个值:
0和1。
▪对于类型0,管理器子区域包括2个字节,而分配数值子区域包括4个字节。
管理器子区域使用自治域号码(ASN)。
强烈不建议使用私有ASN。
分配数值子区域为来自由服务提供商管理的数值空间,该数值空间用于提供VPN服务并与分配使用的ASN相关。
▪对于类型1,管理器子区域包括4个字节,而分配数值子区域包括2个字节。
管理器子区域使用一个IPv4地址。
强烈不建议使用时有IP地址空间。
分配数值子区域为来自由服务提供商管理的数值空间,该数值空间用于提供VPN服务并与分配使用的IPv4地址相关。
对于类型1的RD配置选项可以使用产生路由的PE路由器的回环地址作为4字节的管理器子区域,然后选择一个PE路由器本地数值作为2字节分配数值子区域。
当在PE路由器上对RD进行配置时,RFC2547bis并不要求一个VPN内的所有路由使用相同的RD,而事实上,一个VPN内的每个VRF可以使用自己的RD。
但是,服务提供商必须确保每个RD是全局唯一的。
由于这个原因,在定义RD时,强烈不建议使用私有ASN空间或私有IP地址空间。
使用公共ASN空间或公共IP地址空间确保了每个RD全局唯一。
全局唯一RD提供了一种机制,使每个服务提供商在不与其他服务提供商分配的RD发生冲突的前提下,能够管理自己的地址空间并建立全局唯一的VPN-IPv4地址。
使用全局唯一的RD支持以下功能。
▪为一个通用IPv4前缀创建不同的路由。
▪为同一系统创建多条全局唯一的路由
▪通过使用策略来决定哪个数据包应该使用哪条路由
最后,一些观察结果可以帮助避免在理解如何在BGP/MPLSVPN中使用VPN-IPv4地址中产生混淆。
▪VPN-IPv4地址仅在服务提供商网络中被使用。
▪VPN用户并不意识到对VPN-IPv4地址的使用。
▪VPN-IPv4地址仅在提供商骨干网中运行的路由协议中承载。
▪VPN-IPv4地址并不在VPN数据业务的报头内承载。
多协议BGP扩展
使用传统BGP4支持BGP/MPLSVPN的另一个局限是原来设计承载的路由信息只可用于支持IPv4地址族。
意识到这一局限,IETF正在对BGP4的多协议扩展进行标准化。
这些扩展最初在RFC2283(1998年2月)中被定义,后来由RFC2858(2000年6月)更新。
这些扩展允许BGP4为多种网络层协议(IPv6,IPX,VPN-IPv4等)承载路由信息。
因此,为了实施BGP/MPLSVPN并支持VPN-IPv4地址发布,要求PE路由器支持MP-BGP扩展,而并不仅仅是传统BGP。
在交换VPN-IPv4路由信息之前,RFC2547bis要求对BGP能力进行协调以确保BGP对等体两端都能够对VPN-IPv4地址族进行处理。
MP-BPG扩展向后兼容,因此支持这些扩展的路由器仍可以与不支持这些扩展而只使用传统BGP4(但是,传统BGP4不支持RFC2547bisVPN)的路由器进行互操作。
约束网络连通性
假设一个路由表不包含一条缺省路由,IP路由的一个基本假设是,如果去往某一特定网络的路由未被安装在路由器的转发表中,在那台路由器上,该网络不可达。
通过对路由信息流进行约束,服务提供商可以有效地控制用户的VPN数据业务流。
BGP/MPLSVPN模型使用两种机制对路由信息流进行约束。
▪多转发表
▪BGP扩展共同体属性
多个转发表
每个PE路由器维护一个或多个与站点相关的转发表,即VRF。
当对PE路由器进行配置时,每个VRF与PE路由器上直接与服务提供商用户直连的一个或多个端口(接口/子接口)相关联。
如果某一特定站点包含的主机是多个VPN的成员,则与该用户站点相关联的VRF包含将此主机作为成员的所有VPN的路由。
当从某一直连CE路由器接收到出境用户数据包时,PE路由器在与该站点相关的VRF内执行路由查询。
特定的VRF通过数据包从哪个子接口被接收来决定。
对于多转发表的支持将简化PE路由器为每个VPN间路由信息提供隔离的支持。
图6说明了PE1如何对红色VRF进行广播。
▪PE1从CE1学习到站点1的红色VPN路由并将它们安装在红色VRF中。
▪远端的路由通过MP-IBGP从其它具有包含红色VPN成员的站点直连的PE路由器学习到。
PE1通过CE2学习到站点2的红色VPN的路由应将它们安装到红色VRF中。
将远端路由输入到红色VRF通过使用BGP扩展共同体的路由目标属性进行管理。
▪站点4的本地蓝色VPN路由机站点3的远端蓝色VPN路由与红色VPN不相关,不被输入到红色VRF中。
图6:
PE路由器广播VPN路由及转发表
使PE路由器支持多个转发表具有许多优势。
▪不同的VPN站点可使用相同的PE路由器进行支持,使用交迭的地址空间。
▪通过策略(路由器子接口与VRF间的映射)来为数据业务选择特定的转发表,而并不依赖于用户数据包的内容。
▪多转发表防止不具有相同VPN站点间的通信。
▪由于PE路由器不需要维护包括提供商网络中支持的所有VPN的一个专有VRF,从而可扩展性得到增强。
每个PE路由器只需为每个与其直连的站点维护VRF。
▪最后,骨干网可对到达同一系统的多条不同路由进行支持,而每个数据包所选用的路由通过该数据包从哪一站点进入提供商骨干网来决定。
BGP扩展共同体属性
通过对BGP扩展共同体属性的使用来对VPN路由信息的发布进行约束。
扩展共同体属性作为路由属性在BGP消息中承载。
它们定义该路由属于某一特定路由的集合,所有路由都将由路由策略进行相同的处理。
每个BGP扩展共同体必须是全局唯一的(包含一个公共的IP地址或ASN)而且只能被一个VPN使用。
但是,一个用户VPN可使用多个全局唯一的BGP扩展共同体以帮助控制路由信息的发布。
BGP/MPLSVPN使用32位的BGP扩展共同体属性而不是传统的16位BGP共同体属性。
通过使用32位的扩展共同体属性增强了可扩展性,因为一个服务提供商可以支持最多232个共同体(而不是216)。
因为每个共同体属性包含服务提供商全局唯一的自治域(AS)号码,服务提供商在控制本地分配的同时,还可继续维持全局的唯一性。
RFC2547bis可支持多达3种不同类型的BGP扩展共同体属性。
▪路由目标属性定义了PE路由器发布路由的一组站点(VRF)的集合。
PE路由器使用这一属性来对输入远端路由到其VRF进行约束。
▪起源VPN属性定义一组站点的集合并建立路由来自该集合中某一站点的关联。
▪起源站点属性定义PE路由器从某一特定站点学习到一条路由。
其被编码成为路由起源扩展属性,可用于防止路由循环。
运行模式
在将本地路由发布给其它PE路由器之前,入口PE路由器将为从直连站点学习到的每条路由附加一个路由目标属性。
附加到路由上的路由目标的值基于在输出目标策略中配置的VRF的值。
这种方法在在PE路由器为一条路由分配一个路由目标属性时具有极大的灵活性。
▪入口PE路由器可通过配置为从某一特定站点学习到的所有路由分配一个路由目标属性。
▪入口PE路由器可通过配置为从某一站点学习到的一组路由分配一个路由目标属性,而对从该站点学习到的零一组路由分配另一个路由目标属性。
▪如果CE路由器与PE路由器间通过EBGP进行通信,CE路由器可为每条路由分配一个或多个路由目标。
这种方法将VPN策略的控制从服务提供商转移到用户。
在将由其它PE路由器发布的远端路由安装到本地VRF前,出口PE路由器上的每个VRF都将配置一个输入目标策略。
PE路由器只有在VPN-IPv4路由中承载的路由目标属性与某一PE路由器上的VRF输入目标相匹配时,才会将该路由安装到某一VRF中。
这种方法可以使服务提供商使用单一机制对VPN用户的大范围站点间连通性策略需求进行支持。
通过对输出目标及输出目标策略仔细进行配置,服务提供商可创建不同类型的VPN拓扑。
实施VPN拓扑的机制可完全由服务提供商进行限制,这样,VPN用户便不需了解这一过程。
例子1:
全网状连接VPN拓扑
假设红色公司希望其BGP/MPLSVPN服务提供商为其建立一个支持全网状连通性(图7)的VPN。
每个红色公司的站点都可以直接发送业务给其他红色公司的站点,但是从同一服务提供商获得BGP/MPLSVPN服务的蓝色公司不能够从红色公司接收或发送业务。
图7:
全网状VPN连接
每个红色公司的站点与其PE路由器上的红色VRF相关联。
为每个红色VRF配置一个全局唯一的路由目标(红色),将其作为输入目标和输出目标。
该路由目标(红色)将不再分配给其它任何VRF作为输入或输出目标。
结果是在红色公司的站点间建立了全网状连接。
例子2:
Hub-and-SpokeVPN拓扑
假设红色共色希望其BGP/MPLSVPN服务提供商为其建立一个支持hub-and-spoke站点连通性的VPN(图8)。
红色公司站点之间的连通性可通过如下策略进行描述。
▪站点1可直接与站点5进行通信,但不能直接与站点2直接进行通信。
如果站点1希望同站点2进行通信,它必须使用通过站点5的路径。
▪站点2可直接与站点5进行通信,但不能直接与站点1直接进行通信。
如果站点2希望同站点1进行通信,它必须使用通过站点5的路径。
▪站点5可以与站点1及站点2直接进行通信。
当然,私密性要求红色公司站点不能够与蓝色公司站点间相互发送或接收业务。
图8:
Hub-and-SpokeVPN连接
hub-and-spoke拓扑通过使用两个全局唯一的路由目标来建立:
hub及spoke。
▪Hub站点的VRF的配置包括输出目标=hub及输入目标=spoke。
Hub站点的VRF在发布其所有VRF中的路由时将附加一个hub属性,使路由能够被spoke站点输入。
Hub站点处的VRF同时输入所有具有spoke属性的远端路由。
▪每个spoke站点的VRF的配置包括输出目标=spoke及输入目标=hub。
每个spoke站点的VRF在发布其路由时,都将附加一个spoke属性,使路由能够被hub站点输入,而被其它spoke站点丢弃。
Spoke站点的VRF只输入具有hub属性的路由,使其VRF仅通过hub站点对其路由进行广播。
维护更新的VPN路由信息
当由于创建一个新的VRF或为一个已有VRF增加一个或多个新的输入目标策略时,PE路由器的配置将发生改变,PE路由器可能需要获得其以前丢弃的VPN-IPv4路由。
使用传统BGP4提供更新的路由信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BGPMPLSVPN 白皮书
![提示](https://static.bdocx.com/images/bang_tan.gif)