1、W ,即属性 Weight( 思科的私有属性,本地有意义,越大越优先,默认情况下从邻居学到的weight值为0,只能用在in方向)
A、针对邻居修改来自该邻居的所有路由的Weight
B、明细的用Route-map修改某些路由
2、L ,即Local Preference (本地优先级)
通常情况用于离开本AS的选路,默认为100,可以在IBGP邻居之间传递,不会更新真正的EBGP邻居
全局修改;Route-map
3、O ,即属性Sourced(本地起源)
4、A,即属性AS-PATH
5、O ,即“Origin”(起源代码)
6、M,即属性MED(多出口分离器)
7、E,属性EBGP(优于IBGP)
8、M,即属性代表到达更新源的Metric值小的进行下一跳
9、L,即属性负载均衡
10、O,即属性建立时间更久的EBGP邻居
11、R,属性更小的RID
12、C,属性更短的Cluster-list
13、优选来自用最低地址建立BGP连接的邻居的路由条目
【Next-hop 可达是选路的前提】
我们在R1和R2配置EIGRP,通告lo0和直连关闭汇总,并建立IBGP邻居关系,同时R1和R2分别与R3建立EBGP邻居关系. R3 BGP通告两个lo (lo0 33.1.1.1 lo1 3.3.3.3)
R1:
R2:
R3:
BGP优先权重最大的,默认从BGP邻居学到的路由的Weight值为0,从本设备宣告重分布或者汇总路由的权重值为32768,我们针对邻居修改来自邻居的所有路由的权重值,增大来自R2的所有路由权重值,使R1优先选择R2作为下一跳:
以上R1所有路由都选择R2作为下一跳,如果明细来干预选路,我们需要用到Route-map:
R1(config)#ip prefix-list 1 seq 5 permit 3.3.3.3/32
R1(config)#route-map Weight permit 10
R1(config-route-map)#match ip address prefix-list 1
R1(config-route-map)#set weight 2 ---设置权重为2,即优于来自R2的路由,此时是有问题的
R1(config)#
router bgp 100
R1(config-router)#neighbor 13.1.1.3 route-map Weight in---只能在in方向调用
R1#clear ip bgp * so
此时R1上3.3.3.3的路由权重为2已经优于R3,但是我们发现33.1.1.1的路由只有一个下一跳,这就是刚刚提到的问题,route-map不仅仅可以设置BGP的属性,当匹配了前缀列表或ACL时一定要考虑其他的路由是否还需要收取,R1还需要收取来自R3的其他路由条目
修改:R1(config)#route-map Weight permit 20---只需要增加一个序列号,行为是permit,那么匹配条件为任意
修改本地优先级后只更新给IBGP邻居,也就是R2修改本地优先级后更新给R1,不会更新R3:
R2(config)#router bgp 100
R2(config-router)#bgp default local-preference 101 ----全局修改
我们使用Route-map调用,来自R3的3.3.3.3的路由R1直接走R3,R2走R2到达R3,只能在in方向生效,R1更改本地优先级后更新给IBGP邻居R2:
查看R1和R2,R1 33.1.1.1通过R2到达R3,R2查看3.3.3.3路由通过R1到达R3:
R2查看收到R1更改的BGP本地优先级属性,3.3.3.3路由本地优先级同样更改
为
102:
R2一个环回口被本地通告时用Route-map修改为Weight=0
R1重分布静态路由得到的2.2.2.2 更新
R2(config)#int lo 1
R2(config-if)#ip address 2.2.2.2 255.255.255.255
R2(config)#route-map Test
R2(config-route-map)#set weight 0
R2(config)#router bgp 100
R2(config-router)#network 2.2.2.2 ma 255.255.255.255 route-map Test
本设备生成的路由在Weight无效(0)当然本地优先级默认为100情况下,是最优的。
(valid, sourced, local, best)
33.1.1.1选择R2作为下一跳,3.3.3.3选择R3作为下一跳
R1#sho access-lists
Standard IP access list 33
10 permit 33.1.1.1 (1 match)
R1#sho run | s route-map ASPATH
neighbor 13.1.1.3 route-map ASPATH in
route-map ASPATH permit 10
match ip address 33
set as-path prepend 200 200
route-map ASPATH permit 20
有一条隐含的命令bgp bestpath as-path ignore ---as-path ignore隐含的
R1(config-router)#bgp bestpath ?
compare-routerid Compare router-id for identical EBGP paths
cost-community cost community
igp-metric igp metric
med MED attribute
R1(config-router)#bgp bestpath a i ----方便记忆使用该命令进行操作,忽略as-path选路
忽略as-path选路后R1上到33.1.1.1路由直接到R3而没有选择AS-path短的路径到R2:
R1(config)#router bgp 100
R1(config-router)#no neighbor 13.1.1.3 route-map ASPATH in
R1(config-router)#no bgp bestpath as-path ignore
以上是删掉干扰的因素
i---igp(通告、aggregate)
e--egp (不存在)
?--incomplete(重分布产生的路由 )
i优于e,e优于?
需求:33.1.1.1选择R2作为下一跳
R1(config)#route-map ORIGIN pe
R1(config)#route-map ORIGIN permit 10
R1(config-route-map)#match ip address 33
R1(config-route-map)#set origin incomplete ----设置incomplete
R1(config)#route-map ORIGIN permit 20
R1(config-route-map)#router bgp 100
R1(config-router)#neighbor 13.1.1.3 route-map ORIGIN in ---针对邻居R3设置incomplete
在以上4个选路都一样情况下,i由于?所以选择R2作为下一跳:
关注分享该WX Gongzhonghao: 【huayinetwork】持续分享干货网络技术,公开答疑!
同时为方便广大网络爱好者一起共同学习交流,开设了华为&思科网络技术交流qun,qun里上传大量免费学习资料,定期技术答疑,欢迎广大网络爱好者进群学习交流!