【BGP路径选择】Preferred Value,Local Preference

目录

一:BGP路径选择-Preferred Value

原理概述:

实验目的:

实验内容:

实验拓扑

1.基本配置 

2.配置IGP和BGP协议

 3.修改Preferred Value

二:BGP路径选择-Local Preference

原理概述:

实验目的

实验内容

实验拓扑

1.基本配置

2.完成OSPF和BGP协议的基本配置。

3.观察BGP路由信息的Local Preference属性。

4.修改Local Preference值


一:BGP路径选择-Preferred Value

原理概述:

       当一条BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些 BGP 路由的属性进行比较,以确定去往该目标网络的最优 BGP 路由,然后将该最优 BGP 路由与去往同一目标网络的其他协议路由进行比较,从而决定是否将该最优 BGP 路由放进 IP 路由表中。注意,路由器最终是根据 IP 路由表进行实际报文转发的。在对 BGP 路由属性进行比较时, BGP 会遵循一定的先后次序进行比较,直到确定出一条最优路由为止。在 BGP 路由属性的比较过程中,首先要比较的就是路由信息首选值 Preferred Value ,也简称为 PrefVal
       路由信息的首选值 Preferred Value 的取值范围是0~65535,取值越大,优先级越高。缺省情况下, Preferred Value 取值为0:通过修改 Preferred Value 的值,可以很方便地实现对路径选择的控制。 Preferred Value 属性不会发送给任何 BGP 邻居,仅作为本地路由器用来选择最佳 BGP 路径之用。

实验目的:

 理解 BGP 路由信息首选值 Preferred Value 的作用
 掌握修改 Preferred Value 属性的方法
 掌握通过修改 Preferred Value 属性来实现流量分担的方法


实验内容:


实验拓扑如下所示。本实验包含了4台路由器,R1、R2、R3属于 AS 100,R4属于 AS 200。R1、R2、R3之间运行RIPv2协议,同时,所有路由器都运行 BGP 协议,并通过各自的Loopback0接口建立 BGP 邻居关系。R4通告自己的 Loopback 1和 Loopback 2两个接口所在的网络到 BGP 进程中,R3通告自己的 Loopback 1接口所在的网络到 BGP 进程中。最后,通过修改 Preferred Value 的值,使得R3的 Loopback 1接口去往R4的 Loopback 1和Loopback2接口的报文分别通过R1与R2进行转发,从而实现流量分担,并互为备份。


实验拓扑

1.基本配置 

根据拓扑完成基本配置,并用ping命令检测R1与R3的连通性。 

 

其余直连网段的连通性测试过程在此省略。 

2.配置IGP和BGP协议

在AS 100内采用RIPv2协议配置IGP。 

[r1]rip 
[r1-rip-1]version 2
[r1-rip-1]network 10.0.0.0

[r2]rip
[r2-rip-1]version 2
[r2-rip-1]network 10.0.0.0

[r3]rip
[r3-rip-1]version 2
[r3-rip-1]network 10.0.0.0

在R1、R2、R4上配置静态路由,保证R1的 Loopback 0接口和R4的 Loopback 0接口之间,以及R2的Loopback0接口和R4的 Loopback 0接口之间能建立 TCP 会话。 

[r1]ip route-static 10.0.4.4 255.255.255.255 10.0.14.4 

[r2]ip route-static 10.0.4.4 255.255.255.255 10.0.24.4

[r4]ip route-static 10.0.1.1 255.255.255.255 10.0.14.1
[r4]ip route-static 10.0.2.2 255.255.255.255 10.0.24.2 

将每台路由器的Loopback0接口 IP 地址作为自己的 Router - ID ,并且都采用 Loopback 0接口来建立 BGP 邻居关系。R3通告自己的Loopback1接口所在的网络到 BGP 进程中,R4通告自己的 Loopback 1和 Loopback 2接口所在的网络到 BGP 进程中。 

[r1]bgp 100
[r1-bgp]router-id 10.0.1.1
[r1-bgp]peer 10.0.2.2 as-number 100
[r1-bgp]peer 10.0.2.2 connect-interface loopback 0
[r1-bgp]peer 10.0.2.2 next-hop-local
[r1-bgp]peer 10.0.3.3 as-number 100
[r1-bgp]peer 10.0.3.3 connect-interface loopback 0
[r1-bgp]peer 10.0.3.3 next-hop-local
[r1-bgp]peer 10.0.4.4 as-number 200
[r1-bgp]peer 10.0.4.4 ebgp-max-hop
[r1-bgp]peer 10.0.4.4 connect-interface loopback 0

