华为数通笔记-MPLS virtual private network

简介

BGP MPLS VPN是一种L3VPN,它使用BGP在服务提供商骨干网发布VPN路由,使用MPLS,在骨干网中传递VPN路由。

CE:用户边缘设备,与PE有相连的接口,感知不到VPN路由的存在,也不需要支持MPLS

PE:服务商边缘设备。与CE直接相连,负责与CE交互路由,发布VPN路由,处理VPN,对设备性能有要求

P:服务商骨干路由器。不需要维护VPN路由,只需要有MPLS转发能力

PE和P设备仅由服务提供商管理;CE设备仅由用户管理,除非用户把管理权委托给服务提供商。一台PE设备可以接入多台CE设备。一台CE设备也可以连接属于相同或不同服务提供商的多台PE设备。

MPLS VPN的好处

1.MPLS VPN易于维护和扩展,这种模型使得服务提供商和用户可以交换路由,服务提供商转发用户站点间的数据而不需要用户的参与。相比较传统的VPN,BGP/MPLS IP VPN更容易扩展和管理。新增一个站点时,只需要修改提供该站点业务的边缘节点的配置。

2.支持地址空间重叠

基本概念

Site

1.相互之间具有IP连通性的一组IP系统,不需要通过运营商就能ip连通。

2.site是根据拓扑关系划分的,而不是地理位置,尽管大多数情况,两组ip系统地理位置隔离,但是通过专线相连,不需要运营商就能相连,故属于一个site系统。

3.一个Site可以属于多个VPN,X公司位于A市的决策部网络(Site A)允许与位于B市的研发部网络(Site B)和位于C市的财务部网络(Site C)互通。但是不允许Site B与Site C互通。这种情况下,可以构建两个VPN(VPN1和VPN2),Site A和Site B属于VPN1,Site A和Site C属于VPN2。这样,Site A就属于多个VPN。

4.对于多个连接到同一运营商网络的Site,通过制定策略,可以将它们划分为不同的集合(set),只有属于相同集合的Site之间才能通过运营商网络互访,这种集合就是VPN。

地址空间重叠

VPN是一种私有网络,不同的VPN独立管理自己的地址范围,也称为地址空间(address space)。不同VPN的地址空间可能会在一定范围内重合,例如,VPN1和VPN2都使用10.110.10.0/24网段地址,这就发生了地址空间的重叠(address spaces overlapping)。

以下两种情况允许VPN使用重叠的地址空间:

两个VPN没有共同的Site

两个VPN有共同的Site,但此Site中的设备不与两个VPN中使用重叠地址空间的设备互访

VPN实例

1.不同VPN之间的隔离通过VPN实例实现,PE为每个直接相连的Site建立并维护专门的VPN实例,VPN实例中包含对应Site的VPN成员关系和路由规则。具体来说,VPN实例中的信息包括:IP路由表、标签转发表、与VPN实例绑定的接口以及VPN实例的管理信息。VPN实例的管理信息包括RD(Route Distinguisher,路由标识符)、路由过滤策略、成员接口列表等。

2.VPN是多个Site的组合。一个Site可以属于多个VPN。

每一个Site在PE上都关联一个VPN实例。VPN实例综合了它所关联的Site的VPN成员关系和路由规则。多个Site根据VPN实例的规则组合成一个VPN。

VPN实例与VPN不是一一对应的关系,VPN实例与Site之间存在一一对应的关系。

VPN实例也称为VPN路由转发表VRF(VPN Routing and Forwarding table)。PE上存在多个路由转发表,包括一个公网路由转发表,以及一个或多个VPN路由转发表。

RDVPN-IPV4地址

传统BGP无法正确处理地址空间重叠的问题,尽管本端PE可以通过不同VPN实例来区分地址空间重叠的VPN,但是在对端PE,对地址空间重叠的支持根据BGP选路规则,只会选择最优的VPN路由,而导致另一条VPN路由丢失。

PE之间使用MP-BGP(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)来发布VPN路由,并使用VPN-IPv4地址来解决上述问题。

PE接收到CE发布的路由后,加上RD值,转换为全局唯一的VPN-IPV4路由,在网络中发布。

在CE双归上要保持PE上的RD值全局唯一

当该VPN在PE上的RD值相同,则PE3从PE1、PE2收到的VPN路由是同一跳,只会优选一条路由(CE-PE1-PE3),当CE和PE1之间的链路故障,就要重建一条CE-PE2-PE3的路由,但是重建需要一定时间,会导致业务中断一段时间。如果RD不同,PE3收到的VPN路由就是两条不同的路由,就会保留这两条路由,当其中一条故障,不会导致业务中断。

VPN Target

BGP/MPLS IP VPN使用BGP扩展团体属性-VPN Target(也称为Route Target)来控制VPN路由信息的接收与发布。

