当前位置: 首页 > article >正文

BGP分解实验·12——配置路由反射器

当一个AS包含多个iBGP对等体时,路由反射器(Route-Reflector)非常有用,因为相对于iBGP路由反射器指定的客户端只需要和路由反射器建立邻居关系,从而降低了iBGP全互连的连接数量。路由反射器(RR)和它指定的客户端合称为一个簇。RR打破了iBGP水平分割的原则,RR能够将来自一个iBGP对等体的路由传递给另一个iBGP对等体。

RR的传递规则有三条:

  • 规则1——如果NLRI是从非客户端的iBGP邻居传递过来的条目,RR只将它反射给客户端;(RR不会传递从一个非客户端收到的NLRI到另一个非客户端——非非不传)
  • 规则2——如果NLRI是从所指定客户端传递过来条目,RR会将此条目反射给所有客户端与非客户端;(返回起始发端路由器时会被源起始路由器拒绝)
  • 规则3——如果NLRI是从eBGP邻居传递过来的条目,RR会将此条目反射给所有的客户端和非客户端。

解释RR传递规则的可视化描述如下图:

根据以上解释,实验拓扑如下所示:

在配置上为了方便查看使R3用模板组的方式指定R5为客户端,其他直接手动指定的邻居建立并未指定成为客户端。

R1的基础配置如下:

hostname R1
!
interface Loopback0
 ip address 192.168.1.1 255.255.255.255
!
interface Ethernet0/0
 ip address 10.1.13.1 255.255.255.0
 no sh
!
interface Ethernet0/1
 ip address 100.64.12.1 255.255.255.248
 no sh
!
router eigrp 5
 network 0.0.0.0
!
router bgp 135
 bgp router-id 1.1.1.1
 network 192.168.1.1 mask 255.255.255.255
 neighbor R1R3 peer-group
 neighbor R1R3 remote-as 135
 neighbor R1R3 update-source Loopback0
 neighbor 100.64.12.2 remote-as 200
 neighbor 192.168.3.3 peer-group R1R3
!
end

R2的基础配置如下:

hostname R2
!
interface Loopback0
 ip address 172.16.20.20 255.255.255.255
!
interface Ethernet0/0
 ip address 100.64.23.2 255.255.255.248
 no sh
!
router bgp 200
 bgp router-id 2.2.2.2
 network 172.16.20.20 mask 255.255.255.255
 neighbor 100.64.23.3 remote-as 135
!

R3的基础配置如下:

hostname R3
!
interface Loopback0
 ip address 192.168.3.3 255.255.255.255
!
interface Ethernet0/0
 ip address 10.1.13.3 255.255.255.0
 no sh
!
interface Ethernet0/1
 ip address 10.1.35.3 255.255.255.0
 no sh
!
interface Ethernet0/2
 ip address 100.64.23.3 255.255.255.248
 no sh
!
interface Ethernet0/3
 ip address 10.1.34.3 255.255.255.0
 no sh
!
router eigrp 5
 network 0.0.0.0
!
router bgp 135
 bgp router-id 3.3.3.3
 bgp listen range 192.168.5.0/24 peer-group RR
 network 192.168.3.3 mask 255.255.255.255
 neighbor RR peer-group
 neighbor RR remote-as 135
 neighbor RR update-source Loopback0
 neighbor RR route-reflector-client
 neighbor 192.168.1.1 remote-as 135
 neighbor 192.168.1.1 update-source Loopback0
 neighbor 192.168.4.4 remote-as 135
 neighbor 192.168.4.4 update-source Loopback0
 neighbor 100.64.23.2 remote-as 200
!
end

R4的基础配置如下:

hostname R4
!
interface Loopback0
 ip address 192.168.4.4 255.255.255.255
!
interface Ethernet0/0
 ip address 10.1.34.4 255.255.255.0
 no sh
!
router eigrp 5
 network 0.0.0.0
!
router bgp 135
 network 192.168.4.4 mask 255.255.255.255
 neighbor 192.168.3.3 remote-as 135
 neighbor 192.168.3.3 update-source Loopback0
!
end

R5的基础配置如下:

hostname R5
!
interface Loopback0
 ip address 192.168.5.5 255.255.255.255
!
interface Ethernet0/0
 ip address 10.1.35.5 255.255.255.0
 no sh
!
interface Ethernet0/1
 ip address 100.80.56.5 255.255.255.248
 no sh
!
router eigrp 5
 network 0.0.0.0
!
router bgp 135
 network 192.168.5.5 mask 255.255.255.255
 neighbor R5R3 peer-group
 neighbor R5R3 remote-as 135
 neighbor R5R3 update-source Loopback0
 neighbor R5R3 next-hop-self
 neighbor 192.168.3.3 peer-group R5R3
 neighbor 100.80.56.6 remote-as 400