[r2]bgp 100
[r2-bgp]router-id 10.0.2.2
[r2-bgp]peer 10.0.1.1 as-number 100
[r2-bgp]peer 10.0.1.1 connect-interface loopback 0
[r2-bgp]peer 10.0.1.1 next-hop-local
[r2-bgp]peer 10.0.3.3 as-number 100
[r2-bgp]peer 10.0.3.3 connect-interface loopback 0
[r2-bgp]peer 10.0.3.3 next-hop-local
[r2-bgp]peer 10.0.4.4 as-number 200
[r2-bgp]peer 10.0.4.4 ebgp-max-hop
[r2-bgp]peer 10.0.4.4 connect-interface loopback 0

[r3]bgp 100
[r3-bgp]router-id 10.0.3.3
[r3-bgp]peer 10.0.1.1 as-number 100
[r3-bgp]peer 10.0.1.1 connect-interface loopback 0
[r3-bgp]peer 10.0.2.2 as-number 100
[r3-bgp]peer 10.0.2.2 connect-interface loopback 0
[r3-bgp]network 10.0.33.33 255.255.255.255

[r4]bgp 200
[r4-bgp]router-id 10.0.4.4
[r4-bgp]peer 10.0.1.1 as-number 100
[r4-bgp]peer 10.0.1.1 connect-interface loopback 0
[r4-bgp]peer 10.0.1.1 ebgp-max-hop
[r4-bgp]peer 10.0.2.2 as-number 100
[r4-bgp]peer 10.0.2.2 ebgp-max-hop
[r4-bgp]peer 10.0.2.2 connect-interface loopback 0
[r4-bgp]network 10.0.44.44 255.255.255.255
[r4-bgp]network 10.0.55.55 255.255.255.255

配置完成后,在R1,R2上查看BGP邻居关系建立情况。 

 

 可以看到,R1与R4,R2与R4的EBGP邻居关系已经成功建立,R1,R2,R3的IBGP邻居关系也已经成功建立,接下来查看R1,R2,R3的BGP路由表。

 

 

可以看到,在R3的 BGP 路由表中,去往10.0.44.44/32和10.0.55.55/32网络的路由条目各有两条,但是最终R3优选的都是下一跳为10.0.1.1的路由。这两条 BGP 路由信息的下一跳不同,但路由信息首选值 PrefVal 、本地优先级 LocPrf 、路由生成方式、 AS _ Path 属性、 Origin 属性、 MED 属性、 BGP 对等体类型( IBGP 邻居或 EBGP 邻居)等都是相同的,所以最终 BGP 选择了 Router - ID 较小的路由器R1发布的路由作为最佳路由。 RI 和R2的 BGP 路由表中,去往10.0.44.44/32和10.0.55.55/32网络的路由也各有两条,但是最终优选的都是下一跳为10.0.4.4的路由。这两条 BGP 路由信息的下一跳不同,但路由信息首选值 PrefVal 、本地优先级 LocPrf 、路由生成方式、 AS _ Path 属性、 Origin 属性、 MED 属性等都是相同的,但是 BGP 对等体类型不同,所以最终R1和R2都选择了从 EBGP 邻居R4那里接收到的路由作为最佳路由。另外,无论是通过 EBGP 邻居还是 IBGP 邻居学习到的 BGP 路由条目,在 BGP 路由表中 PrefVal 都显示为缺省值0。 

 3.修改Preferred Value

目前,R3去往网络10.0.44.44/32和10.0.55.55/32的最佳下一跳都为10.0.1.1,即R1。我们可以在R3上使用 tracert 命令验证从10.0.33.33/32去往10.0.44.44/32和10.0.55.55/32的报文所经过的路径。

 可以看到,R3的确是是通过R1去往AS 200的,R2没有分担任何流量。接下来在R3上进行Preferred Value值的修改,使得R2分担从R3去往10.0.55.55/32的流量。 

[r3]ip ip-prefix 1 index 10 permit 10.0.55.55 32
[r3]route-policy 1 permit node 10
[r3-route-policy]if-match ip-prefix 1
[r3-route-policy]apply preferred-value 100

 使用命令route-policy 1 permit node 20 允许其他路由不做修改而被接收。

[r3]route-policy 1 permit node 20 

BGP视图下调用路由策略。