每个VPN实例关联一个或多个VPN Target属性。有两类VPN Target属性:

  • Export Target:本地PE从直接相连Site学到IPv4路由后,转换为VPN-IPv4路由,并为这些路由设置Export Target属性。Export Target属性作为BGP的扩展团体属性随路由发布。
  • Import Target:PE收到其它PE发布的VPN-IPv4路由时,检查其Export Target属性。当此属性与PE上某个VPN实例的Import Target匹配时,PE就把路由加入到该VPN实例中。

当对端PE收到的RT值得 Export Target和Import Target 相同,才会接收并加入VPN路由表,RT值可以设置多个,只要其中一个匹配上,就可以接收路由。

 

私网标签分配·(用于数据数据层面)

私网标签用于数据层面,MPLS报文携带了私网标签。RT用于控制层面形成路由表项(在BGP的扩展团体属性里,用于控制层面接收或发布路由)

有了私网标签,在数据层面,访问目的地址数据包可通过PE上的保存的私网标签,和自己携带的私网标签,来选择应该发往哪一个VPN实例,在BGP/MPLS IP VPN中,PE通过MP-BGP发布私网路由给骨干网的其他相关的PE前,需要为私网路由分配MPLS标签(私网标签)并保存,同一个VPN实例的私网标签一样。当数据包在骨干网传输时,携带私网标签(在数据报文中就像mpls公网标签一样直接插在报文中)。

PE上分配私网标签的方法有如下两种:

  • 基于路由的MPLS标签分配:为VPN路由表的每一条路由分配一个标签(one label per route)。这种方式的缺点是:当路由数量比较多时,设备入标签映射表ILM(Incoming Label Map)需要维护的表项也会增多,从而提高了对设备容量的要求。
  • 基于VPN实例的MPLS标签分配:为整个VPN实例分配一个标签,该VPN实例里的所有路由都共享一个标签。使用这种分配方法的好处是节约了标签。

 

私网路由交叉

两台PE之间通过MP-BGP传播的路由是VPNv4路由。当接收到VPNv4路由,PE先进行如下处理:

  • 检查其下一跳是否可达。如果下一跳不可达,该路由被丢弃。
  • 对于RR发送过来的VPNv4路由,如果收到的路由中cluster_list包含自己的cluster_id,则丢弃这条路由。
  • 进行BGP的路由策略过滤,如果不通过,则丢弃该路由。

之后,PE把没有丢弃的路由与本地的各个VPN实例的Import Target属性匹配。VPNv4路由与本地VPN实例的Import VPN-Target进行匹配的过程称为私网路由交叉。

PE上有种特殊的路由,即来自本地CE的属于不同VPN的路由。对于这种路由,如果其下一跳直接可达或可迭代成功,PE也将其与本地的其他VPN实例的Import Target属性匹配,该过程称为本地交叉。例如:CE1所在的Site属于VPN1,CE2所在的Site属于VPN2,且CE1和CE2同时接入PE1。当PE1收到来自CE1的VPN1的路由时,也会与VPN2对应的VPN实例的Import Target属性匹配。

为了能够将报文正确转发出去,BGP设备必须先找到一个直接可达的地址,通过这个地址到达路由表中指示的下一跳。在上述过程中,去往直接可达地址的路由被称为依赖路由,BGP路由依赖于这些路由指导报文转发。根据下一跳地址找到依赖路由的过程就是路由迭代。

公网隧道迭代

需要将私网路由传到公网得另一端,需要一条公网隧道承载这个私网流量,因此私网路由交叉完成后,需要根据目的IPV4前缀进行路由迭代,查找合适得隧道(本地交叉的路由除外);只有隧道迭代成功,该路由才被放入对应的VPN实例路由表。将路由迭代到相应的隧道的过程叫做隧道迭代。迭代成功后,保留Tunnel id,供后续转发使用。

 

私网路由的选择规则

对于到同一目的地址的多条路由,如果不进行路由的负载分担,按如下规则选择其中的一条:

1.同时存在直接从CE收到的路由和交叉成功后的同一目的地址,优选从CE收到的

2.同时存在本地交叉路由和从其他PE接收并交叉成功后的同一目的地址路由,则优选本地交叉的路由

对于到同一目的地址的多条路由,如果进行路由的负载分担,则:

1.优先选择从本地CE收到的路由。只有一条从本地CE收到的路由而有多条交叉路由的情况下,也只选择从本地CE收到的路由。

2.只在从本地CE收到的路由之间分担或只在交叉路由之间分担,不会在本地CE收到的路由和交叉路由之间分担。

3.负载分担的AS_PATH属性必须完全相同。

BGP/MPLS IP VPN的路由发布

1.本地CE到入口PE的路由信息交换

2.入口PE到出口PE的路由交换

。PE从CE学到路由,放到VPN实例。同时增加RD,形成VPN-ipv4路由

。更改下一跳属性为自己,通常是自己的Loop back地址,无需手工配置

。加上私网标签

。加上RT属性

。入口PE通过MP-BGP的update报文把VPN-ipv4路由发布给出口PE,Update报文中携带Export VPN Target属性及MPLS标签。

。出口PE收到VPN-IPV4路由进行路由交叉,路由优选,隧道迭代。加入到本地VRF中私网标签保留

