BGP 路由反射器

转载:BGP 路由反射器

 

实验介绍: /

原理概述

缺省情况下,路由器从它的一个 IBGP 对等体那里接收到的路由条目不会被该路由器再传递给其他IBGP对等体,这个原则称为BGP水平分割

原则,该原则的根本作用是防止 AS 内部的 BGP 路由环路。因此,在 AS内部,一般需要每台路由器都运行 BGP协议并建立全互联的IBGP对等体关系,这样才能避免BGP路由黑洞等问题。对于有n个BGP路由器的AS来说,全互联的IBGP对等体关系将有nx(n-1)÷2个。对于大型AS来说,数量众多的IBGP对等体关系将导致配置和维护的工作量都非常大,且人为出错的可能性也随之增加。

解决上述问题的方法之一就是使用 BGP 路由反射器。BGP 路由反射器的使用,可以在很大程度上减少大型AS中IBGP对等体关系的数量并简化相应的配置和维护工作。BGP路由反射器是AS内部IBGP网络环境中的一种特殊角色,其他的角色还有反射器的客户端和非客户端。一个反射器和它所有的客户端一起被统称为一个Cluster;客户端与它的反射器建立的是 IBGP 对等体关系;客户端之间无需建立 IBGP 对等体关系;非客户端和反射器建立的是 IBGP 对等体关系;非客户端之间需要建立全互连的IBGP 对等体关系;非客户端和客户端之间无需建立IBGP 对等体关系;一个 AS 内部可以有多个Cluster;一个Cluster中可以有多台反射器。另外,EBGP对等体之间是不存在BGP路由反射器的概念的。

BGP路由反射器在反射路由的时候遵循的原则是:从一个非客户端那里接收到的路由,反射器会将它只传递给所有的客户端;从一个客户端那里接收到的路由,反射器会将它传递给所有其他的客户端以及所有的非客户端;从EBGP对等体那里接收到的路由,反射器会将它传递给所有的客户端和非客户端。

实验目的 /

  • 理解BGP 路由反射器的应用场景

  • 理解BGP 路由反射器的工作原理

  • 掌握BGP 路由反射器的基本配置方法

/ 实验介绍 /

实验拓扑如图所示,实验编址如表所示。本实验网络包含了两个AS,两个Cluster。R1、R2、R3属于Cluster1,R4、R5、R6属于Cluster 2,R7 不属于任何Cluster。在AS 100 内部,所有路由器都运行OSPF 协议作为IGP,并将各自的Loopback0接口宣告进OSPF 进程中,使得各路由器可以使用Loopback0接口来建立全互联的IBGP 对等体关系。然后,为了减少配置工作量,决定使用路由反射器,要求是:在Cluster1中,R1为路由反射器,R2和 R3为其客户端;在Cluster2中,R4为路由反射器,R5、R6为其客户端;R7为非客户端;R1与R8为EBGP对等体关系。

实验拓扑 /

实验编址 /

实验配置 /

1、基本配置