[r3-route-policy]bgp 100
[r3-bgp]peer 10.0.2.2 route-policy 1 import 

上述配置完成后,查看R3的BGP路由表。

可以发现, 现在R3的路由表中去往10.0.55.55/32的优选下一跳为10.0.2.2,即R2,Prefval的值为100,而去往10.0.44.44/32,的优选下一跳仍为10.0.1.1,即R1。使用tracert命令测试报文转发的路径。

 可以看到,R3的Loopback1接口发送数据去往10.0.55.55时,下一跳路由器为10.0.2.2,即R2,而发送数据去往10.0.44.44时,下一跳路由器为10.0.1.1,即R1,这样便达到了流量分担的目的。 

在R1和R2上查看BGP路由表。

<r1>display bgp routing-table

 BGP Local router ID is 10.0.1.1 
 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

 *>i  10.0.33.33/32      10.0.3.3        0          100        0      i
 *>   10.0.44.44/32      10.0.4.4        0                     0      200i
 * i                     10.0.2.2        0          100        0      200i
 *>   10.0.55.55/32      10.0.4.4        0                     0      200i
 * i                     10.0.2.2        0          100        0      200i

<r2>display bgp routing-t

 BGP Local router ID is 10.0.2.2 
 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

 *>i  10.0.33.33/32      10.0.3.3        0          100        0      i
 *>   10.0.44.44/32      10.0.4.4        0                     0      200i
 * i                     10.0.1.1        0          100        0      200i
 *>   10.0.55.55/32      10.0.4.4        0                     0      200i
 * i                     10.0.1.1        0          100        0      200i

可以看到,R1和R2的BGP路由表在修改了R3上的Preferred Value值之后没有发生变化,说明了Preferred Value值只是作为本地路由器用来选择最佳BGP路由之用,并不会传递给任何BGP邻居。

二:BGP路径选择-Local Preference

原理概述:

       当一台 BGP 路由器中存在多条去往同一目标网络的 BGP 路由时, BGP 协议会对这些 BGP 路由的属性进行比较,以确定去往该目标网络的最优 BGP 路由。 BGP 首先比较的是路由信息的首选值( PrefVal ),如果 PrefVal 相同,就会比较本地优先级 Local Preference ,缩写为 LocPrf )属性。
         Local Preference 属性可以用于选择流量离开 AS 时的最佳路由,也就是控制流量从哪个出口离开 AS 。当 BGP 路由器通过不同的 IBGP 对等体接收到目标网络相同但下一跳不同的多条路由时,将优先选择 Local Preference 值较高的路由。
       Local Preference 只在 IBGP 对等体之间进行通告, EBGP 对等体之间传递 BGP 路由时,不携带 Local Preference 属性。默认情况下,本地使用 network 命令通告或者 import 命令引入到 BGP 中的路由的 Local Preference 值为空。当从 IBGP 对等体接收到的路由的 Local Preference 值为空时,接收路由器会使用100作为这条路由的 Local Preference 默认值,当从 IBGP 对等体接收到的路由的 Local Preference 值不为空时,接收路由器默认不做修改
       Local Preference 值是一个32比特的整数,取值范围为0~4294967295。

实验目的

理解 Local Preference 属性的概念与作用
掌握修改 Local Preference 属性的方法

实验内容

如实验拓扑所示。 AS 100为运营商网络, AS 200为公司网络,R1的 Loopback 0与 Loopback 1接口用来分别模拟向公司提供服务的服务器 A 和服务器 B ,R4的 Loopback 1接口用来模拟公司的内部网络。R1属于 AS 100,R2、R3和R4属于 AS 200,R1与R2和R3采用直连物理接口建立 EBGP 邻居关系,R2、R3、R4之间采用各自的 Loopback 0接口来建立 IBGP 邻居关系,同时R2、R3、R4运行 OSPF ;通过修改 Local Preference 值,使得公司的内部网络访问服务器 A 时将使用R2作为出口,访问服务器 B 时将使用R3作为出口。

实验拓扑

1.基本配置

根据拓扑图进行相应的基本配置,并用ping命令检测R1与R2之间的连通性。

其余直连网段的连通性测试过程在此省略。 

2.完成OSPF和BGP协议的基本配置。

对AS 200中的路由器进行OSPF协议配置,所有路由器都属于区域0,且每台路由器都属于自己的LoopBack 0接口的IP地址作为Router-ID。

