简述
OSPF在MPLS VPN场景中,应用在PE和CE之间时,会在OSPF基础协议上进行扩展的特性被启用。
假设用户站点内部网络运行着OSPF,在MPLS VPN下也希望和对端运行该协议传输路由信息,那么就需要在PE和CE之间也运行OSPF,在这个过程中为了解决一些因此引发的问题,OSPF会在基础协议上启用扩展的特性,Domain id、DN、route-tag(意思是一旦在MPLS VPN中应用了OSPF那么就会有这些特性存在,是OSPF应用在其他环境中没有的)
如何配置MPLS VPN看站内文章跳转
Domain ID
- PE把BGP传来的远端路由向CE发布时,需要根据域标识符(Domian ID)的情况选择向CE发布Type3、Type5、Type7的OSPF路由
- 如果本地的域标识符域BGP路由信息中携带的远端域标识符相等或互相兼容,则发布LSA3类路由
- 否则,发布LSA5或LSA7路由
- 域标识符可以通过在OSPF视图下domain-id x.x.x.x修改
- 是以IP形式配置的,格式是x.x.x.x:0,0是默认字符无特殊意义
- 华为默认ID是空,两边都没有配置则代表一样
- 通过PE1学习到的对面PE3设备传来的远端路由,这里可以看到域标识符是0.0.0.0:0,OSPF R T是1:0表示192.168.2.0网段属于1类路由信息(还会有3:0、5:0、5:1、7:0等代表LSA类型5:0和5:1意思是5类LSA的type1和type2,OSPF RT不是MPLS VPN中RT的意思)
路由环路预防
- 在双路径这种类型情况下,如果没有特性就是会引发问题:
- PE1和PE2分别将路由10.1.1.1/32以5类或7类LSA发布给CE1,CE1此时会学习到两条等价的OSPF路由分别指向PE1和PE2
- CE1根据OSPF特性会向PE1和PE2分别发布从PE1和PE2学习到的路由
- 由于OSPF路由优先级高于BGP路由,所以PE1和PE2的BGP路由10.1.1.1/32被OSPF的路由所取代,这段路由的下一跳都将是CE1
- 这样就会导致BGP路由不活跃,那么PE1和PE2就会将引入OSPF的路由撤销,从而导致路由表中没有该OSPF路由。
- 没有OSPF路由后BGP路由又会重新活跃,继续重复之前的循环,从而导致路由振荡
所以需要OSPF使用下面特性防环:
- DN-bit:
- 类似IS-IS的up/down字段,当PE设备看到DN置位,那么将不计算该LSA,但是会收录到数据库
- IS-IS防环机制:
- route tag:
- 和DN类似,是两种防环手段,可以一起出现。
- route tag它的值有计算方法,将值转换位二进制后取后12位,再转换位十进制得出AS号
OSPF伪连接
Sham link
OSPF伪连接,是MPLS VPN骨干网上两个PE之间的点到点链路,这些链路使用借用(Unnumbered)的地址。同样是只有在MPLS VPN特定环境才会有。它有点像虚链路但是它运行在MPLS VPN环境下,建立了伪连接相当于在MPLS VPN中有条线路,但它不会用对端的伪连接地址做下一跳。
技术背景
- 如果在本地CE所在网段和远端CE所在网段间存在一条区域内OSPF链路,称之为后门链路(Backdoor link)也就是备份链路,一般都是只用作来备份链路使用。这种情况下经过后门链路的路由是区域内路由,其优先级要高于经过MPLS VPN骨干网的区域间路由(经过BGP传递根据域ID的变化为3、5、7类),这将导致VPN流量总是通过后门路由转发,而不走骨干网。
- 为了解决上诉的问题,可以在PE之间建立OSPF伪连接(Sham link),使经过MPLS VPN骨干网的路由也成为OSPF区域内路由,并且被优选(调整开销)
案例分析
- 当CE和CE间有一条BackDoor后门链路,并且运行OSPF的情况下,那么它将成为优选链路,路由会通过它将路由传递给对端CE
- R4将44.4.4.4路由通过后门链路传递到R3,R3将之设为优选路由,同时R4也通过MPLS VPN传递路由到R2,R2将路由给到R1,R1通过变换将路由转换为3类或5类传递到R3。
- R3收到后比较路由,肯定是优选R4通过后门链路传递过来的1类LSA路由
- 同时R3将优选的路由发给R1,R1收到后会将原先从BGP学来的路由次优选,去往44.4.4.4也走后门链路。这就导致了链路的次优问题出现
- PS:这里R1也就是PE设备不会因为前面的DN和route-tag而规避到CE发来的OSPF路由,因为R3发的LSA中压根没有DN和route-tag,该路由是R4经过1类LSA传递过来的
注意事项
- OSPF Sham-link 也算是一条OSPF链路,这条链路可以指定为任何区域
- 后面链路属于OSPF区域内,即双方学到的路由时intra-area区域内路由,所以必须将Sham-link伪连接也指定为同一个区域,如果sham-link规划为另一区域,那么表示表示从MPLS VPN骨干网络到达远端网络是inter-area区域间路由,那区域间路由是肯定不如区域内路由优先的,也就不能用sham-link到达远端网络。
- 在配置伪连接时需要考虑OSPF的比较规则,和后门链路的优先级问题,配置不同区域要考虑配置区域内还是区域间,相同区域需要考虑就是开销。
配置条件/配置命令
- 配置前提条件:
- 在PE上单独创建/32位的地址,在PE之间使用这个地址来建立Sham-link(创建回环口)
- 这个/32位地址的接口必须放入相应的VRF,因为CE接口划分VRF,这个伪连接为哪个网段起作用就肯定得放在哪个VRF内
- 这个/32位地址必须在BGP里发布,而不能在OSPF里发布
- 配置命令:
- int lo 55
- ip binding vpn-instance A
- ip add 11.11.11.1 32
- bgp 100
- ipv4-family vpn-instance A
- network 11.11.11.1 32
- ospf 1
- ar 0
- sham-link 11.11.11.1 11.11.11.2
- 配置伪连接,不需同段IP因为是/32
- ar 0
- display ospf 1 sham-link
- 验证
- 两边PE设备都需要配置,sham-link前后源目ip地址
- int lo 55
- PS:伪连接接口开销cost取值为1,为了使VPN流量通过MPLS 骨干网转发,在配置伪连接时,应保证伪连接cost值小于通过用户网络转发时OSPF路由的cost值,因此,常常需要调整用户网络转发接口的cost值,使它比伪连接的cost大
作者:Zleoco,如若转载,请注明出处:https://www.zleoco.com/?p=2601