目录
PE和CE之间运行OSPF路由协议
Ospf的Dmian ID(还原属性)
Ospf的Sham Link属性
OSPF的DN置位与VPN Router Tag
PE和CE之间运行BGP路由协议
AS号替换功能
BGP的SoO属性
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值