路由反射器原理与配置
- 1、路由反射器概念
- 1.1、路由反射器原理:
- 1.2、多集群路由反射器
- 1.3、备份路由反射器
- 2、路由反射器配置
- 3、路由反射器防环机制
1、路由反射器概念
IBGP的水平分割,IBGP 1只能update一跳,就是说在IBGP 2 设备收到IBGP 1设备传输过来的IBGP路由后,不会将此IBGP路由传递给其它的IBGP设备。其它设备想获得IBGP 1路由,只能与IBGP 1建立邻居关系。
为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。假设在一个AS内部有n台设备,那么建立的IBGP连接数就为n(n-1)/2。当设备数目很多时,设备配置将十分复杂,而且配置后网络资源和CPU资源的消耗都很大。在IBGP对等体间使用路由反射器可以解决以上问题。
1.1、路由反射器原理:
同一集群内的客户机只需要与该集群的RR直接交换路由信息,因此客户机只需要与RR之间建立IBGP连接,不需要与其他客户机建立IBGP连接,从而减少了IBGP连接数量。
注意:路由反射只能IBGP之间使用。
路由反射器三种角色:
角色名 | 作用 |
---|---|
RR路由反射器(Route Reflector) | 允许把从IBGP对等体学来的路由反射到其它IBGP对等体设备 |
客户机(Client) | 与RR形成反射邻居关系的IBGP设备。在AS内部客户机只需要与RR直连 |
非客户机(Non-Client) | 既不是RR也不是客户机的IBGP设备。在AS内部非客户机与RR之间,以及所有的非客户机之间仍然必须建立全连接关系。 |
路由反射器的两个概念:
- 始发者(Originator):在AS内部始发路由的设备。Originator_ID属性用于防止集群内产生路由环路。
- Originator ID由RR产生,使用的Router ID的值标识路由的始发者,用于防止集群内产生路由环路。
- 集群(Cluster也称反射簇):
路由反射器及其客户机的集合
。Cluster_List属性用于防止集群间产生路由环路。一个簇内可能有多台反射器,因为单个反射器可能会产生单点故障问题。RR是另一个RR的客户机。- 路由反射器和它的客户机组成一个集群(Cluster),使用AS内唯一的Cluster ID作为标识。
- 为了防止集群间产生路由环路,路由反射器使用Cluster_List属性,记录路由经过的所有集群的Cluster ID。
IBGP对等体内之间的关系:
客户端只需维护与RR之间的IBGP会话。
路由反射宣告原则:
1、RR收到一条EBGP路由,会将其发送给所有EBGP邻居与IBGP邻居,包含反射器群成员及非成员。
2、RR收到一条客户机(Client)发送的IBGP路由,会将其发送给所有EBGP邻居,也会发给所有
的客户机及非客户机。
3、RR收到一条非客户机发送的IBGP路由,会将其发送给所有的EBGP邻居及客户机,不会发送给非客户机。
1.2、多集群路由反射器
一个AS中可以存在多个集群,各个集群的RR之间建立IBGP对等体。当RR所处的网络层不同时,可以将较低网络层次的RR配成客户机,形成分级RR。当RR所处的网络层相同时,可以将不同集群的RR全连接,形成同级RR。
同级反射器:
当RR所处的网络层相同时,可以将不同集群的RR全互联,形成同级RR。
在一个AS内存在多个集群(反射簇),各个RR是IBGP对等体
关系。
为什么使用RR全互联方式,是根据冗余设计,防止单点故障造成通信中断。
一个骨干网被分成多个反射集群,RR1、RR2、RR3、RR4部署全互联的IBGP邻居关系。每个客户机只与所在集群的RR建立IBGP连接。每个集群的路由器接收由反射路由发送的路由信息。
分级反射器:
当RR所处的网络层不同时,可以将较低网络层次的RR配成客户机,形成分级RR。
在Cluster 1集群从一台客户机上学习到路由,就会由RR1路由反射器发送给集群内的客户机RR2,这时RR2既是客户机以是反射器,RR2就会把从RR1上学到的路由发送给客户端RR3和RR4,RR3和RR4同时也反射器,分别将学习到的路由发送到各自的集群内。
1.3、备份路由反射器
为增加网络的可靠性,防止单点故障对网络造成影响,有时需要在一个集群中配置一个以上的RR。
路由反射器RR1和RR2在同一个集群内,配置了相同的Cluster ID。
2、路由反射器配置
配置命令:
1、bgp { as-number-plain | as-number-dot },启动BGP。
2、请根据网络类型,选择进入不同地址族视图。
- 执行命令ipv4-family unicast,进入IPv4地址族视图。
- 执行命令ipv6-family [ unicast ],进入IPv6地址族视图。
3、执行命令peer { group-name | ipv4-address | ipv6-address } reflect-client,配置路由反射器及其客户。
例:peer 10.10.1.1 reflect-client//宣告邻居10.10.1.1为反射器Client
4、执行命令reflector cluster-id cluster-id,配置路由反射器的集群ID。- 可选,只有一个集群不用配置。
- 缺省情况下,每个路由反射器使用自己的Router ID作为集群ID。
指定R2和R3为客户端
[R1]bgp 123
[R1-bgp]peer 2.2.2.2 reflect-client
[R1-bgp]peer 3.3.3.3 reflect-client
R2在BGP中宣告2.2.2.2
<R3>dis bgp rou
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 2.2.2.2 12.0.0.1 0 100 0 i
反射器在反射路由时不改变源路由
的路由属性。2.2.2.2 路由的下一跳还是原来R1到R2的下一跳,12.0.0.2。
配置簇ID(cluster-id),系统为RR默认配置的cluster-id就是RR的RID。系统为RR默认配置的cluster-id就是RR的RID。
路由信息里包含有cluster-id,这样就防止原发送端再次收到自己发送的路由信息,与AS_path相似。
下面一般不需要配置:
[R1-bgp]ipv4-family unicast
[R1-bgp-af-ipv4]reflector cluster-id 1.1.1.1
<R3>dis bgp rou 4.4.4.4
AS-path 100, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre255, IGP cost 2, not preferred for peer type
Originator: 12.0.0.2
Cluster list: 1.1.1.1
Not advertised to any peer yet
通过查看4.4.4.4的路由可以看到始发者ID和簇ID。
3、路由反射器防环机制
EBGP:不再接收带有自己 AS 号 BGP 路由
IBGP:从 IBGP 邻居学到的路由,不会再发送给其他的 IBGP 邻居。
RR打破了IBGP的水平分割,采用Cluster-list属性和Originator-ID属性防止环路。
- originator-id:起源ID指产生首发该路由的路由器的RID。originator-id用于客户端、非客户端和RR的防环。
- cluster-id用于RR之间的防环。
originator:2.2.2.2
cluster-id:1.1.1.1
R2接收到R4发来的路由,发现路由中存在originator id属性,并且属性值与自己的originator id相等,忽略该路由更新,避免环路。
R2接收到AS64512内部发来的路由,发现路由中存在Cluster_List属性,并且属性值与自己的Cluster_List相等,忽略带有Cluster1标记的路由条目更新,避免环路。
路由反射器和联盟的比较:
路由反射器 | 联盟 |
---|---|
不需要更改现有的网络拓扑,兼容性好。 | 需要改变逻辑拓扑。 |
配置简单 | 需要改变逻辑拓扑,所有设备需要重新进行配置。 |
集群与集群之间仍然需要全连接。 | 联盟的子AS之间是特殊的EBGP连接,不需要全连接。 |
适用于中、大规模网络。 | 适用于大规模网络。 |