MPLS隧道——PE与CE之间运行不同路由协议的情况分析

目录

PE和CE之间运行OSPF路由协议

PE和CE之间的区域配置

OSPF的Dmian ID(还原属性)

OSPF的Sham Link属性

OSPF的DN置位与VPN Router Tag

PE和CE之间运行BGP路由协议

AS号替换功能

BGP的SoO属性


PE和CE之间可以不同部署不同的路由协议,部署不同的路由协议会存在不同的问题

PE和CE之间运行OSPF路由协议

在PE上将OSPF实例路由引入到MP-BGP;并将MP-BGP的Vpnv4路由引入到OSPF实例

PE和CE之间的区域配置

当PE和CE之间运行OSPF协议时,我们认为MPLS骨干网络为OSPF超级骨干区域(也就是area 0);此时我们在PE和CE之间运行的OSPF区域时就需要注意CE站点内的OSPF区域、CE与PE的OSPF区域、PE之间OSPF区域 这三个区域之间的关系

在设计时,我们需要保证OSPF的骨干区域连续,非骨干区域都与骨干区域想连接;总共有以下几种设计方案

1、MPLS骨干网为area0,PE和CE之间为area0,CE站点内为area0;此时area0连续,没有问题

2、MPLS骨干网为area0,PE和CE之间为area1(非area0),CE站点内为area1(非area 0);此时也不存在问题

3、MPLS骨干网为area0,PE和CE之间为area1(非area0),CE站点内为area0;此时area0不连续,需要通过在CE和PE之间配置虚连接Virtual-Link实现area0连续

4、MPLS骨干网为area0,PE和CE之间为area1(非area0),CE站点内为area2(非area 0);此时非骨干区域2没有与骨干区域相连,需要通过在CE和PE之间配置虚连接Virtual-Link实现

PE通过在BGP中扩展了三个公认必遵属性来标识OSPF协议

Domain ID: 用来标识始发PE路由器对应VPN 实例的OSPF进程ID

Route Type:用来标识始发的OSPF路由的Area和LSA类型

Router ID:   用来标识始发PE路由器对应VPN 实例的OSPF Router ID

OSPF的Dmian ID(还原属性)

应用场景

当两边的PE和CE之间都运行OSPF协议时,此属性才会体现出其作用(默认此属性开启,会携带)

基本概念

在PE上将实例OSPF路由引入到BGP时,PE会为该BGP路由增加Domain ID属性,此属性作为BGP的扩展属性传播(缺省情况下Domain ID为0)

具体作用

当对端PE收到BGP路由后,根据报文携带的Doamin ID与Route Type(即LSA类型)属性,会将不同类型的Ospf Lsa类型发布到Vpn实例的OSPF进程中

通过Domain ID,可以更方便的进行LSA属性的过滤,也可以通过Doamin ID值针对不同站点的路由做优先计算(3类优于5类)

举例:

当某网段在本端PE实例OSPF LSDB中为1/2/3类LSA时,将此OSPF实例路由引入到BGP中并传递给对端PE(在BGP中携带本端的Domain ID)

对端收到后将BGP路由引入到OSPF实例中,此时比较引入路由携带的Domain ID和本地Domain是否相同;如果Doamin ID相同,则本地生成关于此网段的3类LSA,如果Domain ID不同,则生成关于此网段的5类LSA

具体实例

此时PE1优先计算去往CE2的路由,再计算去往CE3的路由

配置命令

华为设备配置

在OSPF视图下更改Doamin ID(缺省为0)

domain-id 1   更改Domain ID为1

OSPF的Sham Link属性

应用场景

当两边的PE和CE之间都运行OSPF协议,并且在两端的CE之间做了一条备份(后门)链路时,此链路通过OSPF传递路由时,需要配置此属性(默认此属性不开启,不携带)

当CE1和CE2使用OSPF路由协议传递路由信息时,如果不使用此属性存在的问题

当CE1和CE2通过区域0建立OSPF,宣告路由时,从CE1/CE2学到的路由类型为1/2类LSA,优于从PE1/PE2学到的3/5类LSA

这就导致站点之间的数据传输一直选择后门链路,与用户期望不符

Sham Link如何解决以上问题

两台PE之间建立一条虚拟的区域内链路(伪连接),当LSA在此链路中泛洪时,LSA的类型不会改变(即不会因为Domain ID将其转换为3类/5类LSA)

此时从备用链路和从骨干网学习到的路由类型都类似,开始比路径开销(此时通过修改开销来实现选路)

这时只需要把备用链路的开销调大,就可以保证在骨干链路没有出现故障前,数据都走骨干链路

配置Sham-link需要满足的三个条件

  1. 建立虚拟的区域内链路的地址必须是32位的Loopback地址
  2. Loopback地址必须绑定到Vpn实例,并在BGP VPN实例下宣告
  3. 该Loopback地址只能被宣告进所绑定的Bgp Vpn实例下,不能被其它宣告

让两端有去往源目IP的路由(私网互通)

配置命令(PE1和PE2都配置)

华为设备配置

配置32位环回口地址并绑定VPN实例

interface loopback 1

 ip binding vpn-instance [name]

 iP address 1.1.1.1 32

在BGP的VPN实例视图下宣告

network 1.1.1.1 32

OSPF区域视图下配置Sham-link的源目地址

sham-link  [source-ip-address]  [destration-ip-address]

注意事项

Sham-link建立的链路,其会参与SPF的计算,不过LSA不会周期性的泛洪

OSPF的DN置位与VPN Router Tag

通过DN位防止Type3路由环路,通过VPN Router Tag来防止Type5/7路由环路

假如没有DN置位,Type3路由环路场景

从PE1的角度来看

