实验拓扑
配置:均使用lo 0建邻居
1 与2,3建立EBGP邻居(需要使用静态路由),修改更新源,e多跳
4与2,3建立IBGP邻居(运行OSPF),,更新源,next-hop-self
4与5建EBGP邻居
1的lo 1:192.168.1.1
5有4个回环接口,172.16网段
4身上有5network的4条路由,均为最优,1network的192.168.1.0网段有两条路径。
1身上去往172.16网段的都默认走2.2.2.2这条路径,注意,不会实现负载均衡。可以看见AS-Path下面写着234和5,也就是去172.16网段需要经过AS234和AS5
AS-path
1.影响EBGP选路,越短越好。
2.防环:当一台路由器收到一条BGP路由,会查看路由的AS-path属性,如果发现有自己的AS号码,就会丢弃这条路由。
做法:修改路由路径,将2.2.2.2改大,让它走3.3.3.3
配置:R2
access-list 1 permit 172.16.0.0 0.0.0.255 //抓取172.16.0.0
route-map AS per 10
match ip add 1 // 匹配acl
set as-path prepend 8 8 8 //在路径当中加入三个AS 8 8 8
route-map AS per 20 //放行其他流量
router bgp 234
nei 1.1.1.1 route-map AS out //调用,出方向
现象:
路径2的AS-PATH多了8 8 8,变成了需要走5个AS,最优路径变为3(路径更短)
在1身上也可以调用,只需写成 nei 2.2.2.2 route-map AS in 即可。
Next-hop
1.从IBGP邻居学习到的路由不会再传递给我的IBGP邻居(水平分割)
2.从IBGP邻居学习到的路由会传递给我的EBGP邻居,下一跳改变,为自己。(2从IBGP4学到的路由会传给EBGP1,next-hop变为2)
3.从EBGP邻居学习到的路由会传递给我的IBGP邻居,下一跳不变,还是EBGP邻居,需要使用next-hop-self改变(4从EBGP5学到的会传给IBGP23,下一跳还是5,所以需要next-hop-self变为4)
4.从EBGP邻居学习到的路由会传递给我的EBGP邻居,下一跳改变,为自己
总结:
I>I不传(水平分割),其他都会传
I>E:I与I之间需要next-hop-self改变下一跳
Origin 起源
只有3个值:
IGP(i):在BGP中使用network宣告
EGP(e):从EGP协议重分布进BGP(基本见不到)
Incomplete(?):从IGP或静态路由重分布进BGP
越小越优(i<e<?),影响EBGP选路
修改:
现象:
2的i变成了“?”,选路变成了3
local preference 本地优先级
告诉自己的IBGP邻居:离开AS的首选路径。不会传出本AS
越大越好
思路:172的路由不可以通过local preference来控制选路,因为他控制的是IBGP邻居的选路,如果要在R1身上修改路径的local preference属性,它并不会影响身为EBGP的R2和R3,而在4身上修改192的属性则可以影响R2R3,因为R2R3是R4的IBGP
配置:
现象:
MED
Multi-Exit Discriminator 多出口鉴别属性
当两个AS之间存在多条路径的时候才使用
用来影响EBGP邻居,告诉自己的EBGP邻居如何选最优路由。
邻居收到传来的metric之后,不能传出AS。
默认为0.
在R2上将MED值改大,选路就会变为3
也就是说R2修改MED值,用来影响EBGP邻居R1的选路
Weight 权重
影响本路由器的选路,不能传递给别的路由,越大越好
在R1上修改3的权重,将他改大
选路变为3
选路原则
1. 权重:Prefer highest weight (local to router).
2. 本地优先级:Prefer highest local preference (global within AS).
3. 起源于本地:Prefer route originated by the local router (next hop = 0.0.0.0)
4. 最短AS路径:Prefer shortest AS path.
5. 最低的起源属性:Prefer lowest origin code (IGP < EGP < incomplete).
6. 最低的MED:Prefer lowest MED.
7. EBGP(20)优于IBGP(200):Prefer EBGP path over IBGP path.
8. 最近的IGP邻居:Prefer the path through the closest IGP neighbor.
9. 生存最长的路由:Prefer oldest route for EBGP paths.
10. 最低的router-id:Prefer the path with the lowest neighbor BGP router ID.
11. 最低的IP地址:Prefer the path with the lowest neighbor IP address.