[r2]ospf 1 router-id 10.0.2.2
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]
[r2-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255
[r2-ospf-1-area-0.0.0.0]network 10.0.2.2 0.0.0.0

 

[r3]ospf 1 router-id 10.0.3.3
[r3-ospf-1]area 0
[r3-ospf-1-area-0.0.0.0]network 10.0.34.0 0.0.0.255
[r3-ospf-1-area-0.0.0.0]network 10.0.3.3 0.0.0.0

 

[r4]ospf 1 router-id 10.0.4.4
[r4-ospf-1]area 0
[r4-ospf-1-area-0.0.0.0]network 10.0.24.0 0.0.0.255
[r4-ospf-1-area-0.0.0.0]network 10.0.34.0 0.0.0.255
[r4-ospf-1-area-0.0.0.0]network 10.0.4.4 0.0.0.0

配置完成后,在R4上使用display ospf peer命令查看ospf邻居关系。 

 

可以看到,邻居状态均为FULL,说明R4与R2和R3已经成功建立了OSPF邻接关系。

接下来在R1,R2,R3,R4上配置BGP协议。

[r1]bgp 100
[r1-bgp]router-id 10.0.1.1
[r1-bgp]peer 10.0.12.2 as-number 200
[r1-bgp]peer 10.0.13.3 as-number 200
[r1-bgp]network 10.0.1.1 32
[r1-bgp]network 10.0.100.2 32

[r2]bgp 200
[r2-bgp]router-id 10.0.2.2
[r2-bgp]peer 10.0.12.1 as-number 100
[r2-bgp]peer 10.0.3.3 as-number 200
[r2-bgp]peer 10.0.3.3 connect-interface loopback 0
[r2-bgp]peer 10.0.3.3 next-hop-local
[r2-bgp]peer 10.0.4.4 as-number 200
[r2-bgp]peer 10.0.4.4 connect-interface loopback 0
[r2-bgp]peer 10.0.4.4 next-hop-local

[r3]bgp 200
[r3-bgp]router-id 10.0.3.3
[r3-bgp]peer 10.0.13.1 as-number 100
[r3-bgp]peer 10.0.2.2 as-number 200
[r3-bgp]peer 10.0.2.2 connect-interface loopback 0
[r3-bgp]peer 10.0.2.2 next-hop-local
[r3-bgp]peer 10.0.4.4 as-number 200
[r3-bgp]peer 10.0.4.4 connect-interface loopback 0
[r3-bgp]peer 10.0.4.4 next-hop-local

[r4]bgp 200
[r4-bgp]router-id 10.0.4.4
[r4-bgp]peer 10.0.2.2 as-number 200
[r4-bgp]peer 10.0.2.2 connect-interface loopback 0
[r4-bgp]peer 10.0.3.3 as-number 200
[r4-bgp]peer 10.0.3.3 connect-interface loopback 0
[r4-bgp]network 10.0.100.4 32

配置完成后,在R1上使用display bgp peer命令查看BGP邻居关系。

 

可以看到,邻居关系均为Established,表明R1与R2和R3已经成功过建立了EBGP邻居关系。R2,R3,R4的IBGP邻居关系在此省略。 

3.观察BGP路由信息的Local Preference属性。

在R4上查看BGP路由表。

可以看到,R4的 BGP 路由表中存在两条去往10.0.1.1/32网络的路由,下一跳分别为R2与R3,以及两条去往10.0.100.2/32网络的路由,下一跳还是分别为R2与R3,这些路由信息的 Local Preference 值均为默认值100。R4自己通告的10.0.100.4/32网络的路由信息的 Local Preference 值为空。

在R2上查看BGP路由表。 

        可以看到,R2从 EBGP 对等体R1接收到的10.0.1.1/32的路由信息的 Local Preference 值为空,而从 IBGP 对等体R3接收到的10.0.1.1/32的路由信息的 Local Preference 值为100。
        由此可见, Local Preference 属性不会通告给 EBGP 对等体,仅在 AS 内传递时才会通告。当从 IBGP 对等体接收到的路由的 Local Preference 值为空时,接收路由器会使用100作为这条路由的 Local Preference 默认值。

4.修改Local Preference值

从上面的实验内容已经看到,当从 IBGP 对等体接收到的路由的 Local Preference 值为空时,接收路由器会使用100作为这条路由的 Local Preference 默认值。接下来,我们将对 Local Preference 值进行修改,使得公司的内部网络发送数据到服务器 B 时以R3为出口。
先在R3上使用 display default-parameter bgp 命令查看 BGP 协议的默认参数。

 

可以看到,R3上 BGP 的 Local Preference 默认值为100。

在R4上查看 BGP 路由表。 

       可以看到,对于目的网络10.0.100.2/32,R4选择了下一跳为10.0.2.2的路由作为最佳路由,这是由于R4在对下一跳为10.0.2.2与10.0.3.3的路由信息进行比较时,二者的 Preferred Value 属性、 Local Preference 属性、路由生成方式、 AS _ Path 属性、 Origin 属性、 MED 属性、 BGP 对等体类型等都是相同的,于是R4最终选择了 Router-ID 较小的路由器R2发布的路由作为最佳路由。
       为了使公司内部网络去往10.0.100.2/32的数据使用R3作为出口,可以在R3的 BGP 视图下使用 default local-preference 命令将R3的 BGP 默认 Local Preference 值修改为200。

[r3]bgp 200
[r3-bgp]default local-preference 200

修改之后,在R4和R2上查看BGP路由表。

       从上面两个 BGP 路由表可以看到,R4去往10.0.1.1/32与10.0.100.2/32网络时,使用的是下一跳为R3(10.0.3.3)的路由, Local Preference 值为200;R4的 BGP 路由表中不再有下一跳为R2(10.0.2.2)的去往10.0.1.1/32与10.0.100.2/32的路由。
       在R3上修改了 Local Preference 值后,R1把关于10.0.1.1/32与10.0.100.2/32的路由传递给 EBGP 对等体R2时, Local Preference 值为空,R3把关于10.0.1.1/32与10.0.100.2/32的路由传递给 IBGP 对等体R2时, Local Preference 值为200,于是R2会选择下一跳为R3(10.0.3.3)的路由作为自己去往10.0.1.1/32与10.0.100.2/32的最佳路由。 BGP 协议在向 BGP 对等体传递路由时只传递最佳路由,同时,由于 IBGP 的防环机制, BGP 路由器不会将从 IBGP 对等体那里学到的路由再传递给别的 IBGP 对等体,因此,R2就不会再向R4传递关于10.0.1.1/32与10.0.100.2/32的路由了,最后的结果是,R4的 BGP 路由表中最终只存在去往10.0.1.1/32与10.0.100.2/32的下一跳为R3(10.0.3.3)的路由。
       现在,在R4上使用 tracert 命令验证从10.0.100.4/32去往10.0.100.2/32的报文所经过的路径。

 可以看到,公司内部网络发送数据到服务器 B (10.0.100.2)时是以R3为出口的。

5.使用 Route - Policy 修改 Local Preference 值

在R4上使用 tracert 命令验证从10.0.100.4/32去往10.0.1.1/32的报文所经过的路径。

可以看到,公司内部网络发送数据到服务器 A 时也是以R3为出口的。为实现流量分担,现在使用 Route - Policy 对特定路由的 Local Preference 值进行修改,从而使得公司内部网络去往服务器 A (10.0.1.1)的报文选择R2为出口。

[r2]ip ip-prefix 1 permit 10.0.1.1 32
[r2]route-policy 1 permit node 10

[r2-route-policy]if-match ip-prefix 1
[r2-route-policy]apply local-preference 500 

使用命令route-policy 1 permit node 20允许其他路由不做修改被接收。

 [r2]route-policy 1 permit node 20

在 BGP 视图下使用 peer 10.0.12.1 route-policy 1 import 命令在R2接收R1所传递的路由信息的

import方向上调用路由策略。  

[r2]bgp 200
[r2-bgp]peer 10.0.12.1 route-policy 1 import

配置完成后,再R2上查看BGP路由表。

 可以看到,在R2路由表中,对于目的网络10.0.1.1/32,只存在一条由 EBGP 对等体R1发送的、 Local Preference 值被R2修改为500的路由。

在R4上查看BGP路由表。

可以看到,目前R4去往10.0.1.1/32和10.0.100.2/32的路由信息都只有一条,下一跳分别为R2(10.0.2.2)和R3(10.0.3.3)。R4在接收从 IBGP 对等体R2发来的关于10.0.1.1/32这条路由时,其 Local Preference 值未做任何修改,保持为500。 

在R4上使用 tracert 命令验证从10.0.100.4/32去往10.0.1.1/32的报文所经过的路径。

可以看到,现在公司内部网络去往服务器 A 的报文以R2为出口。至此,流量分担的网络需求得到了实现。 

 

  • 21
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值