CE2将1.1.1.1路由以OSPF邻居关系发给PE3,PE3以MP-BGP邻居发给PE1和PE2

PE1将1.1.1.1路由引入到OSPF实例,发给CE1,CE1把1.1.1.1路由发送给PE2

PE2此时从CE1(OSPF)学到1.1.1.1,也从PE3(MP-BGP)学到1.1.1.1,PE2选择OSPF路由,PE2将此OSPF路由再发送给PE3

PE3此时从PE2(MP-BGP)学到1.1.1.1,从CE2(OSPF)学到1.1.1.1 ,会有两种情况

PE3撤销从PE2上学习到的1.1.1.1这条路由,路由环路产生

当PE3上的MP-BGP路由优先级高于OSPF,形成路由震荡

DN位是如何防止Type3路由环路的

DN比特位于LSA3/5/7中的Option字段中,用于表明路由是由PE向CE方向传递的

当一条路由是由PE发布给CE的,就会将此DN比特置位(由实例发出来的OSPF路由会DN置位,当实例OSPF收到此DN置位的路由后,不会再进行计算)

当同一用户站点的其它PE在收到带有DN置位的LSA3时,不会进行SPF路由计算;防止了路由环路和路由震荡

DN置位补充
实例ospf会检查dn位,如果此路由dn置位 在此实例ospf下不对此路由进行计算   
非实例ospf不检查db置位,即使dn置位了,在非实例ospf也会计算此路由

dn是否置位于domain id无关,doamin id只是用来判断还原成3类LSA还是5/7类LSA

为什么要使用VPN Router Tag(VPN路由标记)来防止Type5/7路由环路

3类LSA跨区域的时候,DN位会清空,对于多区域场景,DN置位无法防环,此时通过VPN Router Tag来防止环路

VPN Router Tag如何防止Type5/7路由环路

PE-CE运行OSPF协议时,PE上对应VPN实例的OSPF默认都有个路由标记,称为VPN路由标记

在PE上将VPN路由引入到OSPF实例中并转为5/7类LSA时,该LSA消息会附带VPN路由标记

当其它PE发现LSA的VPN路由标记与自己的一样,就会忽略此条LSA,避免环路

可以自己手工在PE1、PE2上设置Route Tag;默认为该路由器BGP的AS号

配置命令

华为设备配置

OSPF视图下,配置禁止DN置位(缺省开启了DN置位功能)

dn-bit-set  disable  summary/ase/nssa

在Hub-spoke场景下,需要禁止DN置位

OSPF视图下,配置VPN路由标记(缺省VPN路由标记是根据BGP的AS号计算的),没有配置BGP,默认值为1

Route-tag [value]


PE和CE之间运行BGP路由协议

PE和CE之间建立EBGP邻居,无需做路由引入的操作(PE的BGP在实例视图下配置)

AS号替换功能

Site1和Site 2属于同个公司,AS号相同

为什么使用AS替换功能

CE2通过EBGP邻居将1.1.1.1路由发往PE3,发出时打上AS号【100】

PE3将路由传递给PE1,PE1收到后将路由传递给EBGP邻居CE1,打上AS号【200,100】

CE1看到这条路由中AS_Path包含自身的AS号,拒收此路由,导致总部和分部的路由无法实现传递,无法互访

通过使能BGP的AS号替换功能

华为设备配置

  peer  [CE1的IP]  substitute-as         PE1对EBGP对等体CE1发送路由时,将对端CE的AS号修改为自身的AS号(也可以通过路由策略来实现AS号替换);此时CE1收到的AS_Parh为【200,200】,此时CE1就可以接收Stie2的路由,实现互访

  peer 邻居地址 allow-as-loop 2        允许CE接收带有自己AS号的路由,允许重复2次的路由

锐捷设备配置

 neighbor [CE的IP] as-override         PE将使用自己的AS号替换CE的AS号

 neighbor [CE的IP] allowas-in           允许CE接收带有自己AS号的路由,默认允许重复3次

缺点

当Site1站点本地的路由进行传递时,会由于AS替换功能导致环路

CE1将本地2.2.2.2的路由传递给PE1

PE1将给路由发送给PE3,AS号为【100】

PE3将路由发送给PE2,AS号为【100】

PE2将路由发送给CE1时,AS号应为【200,100】,但是由于配置了AS替换,AS号变为【200,200】,CE1接收到PE2发送的路由,造成环路

BGP的SoO属性

此时通过SoO属性防环(可以防止AS替换场景下产生的环路)、防止次优路径,方式路由回馈

基本概念

SoO起源站点,用于标识路由的发源站点,是一种BGP的扩展团体属性

当针对某对等体配置了SoO值时

在接受到对等体发来的BGP路由时,会携带上配置的SoO值并传递给其它BGP邻居

在其它对等体收到此BGP路由,并且准备通告该BGP路由时,会检查路由中的SoO属性是否与自己配置的SoO值相同

若相同则不通告给其它邻居,避免引起环路

如果没有配置SoO值

CE1将2.2.2.2的路由只发给CE1(AS为100)

PE1将此2.2.2.2路由发送给BGP邻居PE2(AS为100)

PE2此时在向BGP邻居CE1发送2.2.2.2的路由时,如果做了AS替换,则会将AS100替换为AS200,发往CE1

此时CE1将收到AR2发来的路由(AS号为200 200),此时BGP路由回馈,可能造成环路

就可以通过SoO值来避免路由回馈,避免路由环路(也可以通过路由策略打标签实现,类似双点双向,不过有点麻烦)

配置命令

华为设备配置

BGP的VPN实例视图下配置SoO

peer  [ip-address]  soo  [SoO值]  针对对等体配置SoO值

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静下心来敲木鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值