配置不同本地优先级会影响BGP的路由选择,当一个运行BGP的路由器有多条路由到达同一目的地址时,会优选本地优先级最高的路由。缺省情况下,BGP本地优先级的值为100。本地优先级属性仅在IBGP对等体之间交换,不通告给其他AS.
通常用于数据包如何离开本AS,越大越优先。
拓扑图上:R4和R2 R3建立IBGP邻居,R1同R2和R3建立直连的EBGP邻居。
R1上通告三个环回接口到BGP中,R4和R5分别通告一个环回口到BGP中。 AS200内部使用RIP做为IGP协议。R4用来建立BGP邻居的环回口为loop0,IP地址4.4.4.4。为避免路由通告失败,R4上通告的路由是44.44.44.0/24。
本次实验的目的是通过改变本地优先级来影响BGP的选路,本地优先级用于影响路由的出站流量,越大越优先。这个属性会在AS内传播,并不会传递给EBGP邻居。
实验一:R3针对R1通告的路由,更改本地优先级为200,观察R3和R4BGP表,本地优先级的变化,以及R4选路的变化。本次实验在R3上完成。
在R4看来,去往R1通告的路由,有两条路径可选,一为R2,一为R3,由于R2的Router-ID较小,所以R4优选R2出站去往1.1.1.0/24 10.1.1.0/24 100.1.1.0/24.
R3:
route-policy prefrence permit node 10
apply local-preference 3333
bgp 200
router-id 3.3.3.3
peer 123.1.1.1 route-policy prefrence import
结果观察:
- 观察R3针对R1传递过来的路由的本地优先级
- 观察R4针对R3传递过来的路由的本地优先级,是否会影响R4选路
观察R5针对R4传递过来的1.1.1.0/24 10.1.1.0/24 100.1.1.0/24这几条路由,其本地优先级是多少
观察R3针对R1传递过来的路由的本地优先级
[R3-bgp]display bgp routing-table BGP Local router ID is 3.3.3.3 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 5 Network NextHop MED LocPrf PrefVal Path/Ogn *> 1.1.1.0/24 123.1.1.1 0 3333 0 100i *>i 5.5.5.0/24 4.4.4.4 0 100 0 300i *> 10.1.1.0/24 123.1.1.1 0 3333 0 100i *>i 44.44.44.0/24 4.4.4.4 0 100 0 i *> 100.1.1.0/24 123.1.1.1 0 3333 0 100i
R3上在邻居123.1.1.1的import方向应用了route-policy,更改了路由的本地优先级为3333.观察R3的BGP表,这三条路由的本地优先级已经更改了。
观察R4针对R3传递过来的路由的本地优先级,是否会影响R4选路
<R4>display bgp routing-table BGP Local router ID is 4.4.4.4 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 8 Network NextHop MED LocPrf PrefVal Path/Ogn *>i 1.1.1.0/24 3.3.3.3 0 3333 0 100i * i 2.2.2.2 0 100 0 100i *> 5.5.5.0/24 45.1.1.5 0 0 300i *>i 10.1.1.0/24 3.3.3.3 0 3333 0 100i * i 2.2.2.2 0 100 0 100i *> 44.44.44.0/24 0.0.0.0 0 0 i *>i 100.1.1.0/24 3.3.3.3 0 3333 0 100i * i 2.2.2.2 0 100 0 100i
在R4上观察BGP表,发现R4去往R1通告的三条路由,其最优的路径是选择R3做为下一跳。因为R3发布的路由有较高的本地优先级。
观察R5针对R4传递过来的1.1.1.0/24 10.1.1.0/24 100.1.1.0/24这几条路由,其本地优先级是多少
<R5>display bgp routing-table BGP Local router ID is 45.1.1.5 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 5 Network NextHop MED LocPrf PrefVal Path/Ogn *> 1.1.1.0/24 45.1.1.4 0 200 100i *> 5.5.5.0/24 0.0.0.0 0 0 i *> 10.1.1.0/24 45.1.1.4 0 200 100i *> 44.44.44.0/24 45.1.1.4 0 0 200i *> 100.1.1.0/24 45.1.1.4 0 200 100i
R5上看到的关于1.1.1.0/24 10.1.1.0/24 100.1.1.0/24这几条路由,其本地优先级为空。只有在IBGP传递的路由才会携带本地优先级属性。
实验二、在R3上做针对IBGP邻居R4做出方向的route-policy,更改1.1.1.0/24 10.1.1.0/24 100.1.1.0/24这几条路由的选路。
- 先去掉R3上的针对peer 123.1.1.1的route-policy相关配置。
- 配置针对R4的export方向的route-policy
peer 4.4.4.4 route-policy prefrence export - 在R4上使用refresh bgp all import/export刷新路由。
- 结论,在R3针对R4的出方向做路由策略后,R4针对R3发布的路由,其本地优先级进行了更改,策略生效。
实验三、在R4上,针对IBGP邻居R2发布的路由,入方向做路由策略,更改其发布的路由的本地优先级。
结论:生效。
总结:
- 在路由器上可以针对EBGP和IBGP邻居的入站方向使用Route-policy影响本地及下游路由器接收路由的本地优先级
- 在路由器上可以针对IBGP的出站方向使用route-policy影响本AS下游路由器接收的路由的本地优先级。
- 本地优先级仅在IBGP邻居之间传递,不会将属性传递给EBGP邻居。(第1条讲的是,路由器针对EBGP邻居在自己的入向做Route-Policy,影响自己及下游路由器)
- 默认值为100,取值为0到42亿之间。