Version 1.0
AA震震小样儿~
2021-05-20
通过修改Weight值属性来影响路由决策
知识回顾
- Weight属性是Cisco私有属性。
- 作用范围是本路由器(不传递),该值既不会被包含在Update消息中,也不会传递给任何BGP邻居
- 取值范围:0-65535
- 默认值:
- 如果路由时从其他邻居学过来的,则默认值(在本地路由器)是0
- 本地network、重发布、汇总 产生的路由weight值是32768
- 值越大越优先
需求
在R4路由器上配置
- 让R4去往100.0.1.0走R3
- 让R4去往100.0.2.0走R5
配置步骤
R4配置:
R4(config)#ip prefix-list 1 permit 100.0.1.0/24
R4(config)#ip prefix-list 2 permit 100.0.2.0/24
R4(config)#route-map WT1 permit 10
R4(config-route-map)#match ip address prefix-list 1
R4(config-route-map)#set weight 200
R4(config-route-map)#route-map WT1 permit 20
R4(config-route-map)#match ip add prefix-list 2
R4(config-route-map)#set weight 100
R4(config-route-map)#route-map WT1 permit 30
R4(config-route-map)#route-map WT2 permit 10
R4(config-route-map)#match ip add prefix-list 2
R4(config-route-map)#set weight 200
R4(config-route-map)#route-map WT2 permit 20
R4(config-route-map)#match ip add prefix-list 1
R4(config-route-map)#set weight 100
R4(config-route-map)#route-map WT2 permit 30
R4(config)#router bgp 345
R4(config-router)#neighbor 3.3.3.3 route-map WT1 in
R4(config-router)#neighbor 5.5.5.5 route-map WT2 in
R4(config-router)#end
R4#clear ip bgp * soft in
R4#show ip bgp
注:200.1.1.0路由是R1路由器宣告的,通过EBGP传递给R3,再由R3传递给其IBGP邻居R4。如果在R4上没有配置route-map WT2 permit 30,那么该路由R4是无法接收,因为route-map默认最后一条策略为拒绝所有。
R4#show route-map
R4#show ip prefix-list
通过修改Local prefence属性来影响路由决策
知识回顾
- 公认自决属性
- LP就是本地优先级,用于在内部对等体之间(IBGP)的Update消息,而不会传递给其他EBGP邻居
- 本地network或重发布进入bgp的路由,LP值默认100
- LP值越大越优先
- 只能在IBGP Peer之间传递(除非做了策略,否则LP值属性在AS内的IBGP邻居之间传递不会丢失),不能再EBGP Peer之间传递,如果再EBGP Peer之间收到的路由的路径属性中携带了Local Perference,则会触发Notification报文,造成会话中断,但是可以在AS边界路由器上使用IN方向的策略。
- bgp default local-preference 500 //修改始发于本地的路由的默认LP值为500
- BGP 路由器在向其EBGP邻居发送路由更新时,不能携带LP属性,对方收到该EBGP路由的LP值为空,但是它会在本地为这条路由赋一个默认值100,然后再传递给自己的IBGP Peer
- 本地network或重发布的路由,LP值默认100,并能向自己所在AS内的其他IBGP邻居传递,传递过程中LP值不变,除非部署策略修改了LP值
需求
- 通过修改LP属性值来影响选路,实现让R4访问100.0.1.0走R3,访问100.0.2.0走R5。因LP值在AS内部具有传递性,分别在R3和R5上对R4使用out方向的route-map来控制LP值,影响R4选路
配置步骤
R3配置:
R3(config)#ip prefix-list 1 permit 100.0.1.0/24
R3(config)#ip prefix-list 2 permit 100.0.2.0/24
R3(config)#route-map LP permit 10
R3(config-route-map)#match ip add prefix-list 1
R3(config-route-map)#set local-preference 500
R3(config-route-map)#route-map LP permit 20
R3(config-route-map)#match ip add prefix-list 2
R3(config-route-map)#set local-preference 200
R3(config-route-map)#route-map LP permit 30
R3(config-route-map)#exit
R3(config)#router bgp 345
R3(config-router)#neighbor 4.4.4.4 route-map LP out
R3(config-router)#end
R3#clear ip bgp 4.4.4.4 soft out
R5配置:
R5(config)#ip prefix-list 1 permit 100.0.1.0/24
R5(config)#ip prefix-list 2 permit 100.0.2.0/24
R5(config)#route-map LP permit 10
R5(config-route-map)#match ip add prefix-list 1
R5(config-route-map)#set local-preference 200
R5(config-route-map)#route-map LP permit 20
R5(config-route-map)#match ip add prefix-list 2
R5(config-route-map)#set local-preference 500
R5(config-route-map)#route-map LP permit 30
R5(config-route-map)#end
R5(config)#router bgp 345
R5(config-router)#neighbor 4.4.4.4 route-map LP out
R5(config-router)#end
R5#clear ip bgp 4.4.4.4 soft out
R4验证结果:
通过修改AS_PATH属性影响路由决策
知识回顾
- AS_PATH是公认必遵属性
- 描述到达目标网络所要经过的AS号的序列。作用是防环,如果BGP speaker发现接收自外部peer(EBGP)的路由包含自己的AS号,则忽略该路由
- 仅当Update消息被发送给其他AS时,BGP路由器才会将其AS号追加在AS_PATH中。那就是如果要修改AS_PATH属性,则必须在AS边界路由器上执行策略。
需求
- 通过修改R1的AS_PATH属性来控制R4去往100.0.1.0通过R5-R2走
- 通过修改R5的AS_PATH属性来控制R4去往100.0.2.0通过R3-R1走
配置步骤
R1配置:
(R1操控AS-PATH属性,添加到达100.0.1.0的AS-PATH路径数量再传递给R3,这样R4去往100.0.1.0路径会选择通过R5-R2(AS-PATH路径更短)走)
R1(config)#ip prefix-list 1 permit 100.0.1.0/24
R1(config)#route-map AS1 permit 10
R1(config-route-map)#match ip address prefix-list 1
R1(config-route-map)#set as-path prepend 101
R1(config-route-map)#route-map AS1 permit 20
R1(config-route-map)#exit
R1(config)#router bgp 100
R1(config-router)#neighbor 10.1.13.3 route-map AS1 out
R1(config-router)#end
R5配置:
R5(config)#ip prefix-list 1 permit 100.0.2.0/24
R5(config)#route-map AS permit 10
R5(config-route-map)#match ip add prefix-list 1
R5(config-route-map)#set as-path prepend 202
R5(config-route-map)#route-map AS permit 20
R5(config-route-map)#exit
R5(config)#router bgp 345
R5(config-router)#neighbor 10.1.25.2 route-map AS in
R5(config-router)#end
R4验证:
R4#clear ip bgp * soft in
R4#show ip bgp
通过修改Origin属性影响路由决策
知识回顾
对于Origin属性,它明确了路由更新的来源
标记 | 缩写 | 描述 |
IGP | i | 通过network手工进入BGP |
EGP | e | 通过早期的EGP协议学习来的 |
Incomplete | ? | 重发布IGP或静态、直连进入BGP的 |
优选顺序:i > e > ?
需求
- R1上使用network方式引入100.0.1.0和100.0.2.0两条路由
- R2上使用重发布直连方式引入100.0.1.0和100.0.2.0两条路由
- 查看R4对于两条路由的路径选择
配置步骤
R1配置:
R1(config)#router bgp 100
R1(config-router)#network 100.0.1.0 mask 255.255.255.0
R1(config-router)#network 100.0.2.0 mask 255.255.255.0
R1(config-router)#end
R2配置:
R2(config)#ip prefix-list 1 permit 100.0.1.0/24
R2(config)#ip prefix-list 2 permit 100.0.2.0/24
R2(config)#route-map CON permit 10
R2(config-route-map)#match ip address prefix-list 1 2
R2(config-route-map)#exit
R2(config)#router bgp 200
R2(config-router)#network 200.2.2.0 mask 255.255.255.0
R2(config-router)#redistribute connected route-map CON
R2(config-router)#end
R4验证:
R4#show ip bgp
R1另一种配置方式:
R1配置route-map修改100.0.1.0/24路由的Origin属性为Incomplete,来影响R4选择100.0.1.0的路由优选R5-R2
R1(config)#ip prefix-list 1 permit 100.0.1.0/24
R1(config)#route-map ORI permit 10
R1(config-route-map)#match ip add prefix-list 1
R1(config-route-map)#set origin incomplete
R1(config-route-map)#route-map ORI permit 20
R1(config-route-map)#exit
R1(config)#router bgp 100
R1(config-router)#neighbor 10.1.13.3 route-map ORI out
R1(config-router)#end
R1#clear ip bgp * soft out
R4验证:
R4#show ip bgp
通过修改MED属性影响路由决策
知识回顾
- 可选非传递
- Cisco默认MED为0
- 默认情况下,只比较来自同一邻居AS的BGP路由的MED值,就是说如果同一个目的地的两条路由来自不同的AS,则不进行MED值的比较
- BGP进程下输入:bgp always-compare-med 可以比较来自不同AS的同一目的地路由MED值
- MED只是在直接相连的AS间影响业务量,从一个AS学习到的MED值不会再传递给另一个AS
- MED值越小越优先
注:
- Network从IGP路由协议学习到的路由进入BGP,MED值继承IGP协议中的metric
- Redistribute从IGP路由协议学习到的路由进入BGP,MED值继承IGP协议中的metric
- Network直连/静态进入BGP,MED值为0
- Redistribute直连/静态进入BGP,MED值为0
需求
- 在R1、R2上修改MED值,影响R4去往100.0.1.0走R3-R1,去往100.0.2.0走R5-R2
配置步骤
R1配置:
R1(config)#ip prefix-list 1 permit 100.0.1.0/24
R1(config)#ip prefix-list 2 permit 100.0.2.0/24
R1(config)#route-map MED permit 10
R1(config-route-map)#match ip add prefix-list 1
R1(config-route-map)#set metric 100
R1(config-route-map)#route-map MED permit 20
R1(config-route-map)#match ip add prefix-list 2
R1(config-route-map)#set metric 200
R1(config-route-map)#route-map MED permit 30
R1(config-route-map)#end
R1(config)#router bgp 100
R1(config-router)#neighbor 10.1.13.3 route-map MED out
R1(config-router)#end
R2配置:
R2(config)#ip prefix-list 1 permit 100.0.1.0/24
R2(config)#ip prefix-list 2 permit 100.0.2.0/24
R2(config)#route-map MED permit 10
R2(config-route-map)#match ip add prefix-list 1
R2(config-route-map)#set metric 200
R2(config-route-map)#route-map MED permit 20
R2(config-route-map)#match ip add prefix-list 2
R2(config-route-map)#set metric 100
R2(config-route-map)#route-map MED permit 30
R2(config-route-map)#exit
R2(config)#router bgp 200
R2(config-router)#neighbor 10.1.25.5 route-map MED out
R2(config-router)#end
R4查看:
注:
从R4上可以查看到虽然从R5(next-hop 5.5.5.5)学到的到达100.0.2.0的路由所携带MED值为100,小于从R3(netx-hop 3.3.3.3)传递过来的MED值200,但是R4还是选择通过R3作为下一跳路径,而影响该选路规则的是“BGP邻居的RID(越小越优)”,并没有比较MED值。是因为BGP路由器默认只比较来自同一AS的路由的MED值,而该目的地的路由是来自不同AS,所以不进行MED值比较。
通过在BGP进程下输入bgp always-compare-med来强制BGP路由器可以比较来自不同AS的同一目的地路由的MED属性值。
R4(config-router)#bgp always-compare-med
R4(config-router)#end
R4#clear ip bgp * soft
R4#show ip bgp