3.出口PE和远端CE路由交换

MPLS VPN工作流程

1.MPLS 路由交互过程(控制层面·)

2.数据层面

 

BGP/MPLS VPN基本组网

Intranet VPN

最简单的情况下,一个VPN中的所有用户形成闭合用户群,相互之间能够进行流量转发,VPN中的用户不能与任何本VPN以外的用户通信。这种组网方式的VPN叫做Intranet VPN,其站点通常是属于同一个组织。

Extranet VPN

如果一个VPN用户希望访问其他VPN中的某些站点,可以使用Extranet组网方案。对于这种组网,如果某个VPN需要访问共享站点,则该VPN的Export Target必须包含在共享站点的VPN实例的Import Target中,而其Import Target必须包含在共享站点VPN实例的Export Target中。

Hub and Spoke

如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可以使用Hub and Spoke组网方案。其中,中心访问控制设备所在站点称为Hub站点,其他用户站点称为Spoke站点。Hub站点侧接入VPN骨干网的设备叫Hub-CE;Spoke站点侧接入VPN骨干网的设备叫Spoke-CE。

Super Backbone

在MPLS/VPN中骨干网成为Super Backbone,PE将执行ABR的功能。过来的一类/二类/三类LSA都会转成三类LSA,5类和7类还是不变。

OSPF RT值:

0.0.0.0

:1

:0

区域号                                      LSA类型                                         外部LSA类型

产生条件:

1.在MPLS VPN中两端两端的PE-CE之间的路由协议为OSPF

2.两端的VPN实例运行的OSPF Domain ID一致,默认为NULL。可在VPN实例下的OSPF视图下修改。如果不一致则执行ASBR(产生5类,7类LSA)引入功能

3.如果OSPF实例没有明确域标识符,则认为它的标识符为NULL。

Domain ID与本地是否相同

Route Type

PE生成的OSPF LSA类型

1、2、3

3

5、7

5、7

1、2、3、5、7

5、7

MPLS VPN防环

AS号替换

在MPLS VPN场景中,若PE与CE之间运行EBGP交互路由信息,则可能会出现两个站点的AS号相同的情况。

若CE1通过EBGP向PE1发送一条私网路由,并经过PE2发送到CE2,则CE2会由于AS号重复丢弃这条路由,导致属于同一VPN的Site 1和Site 2之间无法连通。

可以在PE上执行peer substitute-as命令使能AS号替换功能,即PE用本地AS号替换收到的私网路由中CE所在VPN站点的AS号,这样对端CE就不会因为AS号重复而丢弃路由了。

SoO

在CE多归属场景,若使能了BGP的AS号替换功能,可能会引起路由环路,需要SoO(Site of Origin)特性来避免环路。

[PE1] bgp 123

[PE1-bgp] ipv4-family vpn-instance vpn1

[PE1-bgp-vpn1] peer 192.168.100.1 soo 200:1

[PE1-bgp-vpn1] peer 192.168.200.1 soo 200:1

配置了BGP邻居的SoO后:

接收到该邻居的BGP路由时,会在路径属性中携带该SoO属性并通告给其他BGP邻居。

向该邻居通告BGP路由时,会检查路由中的SoO属性是否与配置的SoO值相同,若相同则不通告,避免引起环路。

Type3路由防环 - DN

PE在生成Type3、Type5或Type7 LSA发布给CE时,都将DN位置位(值为1),其他类型LSA的DN位不置位(值为0)。

PE的OSPF多实例进程在进行计算时,忽略DN置位的LSA。这样就防止了PE又从CE学到发出的LSA而引起的环路。

缺省情况下,OSPF产生的LSA的DN位设置为1。可通过命令dn-bit-set disable来禁止设置OSPF LSA的DN位。

Type5/7路由防环 -VPN route tag

可以使用VPN Route Tag(VPN路由标记)来防止此5类或7类路由环路。PE在根据收到的BGP的私网路由生成5/7类LSA时,携带VPN路由标记。当PE发现LSA的VPN路由标记和本地配置的一样,就会忽略这条LSA,因此可以避免上述环路。

VPN路由标记(VPN Route Tag),PE根据收到的BGP的私网路由产生的5/7类LSA中必须包含这个参数。

VPN路由标记不在BGP的扩展团体属性中传递,只是本地概念,只在收到BGP路由并且产生OSPF LSAPE设备上有意义。

缺省情况下,VPN的路由标记是根据BGP的AS号计算得到的。如果没有配置BGP,则默认值为0。

可以通过指令route-tag配置VPN的路由标记。

<Huawei> system-view

[Huawei] ip vpn-instance huawei

[Huawei-vpn-instance-huawei] route-distinguisher 100:1

[Huawei-vpn-instance-huawei-af-ipv4] quit

[Huawei-vpn-instance-huawei] quit

[Huawei] ospf 100 vpn-instance huawei

[Huawei-ospf-100] route-tag100

其他方式

像解决双点双向那样打tag

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值