目录
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需要满足的三个条件
建立虚拟的区域内链路的地址必须是32位的Loopback地址
Loopback地址必须绑定到Vpn实例,并在BGP VPN实例下宣告
该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值
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/7955.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
打赏微信支付宝扫一扫,打赏作者吧~
休息一下~~