!
end

R6的基础配置如下:

hostname R6
!
interface Loopback0
 ip address 172.18.60.60 255.255.255.255
!
interface Ethernet0/0
 ip address 100.80.56.6 255.255.255.248
 no sh
!
router bgp 400
 bgp router-id 4.4.4.4
 network 172.18.60.60 mask 255.255.255.255
 neighbor 100.80.56.5 remote-as 135
!

以上配置只是在R3指定的RRC(Route-Reflector-Client)为R5,R1和R4在ASN135内未被指定为RRC,所以R1和R4互不传递NLRI(路由);规则1,非非不传。

以上可以看到R1中没有R4通告出来的192.168.4.4/32的网络,同样在R4的BGP表中也看不到R1通告的192.168.1.1/32的网络。其他都可以相互直接通告或转接通告。

结合以上,可以看到规则2和规则3。(RR不能被具体配置,只要在一台路由器指定其他邻居为RRC,则自己自动成为这个RRC的RR)使R3成为RR并指定R5为其客户端,可以看到以下BGP表中,未被指定RRC的非RR客户端R1和R4,都会在BGP表中加载192.168.5.5/32的路由,虽然有r标记的装表失败,那因为有更低的管理距离的EIGRP存在导致的;eBGP传递过来的NLRI与通过RR和其指定的RRC转接传递的NLRI都会在其他路由器的BGP表中加载。只有两个iBGP中的非RRC没有相互传递。

在RR路由器R3上查看R1并非被指定为RRC,由于以上查看和配置所知,R4也非RRC,所以R1不会收到R4的NLRI,所以对等体组成员不会有R4,一共5个;而在R3查看指定的RRC的R5可以看到邻居BGP的RRC标识和包括自己在内一共有6个组成员。

可以看到2个eBGP的对等体中,R2的172.16.20.20是直接连接到RR上,而R6的172.18.60.60是通过RRC收到该路由而传递过来的。

现在为了查看通过RRC转接的eBGP路由信息的路径过程,现在在R3上再指定R1为RRC,在R3上添加配置如下:

router bgp 135
 neighbor 192.168.1.1 route-reflector-client

以上查看信息可以知道在本AS内,BGP表中的172.18.60.60/32的起源器是R5,通过簇列表R3到达。当一条BGP路由被反射器传递的时候,路由反射器会为其增加两个属性

  • Originator:是由路由反射器客户端生产,是本AS内路由起源器的路由器ID。(用于防止该路由被反射回起源器)
  • Cluster list:一个AS内的每个簇必须用一个唯一的4字节的簇ID来标识,如果簇内只有一个RR,那么簇ID就是RR的路由器ID。(用于在多个反射簇之间防止反射传递环路)

当RR收到一条NLRI更新时,它将检查簇列表,如果发现在列表中有自己的ID,就知道出现了路由环路,从而可以有效避免环路。

当R1配置成为R3的RRC后,可以看到原本在R1的BGP表没的另一个非RRC即R4的路由条目已经可以和当前已成为RRC的R1建立表项。同样R4的表项也会出现R1的条目。(当前这个iBGP的AS内只有R4是非RRC)

默认情况下,BGP会把本地优选的路由更新给BGP对等体。


http://www.kler.cn/a/518937.html

相关文章:

  • Linux的权限和一些shell原理
  • JS面相对象小案例:自定义安全数组
  • location的使用规则
  • poi在word中打开本地文件
  • 引领产品创新: 2025 年 PM 效能倍增法则
  • C++的类Class
  • ML基础2-python中的可视化1:matplotlib
  • 汽车定速巡航
  • 2025数学建模美赛|E题成品论文
  • Mono里运行C#脚本35—加载C#语言基类的过程
  • 高阶C语言|数组名的深度解析(数组名结合sizeof与strlen的详解)
  • impact 影响分析学习笔记(一)
  • 【后端面试总结】mysql的join,left join,right join,full join分别是什么意思
  • maven 全局配置
  • 【Python使用】嘿马python高级进阶全体系教程第11篇:静态Web服务器-面向对象开发,1. 以面向对象的方式开发静态W
  • 79,【3】BUUCTF WEB [GXYCTF2019]BabysqliV3.0
  • mongoDB常见指令
  • Go中new和make的区别对比
  • 机器学习的通俗解释
  • Node.js下载安装及环境配置教程 (详细版)
  • 服务器中的流量主要是指什么?
  • RPC是什么?和HTTP区别?
  • Python 对列表进行排序的 5 种方法
  • C++17 新增属性详解
  • Unity在WebGL中拍照和录视频
  • 通过Python编程语言实现“机器学习”小项目教程案例