一、BGP的选路原则六:依次优选Origin类型为IGP、EGP、Incomplete的路由。
◾IGP
- 具有最高的优先级。通过network命令注入到BGP路由表的路由(通过IGP协议得到),其Origin属性为IGP。
- 标识符为“ i ”
◾EGP
- 优先级次之。通过EGP得到的路由信息,其Origin属性为EGP。
- 标识符为:“ e ”
◾Incomplete
- 优先级最低。通过其他方式学习到的路由信息。比如BGP通过import-route命令引入的路由,其Origin属性为Incomplete。
- 标识符为:“ ? ”
二、实验拓扑
三、实验过程
1、R1和R2建立EBGP邻居关系,R2分别和R1、R10 建立EBGP邻居关系,配置省略
2、R2和R4建立IBGP邻居关系,配置省略
3、R4分别和R5、R6建立EBGP邻居关系,配置省略
4、R7分别和R5、R6建立IBGP邻居关系,配置省略
5、保证所有BGP路由下一跳可达、配置省略。
6、在R1上的BGP中创建环回口100和200,分别配置IP地址:100.100.100.100/32、200.200.200.200/32,并通过network命令注入到BGP中,配置省略。
- 观察1:在R7上查看BGP路由表信息,此时选路优选下一跳10.1.5.5设备的原因是Router-ID。
- 思考1:通过策略修改R7学习到路由100.100.100.100/32从下一跳10.1.6.6设备学到。在R5上修改路由100.100.100.100/32传递给R7时的Origin属性类型为EGP,这样R7会分别学习到Origin属性类型为EGP、IGP的两条路由,根据Origin属性选路原则,IGP>EGP>Incomplete,此时R7学到路由100.100.100.100/32会优选Origin属性类型为I的路由,也就是从R6学习到。
- 操作1:在5的出方向上操作。
[*AR5]ip ip-prefix 100 index 10 permit 100.100.100.100 32 [*AR5]commit [~AR5]route-policy 100 permit node 1 [*AR5-route-policy]if-match ip-prefix 100 [*AR5-route-policy]apply origin egp 400 [*AR5-route-policy]commit [~AR5-route-policy]quit [~AR5]route-policy 100 permit node 100 [*AR5-route-policy]commit [~AR5-route-policy]quit [~AR5]bgp 300 [~AR5-bgp]peer 10.1.7.7 route-policy 100 export [*AR5-bgp]commit
- 扩展1:也可以在R7的入方向上做。略。
- 观察2:在R7上观察BGP路由表信息,此时路由100.100.100.100/32从下一跳10.1.6.6学习到,选路的原因是Origin属性类型
- 思考2:在R6上修改路由100.100.100.100/32传递给R7时的Origin属性类型为Incomplete,这样R7会分别学习到Origin属性类型为EGP、Incomplete的两条路由,根据Origin属性选路原则,IGP>EGP>Incomplete,此时R7学到路由100.100.100.100/32会优选Origin属性类型为E的路由,也就是从R5学习到。
- 操作2:在6的出方向上操作。
[~AR6]ip ip-prefix 100 permit 100.100.100.100 32 [*AR6]route-policy 100 permit node 1 [*AR6-route-policy]if-match ip-prefix 100 [*AR6-route-policy]apply origin incomplete [*AR6-route-policy]commit [~AR6-route-policy]quit [~AR6]route-policy 100 permit node 1000 [*AR6-route-policy]commit [~AR6-route-policy]quit [~AR6]bgp 300 [~AR6-bgp]peer 10.1.7.7 route-policy 100 export [*AR6-bgp]commit
- 扩展2:也可以在R7的入方向上做。略。
- 观察3:在R7上观察BGP路由表信息,此时路由100.100.100.100/32从下一跳10.1.5.5学习到,选路的原因是Origin属性类型
评论区