[R1]int loop 0
[R1-LoopBack0]ip add 10.0.1.1 32
[R1-LoopBack0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 10.0.12.1 24
[R1-GigabitEthernet0/0/1]int g0/0/2
[R1-GigabitEthernet0/0/2]ip add 10.0.13.1 24
[R1-GigabitEthernet0/0/2]int g0/0/3
[R1-GigabitEthernet0/0/3]ip add 10.0.18.1 24
[R1-GigabitEthernet0/0/3]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 10.0.14.1 24
[R1-GigabitEthernet0/0/0]q
[R1]
[R2]int loop 0
[R2-LoopBack0]ip add 10.0.2.2 32
[R2-LoopBack0]int loop 1
[R2-LoopBack1]ip add 10.0.22.22 32
[R2-LoopBack1]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 10.0.12.2 24
[R2-GigabitEthernet0/0/1]q
[R2]
[R3]int loop 0
[R3-LoopBack0]ip add 10.0.3.3 32
[R3-LoopBack0]int g0/0/2
[R3-GigabitEthernet0/0/2]ip add 10.0.13.3 24
[R3-GigabitEthernet0/0/2]q
[R3]
[R4]int loop 0
[R4-LoopBack0]ip add 10.0.4.4 32
[R4-LoopBack0]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 10.0.14.4 24
[R4-GigabitEthernet0/0/0]int g0/0/1
[R4-GigabitEthernet0/0/1]ip add 10.0.47.4 24
[R4-GigabitEthernet0/0/1]int g0/0/2
[R4-GigabitEthernet0/0/2]ip add 10.0.46.4 24
[R4-GigabitEthernet0/0/2]int g0/0/3
[R4-GigabitEthernet0/0/3]ip add 10.0.45.4 24
[R4-GigabitEthernet0/0/3]q
[R4]
[R5]int loop 0
[R5-LoopBack0]ip add 10.0.5.5 32
[R5-LoopBack0]int g0/0/1
[R5-GigabitEthernet0/0/1]ip add 10.0.45.5 24
[R5-GigabitEthernet0/0/1]q
[R5]
[R6]int loop 0
[R6-LoopBack0]ip add 10.0.6.6 32
[R6-LoopBack0]int g0/0/2
[R6-GigabitEthernet0/0/2]ip add 10.0.46.6 24
[R6-GigabitEthernet0/0/2]q
[R6]
[R7]int loop 0
[R7-LoopBack0]ip add 10.0.7.7 32
[R7-LoopBack0]int g0/0/0
[R7-GigabitEthernet0/0/0]ip add 10.0.47.7 24
[R7-GigabitEthernet0/0/0]q
[R7]
[R8]int loop 0
[R8-LoopBack0]ip add 10.0.8.8 32
[R8-LoopBack0]int g0/0/0
[R8-GigabitEthernet0/0/0]ip add 10.0.18.8 24
[R8-GigabitEthernet0/0/0]q
[R8]

2、配置OSPF路由协议

为了使AS 100内部的路由器之间都能够使用Loopback0接口建立IBGP 对等体关系,需要在每台路由器(R8除外)上配置 OSPF路由协议,并将Loopback0接口通告进OSPF进程。

[R1]ospf 1 router-id 10.0.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.0.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.0.13.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.0.14.0 0.0.0.255[
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.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[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.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 10.0.13.0 0.0.0.255
[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.14.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 10.0.45.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 10.0.46.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 10.0.47.0 0.0.0.255
[R5]ospf 1 router-id 10.0.5.5
[R5-ospf-1]area 0
[R5-ospf-1-area-0.0.0.0]network 10.0.5.5 0.0.0.0
[R5-ospf-1-area-0.0.0.0]network 10.0.45.0 0.0.0.255
[R6]ospf 1 router-id 10.0.6.6
[R6-ospf-1]area 0
[R6-ospf-1-area-0.0.0.0]network 10.0.6.6 0.0.0.0
[R6-ospf-1-area-0.0.0.0]network 10.0.46.0 0.0.0.255
[R7]ospf 1 router-id 10.0.7.7
[R7-ospf-1]area 0
[R7-ospf-1-area-0.0.0.0]network 10.0.7.7 0.0.0.0
[R7-ospf-1-area-0.0.0.0]network 10.0.47.0 0.0.0.255

3、配置BGP路由协议

配置BGP 路由协议,在AS100内部的每台路由器上使用Loopback0接口建立全互联的IBGP 对等体关系,并通告各自的Loopback0接口到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-bgplpeer 10.0.3.3 next-hop-local
[R1-bgp]peer 10.0.4.4 as-number 100
[R1-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R1-bgp]peer 10.0.4.4 next-hop-local
[R1-bgp]peer 10.0.5.5 as-number 100
[R1-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R1-bgp]peer 10.0.5.5 next-hop-local
[R1-bgp]peer 10.0.6.6 as-number 100
[R1-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R1-bgp]peer 10.0.6.6 next-hop-local
[R1-bgp]peer 10.0.7.7 as-number 100
[R1-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R1-bgp]peer 10.0.7.7 next-hop-local
[R1-bgp]network 10.0.1.1 32
[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-bgplpeer 10.0.3.3 as-number 100
[R2-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[R2-bgp]peer 10.0.4.4 as-number 100
[R2-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R2-bgp]peer 10.0.5.5 as-number 100
[R2-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R2-bgp]peer 10.0.6.6 as-number 100
[R2-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R2-bgp]peer 10.0.7.7 as-number 100
[R2-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R2-bgp]network 10.0.2.2 32
[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]peer 10.0.4.4 as-number 100
[R3-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R3-bgp]peer 10.0.5.5 as-number 100
[R3-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R3-bgp]peer 10.0.6.6 as-number 100
[R3-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R3-bgp]peer 10.0.7.7 as-number 100
[R3-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R3-bgp]network 10.0.3.3 32
[R4]bgp 100
[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.2.2 as-number 100
[R4-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R4-bgp]peer 10.0.3.3 as-number 100
[R4-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[R4-bgp]peer 10.0.5.5 as-number 100
[R4-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R4-bgp]peer 10.0.6.6 as-number 100
[R4-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R4-bgp]peer 10.0.7.7 as-number 100
[R4-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R4-bgp]network 10.0.4.4 32
[R5]bgp 100
[R5-bgp]router-id 10.0.5.5
[R5-bgp]peer 10.0.1.1 as-number 100
[R5-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R5-bgp]peer 10.0.2.2 as-number 100
[R5-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R5-bgp]peer 10.0.3.3 as-number 100
[R5-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[R5-bgp]peer 10.0.4.4 as-number 100
[R5-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R5-bgp]peer 10.0.6.6 as-number 100
[R5-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R5-bgp]peer 10.0.7.7 as-number 100
[R5-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R5-bgp]network 10.0.5.5 32
[R6]bgp 100
[R6-bgp]router-id 10.0.6.6
[R6-bgp]peer 10.0.1.1 as-number 100
[R6-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R6-bgp]peer 10.0.2.2 as-number 100
[R6-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R6-bgp]peer 10.0.3.3 as-number 100
[R6-bgp]peer 10.0.3.3 connect-interface Loopback 0
[R6-bgp]peer 10.0.4.4 as-number 100
[R6-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R6-bgp]peer 10.0.5.5 as-number 100
[R6-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R6-bgp]peer 10.0.7.7 as-number 100
[R6-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R6-bgp]network 10.0.6.6 32
[R7]bgp 100
[R7-bgp]router-id 10.0.7.7
[R7-bgp]peer 10.0.1.1 as-number 100
[R7-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R7-bgp]peer 10.0.2.2 as-number 100
[R7-bgp]peer 10.0.2.2 connect-interface LoopBack 0
[R7-bgp]peer 10.0.3.3 as-number 100
[R7-bgp]peer 10.0.3.3 connect-interface LoopBack 0
[R7-bgp]peer 10.0.4.4 as-number 100
[R7-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R7-bgp]peer 10.0.5.5 as-number 100
[R7-bgp]peer 10.0.5.5 connect-interface LoopBack 0
[R7-bgp]peer 10.0.6.6 as-number 100
[R7-bgp]peer 10.0.6.6 connect-interface LoopBack 0
[R7-bgp]network 10.0.7.7 32

在R1和R8之间使用直连物理接口建立EBGP对等体关系,并通告R8的Loopback 0接口到BGP进程中。

[R1]bgp 100
[R1-bgp]peer 10.0.18.8 as-number 200
[R8]bgp 200
[R8-bgp]router-id 10.0.8.8
[R8-bgp]peer 10.0.18.1 as-number 100
[R8-bgp]network 10.0.8.8 32

查看 AS 100 内部的每台路由器上的 BGP 路由表(这里仅以 R2 为例),同时查看R8的BGP路由表。

<R2>display bgp routing-table
<R8>display bgp routing-table

可以看到,AS 100内部的路由器都已经接收到了关于10.0.8.8/32 的路由信息。R8只接收到了关于 10.0.1.1/32 的路由信息,而没有接收到关于 AS 100 内部其他路由器的Loopback 0的路由信息,这是因为AS 100 内

部OSPF 路由协议的优先级要高于BGP 路由协议的优先级,于是 R1就不会将除了本地起源(即下一跳为 0.0.0.0)的路由之外的其他路由信息传递给R8。显然,这会导致R8与AS 100内部的路由器的互通问题。为了使R8能够与AS 100 内部的所有路由器的Loopback0接口所在的网络进行通信,可以在R8上配置一条聚合的静态路由,下一跳为10.0.18.1。

[R8]ip route-static 10.0.0.0 20 10.0.18.1

配置完成后,网络通信正常,但是整体配置工作量较大。

4、配置BGP路由反射器

对于大型网络来讲,使用路由反射器可以大大减少 IBGP 对等体关系的数量。路由反射器的使用,会明显减少配置工作量,人为出错的可能性也会大大降低。

下面将进行关于路由反射器的实验,首先清除之前各路由器上的BGP进程。在此需要提醒读者的是,在实际场景中如果这样操作,将会导致网络瘫痪一段时间。

以R1为例,清除原来的BGP进程。

[R1]undo bgp 100

R2和R3是路由反射器R1的客户端,它们只需和R1配置成IBGP对等体关系即可,R2 和R3 之间无需配置为IBGP 对等体关系。另外,将R2的Loopback1(10.0.22.22/32)接口通告进BGP进程。

[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]network 10.0.2.2 32
[R2-bgp]network 10.0.22.22 32
[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]network 10.0.3.3 32

配置R1为R2和R3的路由反射器,配置Cluster-ID为1,配置R1与R4之间的IBGP对等体关系,配置R1与R8之间的EBGP对等体关系。

[R1]bgp 100
[R1-bgp]router-id 10.0.1.1
[R1-bgp]group in_1
[R1-bgp]peer 10.0.2.2 group in_1
[R1-bgp]peer 10.0.3.3 group in_1
[R1-bgp]peer in_1 reflect-client
[R1-bgp]peer in_1 next-hop-local
[R1-bgp]reflector cluster-id 1
[R1-bgp]peer 10.0.4.4 as-number 100
[R1-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R1-bgp]peer 10.0.4.4 next-hop-local
[R1-bgp]peer 10.0.18.8 as-number 200

R5和R6是路由反射器R4的客户端,它们只需和R4配置成IBGP对等体关系即可,R5和R6之间无需配置为IBGP对等体关系。

[R5]bgp 100
[R5-bgp]router-id 10.0.5.5
[R5-bgp]peer 10.0.4.4 as-number 100
[R5-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R5-bgp]network 10.0.5.5 32
[R6]bgp 100
[R6-bgp]router-id 10.0.6.6
[R6-bgp]peer 10.0.4.4 as-number 100
[R6-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R6-bgp]network 10.0.6.6 32

配置R4为R5和R6的路由反射器,配置Cluster-ID为2,配置R4与R1之间的IBGP对等体关系,配置R4与R7之间的IBGP对等体关系。

[R4]bgp 100
[R4-bgp]router-id 10.0.4.4
[R4-bgp]group in_2
[R4-bgp]peer 10.0.5.5 group in_2
[R4-bgp]peer 10.0.6.6 group in_2
[R4-bgp]peer in_2 reflect-client
[R4-bgp]reflector cluster-id 2
[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.7.7 as-number 100
[R4-bgp]peer 10.0.7.7 connect-interface LoopBack 0

R7是非客户端路由器,配置R7与R4之间的IBGP对等体关系。

[R7]bgp 100
[R7-bgp]router-id 10.0.7.7
[R7-bgp]peer 10.0.4.4 as-number 100
[R7-bgp]peer 10.0.4.4 connect-interface LoopBack 0
[R7-bgp]network 10.0.7.7 32

配置R8与R1之间的EBGP对等体关系。

[R8]bgp 200
[R8-bgp]router-id 10.0.8.8
[R8-bgp]peer 10.0.18.1 as-number 100
[R8-bgp]network 10.0.8.8 255.255.255.255

5、验证路由反射器的反射原理

根据 IBGP 的水平分割原则,R1从IBGP 对等体 R2 接收到 BGP 路由条目10.0.22.22/32后,不会再传递给其他IBGP对等体,因此R3和R4就应该接收不到这条路由。当然,R1可以将此路由传递给EBGP对等体R8。在R3、R4、R8上查看BGP路由表。

 

[R3]display bgp routing-table
[R4]display bgp routing-table
[R8]display bgp routing-table

观察发现,R3、R4、R8的BGP路由表中都存在关于10.0.22.22/32的路由信息。由此可见,R1将10.0.22.22/32这条路由传递给了R3和R4,不再受BGP水平分割原则的限制,同时,这条路由也被R1传递给了EBGP对等体R8。实验表明,BGP路由反射器从它的一个客户端接收到路由之后,会将该路由反射给它的其他客户端、非客户端,以及EBGP对等体。

在R5、R6、R7上查看BGP路由表。

[R5]display bgp routing-table
[R6]display bgp routing-table
[R7]display bgp routing-table

可以看到,R4将10.0.22.22/32这条路由传递给了R5和R6,但是没有传递给R7,说明路由反射器会把从非客户端收到的路由传递给客户端,但不会传递给其他非客户端。由于路由反射器认为非客户端之间应该是存在IBGP 对等体关系的,所以路由反射器和非客户端之间依然遵循水平分割原则。

路由反射器R4认为R1与R7之间应该存在IBGP对等体关系,所以没有将从非客户端R1接收到的BGP路由传递给R7。但实际上,R1与R7之间并没有被配置为IBGP对等体关系,这就导致了R7的BGP路由表中并没有关于10.0.22.22/32的路由。解决此问题的办法就是将R1和R7配置为IBGP对等体关系。

[R1]bgp 100
[R1-bgp]peer 10.0.7.7 as-number 100
[R1-bgp]peer 10.0.7.7 connect-interface LoopBack 0
[R1-bgp]peer 10.0.7.7 next-hop-local
[R7]bgp 100
[R7-bgp]peer 10.0.1.1 as-number 100
[R7-bgp]peer 10.0.1.1 connect-interface LoopBack 0
[R7-bgp]peer 10.0.1.1 next-hop-local

重新查看R7的BGP路由表。

[R7]display bgp routing-table

可以看到,R7现在接收到了10.0.22.22/32这条路由。

在R7上查看10.0.22.22/32这条路由的详细信息。

<R7>display bgp routing-table 10.0.22.22

可以看到,R7上的10.0.22.22/32这条路由信息是从R1(10.0.1.1)传递过来的,而不是从R4传递过来的,这说明路由反射器和非客户端之间是遵循水平分割原则的。

在R1、R2、R3、R4上查看接收到的关于10.0.8.8/32的路由信息。

[R1]display bgp routing-table
[R2]display bgp routing-table
[R3]display bgp routing-table
[R4]display bgp routing-table

 

可以看到,R1从EBGP对等体R8接收到关于10.0.8.8/32的路由之后将这条路由传递给了R2、R3、R4,说明路由反射器会把从EBGP对等体接收到的路由传递给它的客户端和非客户端。

6、BGP路由反射器的防环原理

在前面的配置中,R1上使用了命令peerin_1reflect-client。这条命令的含义是指定BGP对等体组in1中的路由器(即R2和R3)为R1的客户端,从相反的角度来说,也就是R1被指定成为BGP对等体组in-1中的路由器(即R2和R3)的路由反射器。

在R1、R3、R4上查看10.0.22.22/32这条路由的具体属性。

[R1]display bgp routing-table 10.0.22.22
[R3]display bgp routing-table 10.0.22.22
[R4]display bgp routing-table 10.0.22.22

可以观察到,在R1、R3、R4上关于10.0.22.22/32的路由的属性是有所区别的。在R3 和R4上关于此路由多了0riginator和Cluster List 这两个属性。Originator属性的作用是防止路由在反射器和客户端/非客户端之间出现环路。路由第一次被反射的时候,反射器会将0riginator属性加入这条路由中,用BGP Router-ID 表示,用来标识这条路由的起源路由器。如果路由中已经存在0riginator属性,则反射器不会创建新的Originator。当其他BGP 对等体接收到这条路由时,将对收到的0riginator和本地的BGPRouter-ID 进行比较,如果两者相同,BGP对等体将会忽略掉这条路由不做处理。Originator 属性可以传递给其他的Cluster,路由在AS内传递时该属性不会丢失。

Cluster List 属性可用来防止Cluster间的路由环路。当路由反射器在客户端之间或客户端与非客户端之间反射路由时,会将自己的Cluster-ID 添加到Cluster List 中。路由反射器接收到 BGP 路由后会去检查其中的

如果发现自己的 Cluster-ID 位于Cluster List中,则表明出现Cluster List,了路由环路,因而会忽略该路由。AS内的每台路由反射器都采用了一个唯一的4个8位组来标识Cluster-ID,如果Cluster中包含了多台路由反射器,则必须以手工的方式为每台路由反射器配置Cluster-ID。

在R5上查看10.0.22.22/32这条路由的具体属性。

[R5]display bgp routing-table 10.0.22.22

可以看到,Cluster List 中含有两个Cluster-ID:0.0.0.2 和0.0.0.1,这两个Cluster-ID都是在配置路由反射器时定义的。

在R8上查看10.0.22.22/32这条路由的具体属性。

<R8>display bgp routing-table 10.0.22.22

可以看到,R8 上的10.0.22.22/32 这条路由没有Cluster-ID 和ClusterList 属性信息,说明Cluster-ID 和Cluster List属性不会通告给EBGP 对等体。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/881186.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

化学分子结构检测系统源码分享

化学分子结构检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

CleanClip For Mac 強大的剪貼簿助手Paste替代工具 v2.2.1

软件介绍&#xff1a; CleanClip是一款专为Mac设计的强大剪贴板管理工具&#xff0c;旨在提升用户的工作效率和生产力。这款应用完全采用原生Swift编写&#xff0c;为Mac用户提供了流畅、快速且直观的使用体验。CleanClip不仅支持文本内容的管理&#xff0c;还能处理图片、文件…

C++11——lambda

lambda lambda的介绍lambda的使用lambda的细节->捕捉列表 lambda的介绍 lambda是匿名函数&#xff0c;再适合的场景去使用可以提高代码的可读性。 场景&#xff1a; 假设有一个Goods类需要进行按照价格、数量排序 class Goods {string name;size_t _price;//价格int num;/…

攻击者将恶意软件分解成小块并绕过您的安全网关

近二十年来&#xff0c;安全 Web 网关 (SWG) 一直用于监控网络流量、拦截恶意文件和网站以及保护企业免受 Web 威胁。 如今&#xff0c;许多企业都相信他们的 SWG 能够捕获所有已知恶意软件&#xff0c;正如其 SLA &#xff08;服务质量保证&#xff09;中所承诺的那样。 然而…

Docker 里面按照ifconfig

1. 进入Docker 容器内部 docker exec -it xxx bash2. 安装 net-tools iputils-ping apt-get update && apt-get install -y net-tools apt-get update && apt-get install -y iputils-ping 3. 执行ifconfig 执行ping

WebLogic 后台弱⼝令GetShell

漏洞描述 通过弱⼝令进⼊后台界⾯ , 上传部署war包 , getshell 影响范围 全版本&#xff08;前提后台存在弱⼝令&#xff09; 环境搭建 cd vulhub-master/weblogic/weak_password docker-compose up -d 漏洞复现 默认账号密码&#xff1a;weblogic/Oracle123 weblogic…

ChatCADChatCAD+:Towards a Universal and Reliable Interactive CAD using LLMs

ChatCAD&#xff08;论文链接&#xff1a;[2302.07257] ChatCAD: Interactive Computer-Aided Diagnosis on Medical Image using Large Language Models (arxiv.org)&#xff09; 网络流程图&#xff1a; 辅助阅读&#xff1a; 基于大型语言模型的医学图像交互式计算机辅助诊…

数据结构--双链表

目录 一、引言 二 、链表的分类 1.单向或双向 2.带头或不带头 3.循环或不循环 三、双链表的概念与基本结构 1.概念 2.基本结构 三、双链表的常见操作 1.创建节点 2.初始化 3.头插 4.尾插 5.头删 6.尾删 7.打印 8.查找 9.插入节点 10.删除节点 11.销毁链…

gin配置swagger文档

一、基本准备工作 1、安装依赖包 go get -u github.com/swaggo/swag/cmd/swag go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/files2、在根目录上配置swagger的路由文件 //2.初始化路由router : initialize.Routers()// 配置swaggerdocs.SwaggerInfo…

京东商品属性的详细api数据解析:颜色、尺寸与材质

京东&#xff08;JD.com&#xff09;作为一个大型电商平台&#xff0c;其商品信息通过API接口提供给开发者或第三方服务使用&#xff0c;以便进行商品搜索、展示、分析等操作。然而&#xff0c;直接访问京东的详细商品属性&#xff08;如颜色、尺寸、材质等&#xff09;API通常…

uniapp|微信小程序 实现输入四位数 空格隔开

<template><page-meta :page-style"cssVar"></page-meta><view class"container"><u-navbartitle"优惠券兑换"placeholderbgColor"#fff":autoBack"true":titleStyle"{fontFamily: SourceHa…

Maven Helper 插件

推荐指数&#xff1a;★★★★★ 分析依赖冲突插件 Maven Helper插件就可免去命令行困扰。通过界面解决依赖冲突。 点击此按钮&#xff0c;切换到此工具栏 可进行相应操作&#xff1a; Conflicts&#xff08;查看冲突&#xff09;All Dependencies as List&#xff08;列表形…

Java 在 GIS 领域的学习路线?

Java是一门广泛应用于企业级开发的编程语言&#xff0c;而GIS则是一种常用于地理信息处理和分析的技术。将Java与GIS结合起来&#xff0c;可以在企业级应用中实现更多的功能和业务需求&#xff0c;且在实际领域越来越广泛。 Java在GIS中重要的作用 1、跨平台性 Java具有跨平台…

鸿蒙HarmonyOS开发:一次开发,多端部署(界面级)天气应用案例

文章目录 一、布局简介二、典型布局场景三、侧边栏 SideBarContainer1、子组件2、属性3、事件 四、案例 天气应用1、UX设计2、实现分析3、主页整体实现4、具体代码 五、运行效果 一、布局简介 布局可以分为自适应布局和响应式布局&#xff0c;二者的介绍如下表所示。 名称简介…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(一)-概述

简介 此前的专栏介绍Onesearch1.0和2.0&#xff0c;详情参考4 参考资料&#xff0c;本文解释onesearch 3.0&#xff0c;从Elasticsearch6升级到Elasticsearch8代码实现 &#xff0c;Elasticsearch8 废弃了high rest client&#xff0c;使用新的ElasticsearchClient&#xff0c;…

uniapp 如何自定义导航栏并自适应机型

如今的移动设备有各种不同的屏幕形状&#xff0c;如刘海屏、水滴屏等。这些异形屏会影响页面的布局&#xff0c;尤其是导航栏和底部栏的显示。通过获取安全区域信息&#xff0c;可以确保页面内容不会被异形屏的特殊区域遮挡。 在设计页面顶部导航栏时&#xff0c;可以根据 saf…

模拟自然的本质:与IBM量子计算研究的问答

量子计算可能是计算领域的下一个重大突破&#xff0c;但它的一般概念仍然处于炒作和猜测的现状&#xff1f;它能破解所有已知的加密算法吗&#xff1f;它能设计出治愈所有疾病的新分子吗&#xff1f;它能很好地模拟过去和未来&#xff0c;以至于尼克奥弗曼能和他死去的儿子说话…

【Redis入门到精通二】Redis核心数据类型(String,Hash)详解

目录 Redis数据类型 1.String类型 &#xff08;1&#xff09;常见命令 &#xff08;2&#xff09;内部编码 2.Hash类型 &#xff08;1&#xff09;常见命令 &#xff08;2&#xff09;内部编码 Redis数据类型 查阅Redis官方文档可知&#xff0c;Redis提供给用户的核心数据…

dockercompose指定配置文件

dockercompose指定配置文件 文件名字必须是以下的集中形式&#xff1a; docker-compose.yaml docker-compose.yml compose.yaml compose.yml 其他名字就失败的。 一般白眉大叔都是用 compose.yaml 这个格式&#xff0c; 用习惯了。 但是我们必须知道它有几种格式都是可以…

如何利用nw.js打包vue项目

引言 最近有一个开发windows桌面应用的需求, 需要将vue项目打包成.exe文件&#xff0c;最好是变成可安装版(非绿色版)。特此记录一下如何通过nw.js将vue项目打包成.exe。可能这种方式不是最优&#xff0c;仅供大家参考&#xff01; nw.js简介&#xff08;以下描述来自nw.js官…