该局点组网大致如上图。两台PE为我司CR19K路由器,下连两台CE设备,每台CE分别与两台PE均建立OSPF邻居。为了在该场景下防环,现场在PE1设备OSPF中打route-tag,配置route-tag 3000后发现该tag没有打上,现网中存在次优路由。
出现问题时,在PE2设备查看到3.3.3.3的路由,发现vpn1、vpn2内到3.3.3.3的路由均指向CE2。在PE2上面dis ospf routing查看该路由,发现没有打上route tag 3000
解释该问题需要先解释route-tag防环机制。
在现网组网设计中,CE1引入外部直连路由3.3.3.3/32到OSPF中,发给PE1的ospf 1 vpn-instance 1,PE1上面vpn1和vpn2实例之间通过RT实现路由互相导入(极端情况可以理解为vpn1和vpn2的RT都是1:1 export、1:1 import),即PE1的BGP学到ospf 1 vpn-ins 1的3.3.3.3/32,并引入ospf 2 vpn-instance 2发给CE2。同样PE2也会做类似动作。不考虑route-tag的情况下,如果PE2与CE1互联的接口G0/2 down,则PE2学到的vpn2路由是指向CE2优先级150的ospf外部路由,vpn1路由是本地BGP导入的优先级130的路由(也指向CE2),如下,
<PE2>dis ip routing-table vpn-instance 1 3.3.3.3
Summary count : 1
Destination/Mask Proto Pre Cost NextHop Interface
3.3.3.3/32 BGP 130 2 30.0.0.2 GE0/1
<PE2>dis ip routing-table vpn-instance 2 3.3.3.3
Summary count : 1
Destination/Mask Proto Pre Cost NextHop Interface
3.3.3.3/32 O_ASE2 150 1 30.0.0.2 GE0/1
当PE2的G0/2接口重新up,虽然PE2的vpn1实例会从CE1学到3.3.3.3的LSA,但这条LSA对应的OSPF外部路由优先级是150,低于该实例内已有的BGP路由优先级130,因此这条OSPF路由不会上路由表,导致次优路径。
解决上述问题的方法之一是通过route tag实现PE对次优路由的忽略。Route-tag是专门用于此类场景的OSPF LSA属性,其工作方式可以参考我司设备命令手册route-tag部分。通过该属性,PE1将BGP路由引入OSPF 2,并通过Type-5将3.3.3.3发布给CE2时,为该Type-5添加本地的外部路由标记route-tag。PE2接收到CE2发布的Type-5 LSA后,将其中的外部路由标记值与本地的外部路由标记值进行比较。如果相同(包括接收路由的外部路由标记值和本地的值均为0),则在进行路由计算时忽略该LSA,从而避免路由环路。
前方出现的问题是,在PE1的ospf 2 vpn-instance 2中配置route-tag 3000,在CE2上面看这条路由没有带着tag 3000。
PE1:
#
ospf 2 vpn-instance 2
import-route bgp allow-ibgp
route-tag 3000
area 0.0.0.0
network 50.0.0.0 0.0.0.255
#
<CE2>dis ospf routing
……
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
3.3.3.3/32 2 Type2 1 50.0.0.1 50.0.0.1
3.3.3.3/32 2 Type2 1 30.0.0.1 30.0.0.1
经实验室验证,route-tag这条命令仅对于从外部接收的路由生效,对于上述这种场景,PE1的ospf 2路由是引入本地生成的BGP路由,这种情况下,route-tag是不生效的。该场景下需要通过ospf 2引入bgp时进行打route tag动作。以下面配置为例,
PE1:
#
ospf 2 vpn-instance 2
import-route bgp allow-ibgp tag 3000
area 0.0.0.0
network 50.0.0.0 0.0.0.255
#
<CE2>dis ospf routing
……
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
3.3.3.3/32 2 Type2 3000 50.0.0.1 50.0.0.1
3.3.3.3/32 2 Type2 1 30.0.0.1 30.0.0.1
之后在PE2的ospf 2 vpn-intstance 2中配置route-tag 3000,即可实现防环(对CE2发来的tag 3000的路由进行忽略)。
在PE2的ospf 2 vpn-instance 2进程中引入BGP路由时进行打route tag动作。
#
ospf 2 vpn-instance 2
import-route bgp allow-ibgp tag 3000
area 0.0.0.0
network 50.0.0.0 0.0.0.255
#
或
#
ospf 2 vpn-instance 2
import-route bgp allow-ibgp route-policy 1 //策略内容为匹配路由apply tag 3000
area 0.0.0.0
network 50.0.0.0 0.0.0.255
#
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作