BGP选路之Preferred value

原理概述

当一台BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定去往该目标网络的最优BGP路由,然后将该最优BGP路由与去往同一目标网络的其他协议路由进行比较,从而决定是否将该最优 BGP路由放进路由表中。注意,路由器最终是根据路由表进行实际报文转发的。在对BGP路由属性进行比较时,BGP会遵循一定的先后次序进行比较,直到确定出一条最优路由为止。在 BGP路由属性的比较过程中,首先要比较的就是路由信息首选值PreferredValue,也简称为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协议,并通过各自的Loopback 0接口建立BGP邻居关系。R4通告自己的Loopback 1和Loopback 2两个接口所在的网络到BGP进程中,R3通告自己的Loopback 1接口所在的网络到BGP进程中。最后,通过修改Preferred Value的值,使得R3的 Loopback 1接口去往R4的 Loopback 1和Loopback 2接口的报文分别通过R1与R2讲行转发,从而实现流量分担,并互为备份。

边界路由器从EBGP的对等体中学习到的路由,在传递的过程中下一跳地址为边界路由器对等体的出接口地址。导致IBGP中除了此边界路由器外,其他路由器学到的此路由的下一跳均为边界路由器对等体的出接口地址;只有配置了next-hop-local后,其他路由器学到的此路由的下一跳改编为边界路由器的ip地址

1、基本配置
R1:
sys
sysname R1
int loop 0
ip add 10.0.1.1 32
int g0/0/0
ip add 10.0.13.1 24
int g0/0/1
ip add 10.0.14.1 24
q
rip 1
 undo summary
 version 2
 network 10.0.0.0
ip route-static 10.0.4.4 255.255.255.255 10.0.14.4
bgp 100
 router-id 10.0.1.1
 peer 10.0.2.2 as-number 100
 peer 10.0.2.2 connect-interface LoopBack0
 peer 10.0.3.3 as-number 100
 peer 10.0.3.3 connect-interface LoopBack0
 peer 10.0.4.4 as-number 200
 peer 10.0.4.4 ebgp-max-hop 255
 peer 10.0.4.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 10.0.2.2 enable
  peer 10.0.2.2 next-hop-local
  peer 10.0.3.3 enable
  peer 10.0.3.3 next-hop-local
  peer 10.0.4.4 enable
#

R2:
sys
sysname R2
int loop 0
ip add 10.0.2.2 32
int g0/0/1
ip add 10.0.23.2 24
int g0/0/0
ip add 10.0.24.2 24
q
rip 1
 undo summary
 version 2
 network 10.0.0.0
ip route-static 10.0.4.4 255.255.255.255 10.0.24.4

bgp 100
 peer 10.0.1.1 as-number 100
 peer 10.0.1.1 connect-interface LoopBack0
 peer 10.0.3.3 as-number 100
 peer 10.0.3.3 connect-interface LoopBack0
 peer 10.0.4.4 as-number 200
 peer 10.0.4.4 ebgp-max-hop 255
 peer 10.0.4.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 10.0.1.1 enable
  peer 10.0.1.1 next-hop-local
  peer 10.0.3.3 enable
  peer 10.0.3.3 next-hop-local
  peer 10.0.4.4 enable

R3:
sys
sysname R3
int loop 0
ip add 10.0.3.3 32
int loop 1
ip add 10.0.33.33 32
int g0/0/0
ip add 10.0.13.3 24
int g0/0/1
ip add 10.0.23.3 24
q
rip 1
 undo summary
 version 2
 network 10.0.0.0
bgp 100
 router-id 10.0.3.3
 peer 10.0.1.1 as-number 100
 peer 10.0.1.1 connect-interface LoopBack0
 peer 10.0.2.2 as-number 100
 peer 10.0.2.2 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  network 10.0.33.33 255.255.255.255
  peer 10.0.1.1 enable
  peer 10.0.2.2 enable

R4:
sys
sysname R4
int loop 0
ip add 10.0.4.4 32
int loop 1
ip add 10.0.44.44 32
int loop 2
ip add 10.0.55.55 32
int g0/0/0
ip add 10.0.14.4 24
int g0/0/1
ip add 10.0.24.4 24
q
bgp 200
 peer 10.0.1.1 as-number 100
 peer 10.0.1.1 ebgp-max-hop 255
 peer 10.0.1.1 connect-interface LoopBack0
 peer 10.0.2.2 as-number 100
 peer 10.0.2.2 ebgp-max-hop 255
 peer 10.0.2.2 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  network 10.0.44.44 255.255.255.255
  network 10.0.55.55 255.255.255.255
  peer 10.0.1.1 enable
  peer 10.0.2.2 enable
#
ip route-static 10.0.1.1 255.255.255.255 10.0.14.1
ip route-static 10.0.2.2 255.255.255.255 10.0.14.1

验证一下配置的情况

可以看到,在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发布的路由作为最佳路由。R1和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。

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

route-policy 1 permit node 10

if-match ip-prefix 1

apply preferred-value 100

route-policy 1 permit node 20

ip ip-prefix 1 index 10 permit 10.0.55.55 32

bgp 100

peer 10.0.2.2 route-policy 1 import

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

相关推荐
小松学前端2 小时前
第六章 7.0 LinkList
java·开发语言·网络
城南vision2 小时前
计算机网络——TCP篇
网络·tcp/ip·计算机网络
Ciderw2 小时前
块存储、文件存储和对象存储详细介绍
网络·数据库·nvme·对象存储·存储·块存储·文件存储
Tony聊跨境3 小时前
独立站SEO类型及优化:来检查这些方面你有没有落下
网络·人工智能·tcp/ip·ip
2403_875736874 小时前
道品科技智慧农业中的自动气象检测站
网络·人工智能·智慧城市
Tassel_YUE6 小时前
网络自动化04:python实现ACL匹配信息(主机与主机信息)
网络·python·自动化
Diamond技术流6 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
Spring_java_gg6 小时前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
方方怪7 小时前
与IP网络规划相关的知识点
服务器·网络·tcp/ip