BGP路径选择-local preference(学习笔记+配置命令)

BGP路径选择-local preference(本地优先级)

  • 一,原理概述
  • 二,实验
    • (一)主要目的
    • (二)实验注意事项
    • (三)实验内容
    • (四)实验拓扑
    • (五)配置
      • 1,基本配置
      • 2,完成OSPF和BGP协议的基本配置
        • 1)设置AS200的路由配置OSPF协议,所有路由器都属于区域0,并使用loopback 接口为Router-id
        • 2)在R1,R2,R3,R4上配置BGP
        • 3)观察BGP路由信息的Local Preference属性
      • 4,修改local preference值
      • 5,使用Route-Policy修改local preference值

一,原理概述

1,当一台BGP路由中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定去往该目标网络的最优BGP路由。BGP首先比较路由信息首选值(prefval),若prefVal相同,就会比较本地优先级(local preference)属性。
2,local preference选择流量离开AS(自治系统)时的最佳路由。当BGP通过不同的IBGP(运行在同一AS的边界网关协议)对等体接收到目标网络相同但下一跳不同的多条路由时,将优先选择local preference 值较高的路由。
3,EBGP对等体之间传递BGP路由时不携带local preference 属性。只在IBGP对等体之间进行通告。默认情况下,本地使用network命令通告或import命令引入到BGP中的路由的local preference 值为空。当从IBGP对等体接收到的路由的local preference值为空时,接收路由器会使用100作为这条路有的local preference 默认值,当从IBGP 对等体接收到的路由的local preference 值不为空时,接收路由器默认不做修改。
4,local preference 值为32比特的整数,范围为0~4294967295.

二,实验

(一)主要目的

1,理解local preference 属性的概念与作用
2,掌握修改local preference 属性的方法

(二)实验注意事项

1.BGP邻居关系状态为Established表示已建立
2.Local Preference为公认任意属性,所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况来决定是否添加到Update消息中
3.Local Preference值数值高的优先,默认值100
4.Local Preference值只通告IBGP邻居,不通告EBGP邻居

(三)实验内容

1.BGP路由配置
2.BGP路径选择
3.Local Preference控制BGP路选
BGP路径选择-local preference(学习笔记+配置命令)_第1张图片

(四)实验拓扑

BGP路径选择-local preference(学习笔记+配置命令)_第2张图片

(五)配置

1,基本配置

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

1)设置AS200的路由配置OSPF协议,所有路由器都属于区域0,并使用loopback 接口为Router-id

[R2]ospf 1 router-id 10.0.2.2
[R2-ospf-1]area 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.4.4 0.0.0.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邻居关系
BGP路径选择-local preference(学习笔记+配置命令)_第3张图片
看到都为FULL,表示邻接关系建立好了

2)在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

使用display bgp peer命令在R1上查看BGP邻居关系
BGP路径选择-local preference(学习笔记+配置命令)_第4张图片
邻居状态为Established,说明R1与R2,R3建立了EBGP邻居关系。
BGP路径选择-local preference(学习笔记+配置命令)_第5张图片
说明R2,R3,R4的IBGP邻居关系建立

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

在R4上观察BGP路由表
BGP路径选择-local preference(学习笔记+配置命令)_第6张图片
可以看到,R4BGP路由表有两条去往10.0.1.1/32和10.0.100.2/32路由,下一跳都为R2和R3,这些路由信息的local preference 值均为默认100,R4通告的10.0.100.4/32的LocPrf值为空。
在R2上查看BGP路由表
BGP路径选择-local preference(学习笔记+配置命令)_第7张图片
可以看到,R2从EBGP对等体R1接收到的10.0.1.1/32的路由信息的LocPrf值为空,而从IBGP对等体R3接收到的10.0.1.1/32路由信息的LocPrf值为100.
说明load preference 属性不会通告给EBGP对等体,仅在AS内传递时会通告,当IBGP对等体接收到的路由local preference 值为空时,接受路由器会使用100作为这条路由的local preference默认值。

4,修改local preference值

可以知道,在IBGP对等体中接收到的路由的LocPrf值为空时,取默认值100。现在修改local preference 值,使得公司内部网络发送数据到服务器B时以R3为出口。
在R3上使用display default-parameter bgp命令查看BGP协议的默认参数。
BGP路径选择-local preference(学习笔记+配置命令)_第8张图片
可以看到,R3的local preference值为100
在R4上查看BGP路由表
BGP路径选择-local preference(学习笔记+配置命令)_第9张图片
对于目的网络10.0.100.2/32 ,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上查看BGP路由表
BGP路径选择-local preference(学习笔记+配置命令)_第10张图片
去往10.0.100.2/32的下一跳变为了R3
BGP路径选择-local preference(学习笔记+配置命令)_第11张图片
在R2上查看去往10.0.100.2/32的下一跳也是R3,并切local preference值为200
在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,于是选择下一跳为R3的路由作为自己去往10.0.1.1和10.0.100.2的最佳路由。
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的路由。
使用tracert验证10.0.100.4到10.0.100.2的路径
BGP路径选择-local preference(学习笔记+配置命令)_第12张图片

5,使用Route-Policy修改local preference值

tracert查看R4去往10.0.1.1的路径
BGP路径选择-local preference(学习笔记+配置命令)_第13张图片
现在知道R4发送数据到服务器A也是以R3为出口,为了实现流量分担,使用router-policy对特定路由的local preference值进行修改,时公司内部网络去往服务器A的报文选择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路由表
BGP路径选择-local preference(学习笔记+配置命令)_第14张图片
可以看到,在R2上去往10.0.1.1只有一条EBGP对等体R1发送的,local preference值为500的路由。
在R4上查看BGP路由表
BGP路径选择-local preference(学习笔记+配置命令)_第15张图片
可以看到,R4去往10.0.1.1/32和10.0.100.2/32都只有一条下一跳,分别为10.0.2.2和10.0.3.3.R4在接收的对等体R2发来的关于10.0.1.1/23这条路由时,其local preference值未做修改,保持为500
在R4使用tracert命令验证从10.0.100.4/32到10.0.1.1/32的路径。
BGP路径选择-local preference(学习笔记+配置命令)_第16张图片
可以看到,现在公司内部去往服务器A的报文以R2为出口,实现了网络的流量分担需求。

你可能感兴趣的:(华为HCIA-R&S)