目录
PE和CE之间可以不同部署不同的路由协议,部署不同的路由协议会存在不同的问题
PE和CE之间运行OSPF路由协议
Ospf的Dmian ID(还原属性)
应用场景
当两边的PE和CE之间都运行OSPF协议时,此属性才会体现出其作用(默认此属性开启,会携带)
基本概念
在PE上将OSPF路由引入BGP时,PE会为BGP路由增加Domian ID属性,此属性作为BGP的扩展属性传播(缺省情况下Domain ID为0)
具体作用
当对端PE收到BGP路由后,根据报文携带的Doamin ID与Route Type属性,会产生不同类型的Ospf Lsa类型发布到Vpn实例的OSPF进程中
方便进行LSA属性的过滤,也可以通过Doamin ID值针对不同站点的路由做优先计算(3类优于5类)
具体实例
此时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比特置位
当同一用户站点的其它PE在收到带有DN置位的LSA3时,不会进行SPF路由计算
防止了路由环路和路由震荡
为什么要使用VPN Router Tag(VPN路由标记)来防止Type5/7路由环路
3类LSA跨区域的时候,DN位会清空,对于多区域场景,DN置位无法防环,此时通过VPN Router Tag来防止环路
VPN Router Tag如何防止Type5/7路由环路
VPN路由标记不在BGP的扩展属性中传递,只是本地有效,只在收到BGP路由并且产生OSPF LSA的PE设备上有意义
自己手工在PE1、PE2上设置Route Tag
当PE在收到BGP的私网路由生成5/7类LSA时,会携带VPN路由标记,当PE发现LSA的标签(Route Tag)与自己的一样,就会忽略此条LSA,避免环路
配置命令
OSPF视图下,配置禁止DN置位(缺省开启了DN置位功能)
dn-bit-set disable summary/ase/nssa
在Hub-spoke场景下,需要禁止DN置位
OSPF视图下,配置VPN路由标记(缺省VPN路由标记是根据BGP的AS号计算的),没有配置BGP,默认值为0
Route-tag [value]
PE和CE之间运行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号替换功能
PE1对EBGP对等体CE1发送路由时,修改AS号
Peer [CE1的IP] substitute-as
此时CE1收到的AS_Parh为【200,200】,此时CE1就可以接收Stie2的路由,实现互访
缺点
当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属性防环
基本概念
SoO起源站点,用于标识路由的发源站点,是一种BGP的扩展团体属性
当针对某对等体配置了SoO值时
在接受到对等体发来的BGP路由时,会携带上配置的SoO值并传递给其它BGP邻居
在先此对等体通告BGP路由时,会检查路由中的SoO属性是否与自己配置的SoO值相同
若相同则不通告,避免引起环路
配置命令
BGP的VPN实例视图下配置SoO
Peer [ip-address] soo [SoO值] 针对对等体配置SoO值