路由反射器
RFC4456
IBGP水平分割:路由器无法将从IBGP对等体学习到的路由信息传递给其他IBGP对等体。
IBGP水平分割解决了AS内部环路的问题,但是产生了新的问题----BGP路由在AS内部只能传递一跳,会造成lBGP路由无法被正常传递,造成通讯障碍。
路由反射器角色
- RR---Route Reflector
- RR类似于一面镜子,可以把自己接收到的路由信息反射给其他人
- Client----RR客户端-----客户端可以存在多个或一个
- RR非客户端
路由反射器的配置是在充当反射器的BGP路由器上完成的。而路由反射器的客户设备并不需要做任何额外的配置,它甚至不知道自己成为了某个路由反射器的客户。
路由反射器与所有的客户或非客户建立IBGP对等体关系,而客户之间则无需建立IBGP对等体关系。这样就优化了网络中的IBGP对等体关系数量。
路由反射规则
1.如果路由反射器从自己的非客户对等体学习到一条IBGP路由,则可以将这条路由传递给自己的客户
⒉.如果路由反射器从自己的客户对等体学习到一条IBGP路由,则可以将这条路由传递给自己的客户和非客户
3.如果路由器学习到EBGP对等体发送的路由信息,则可以发送给所有的IBGP对等体
4.当路由反射器执行路由反射时,它将只能使用自己最优的BGP路由进行反射。
[r3-bgp]peer 2.2.2.2 reflect-client..---1、指定2.2.2.2为自己的客户;2、并说明自己是RR
路由反射器角色可能会根据处于不同的反射簇时充当不同的角色。一般会设置传递路由信息的一方为RR的客户端。
origin-ID-----起源ID
当一条BGP路由被路由反射器反射给其他路由器时,如果该条路由已经携带了起源ID属性,则保留该属性,否则路由反射器为这条路由添加起源ID属性,并将该属性值设置为该路由在本地AS内的始发路由器的RID值。
当路由器从BGP对等体收到一条IBGP路由,并且该路由所携带的起源ID属性与自己的BGPRID相同时,它将意识到该路由是从自己这里发送到本AS内部的,且又被发送回来了,此时本地将忽略这条路由的更新。如此消除环路隐患。
cluster-List-----簇列表
当一条BGP路由被路由反射器执行反射时,如果该条路由已经存在Cluster-List属性,那么路由反射器将本地的cluster-ID附加到路由的Cluster-List属性中,而如果该路由没有Cluster-List属性,那么路由反射器为其创建,并将cluster-ID加入到Cluster-List中。
当一台路由反射器收到一条BGP路由后,若发现该路由携带Cluster-List属性,并且Cluster-List属性中包含着自己的Cluster-ID时,会忽略关于这条路由的更新。-----类似于AS-Path属性的防环原理。
属性 | 作用 |
Origin-ID | 用于繁殖集群内产生路由环路 |
Cluster-List | 用于防止集群间产生路由环路 |
注意:
-
当路由反射器将一条从自己的EBGP对等体学习到的BGP路由通告给自己的客户时,他是不会创建起源ID和簇列表,因为这本质上是正常的通告行为
- 起源ID和簇列表的传播范围是AS内部
- 路由反射器在反射路由时,不会修改除了起源ID和簇列表以外的路径属性,原因是因为AS-BY-AS原则
反射器的组网方式
备份RR组网
由于RR打破了IBGP对等体收到的路由不能传递给其他IBGP对等体的限制,所以同一集群内的RR之间可能存在环路。这就需要将同集群内的所有RR的Cluster-ID设置为相同值,用以避免RR之间的路由环路。
[r3-bgp]reflector cluster-id 10.10.10.10---设置集群的簇ID,只能在反射器上进行配置,该命令为覆盖式命令,配置后,会覆盖掉之前路由器选择出来的Cluster-ID。
多集群路由反射组网
分级路由反射器
同级路由反射器
注意:在同级路由反射器中,RR之间属于Non-Client的IBFP Full Mesh结构。
单集群问题
多集群设计不仅提供了针对物理链路失效带来的物理冗余,同时提供针对客户端和RR之间的IBGP会话失效的逻辑冗余。
联邦----联盟
联邦的思想:在一个大的AS内创建若干个小的AS,使得AS内部出现一种特殊的EBGP对等体关系,从而解决IBGP路由在AS内部传递的问题。
若使用联邦将AS 3456划分为多个,则AS 3456被称为联邦AS,而划分的小的AS,称为成员AS
由于成员AS号是由联邦AS号的管理者进行分配的,所以不能使用公有AS号,而是使用私有AS号(65512-65534)
成员AS之间建立的EBGP对等体关系是一种特殊的EBGP对等体关系,他们之间仅遵循EBGP对等体的路由传递原则,但是不能像正常的EBG对等体一样修改路由的路径属性;而从传递的内容角度来看,依然需要遵循AS-BY-AS原则,因为在宏观上,他们依然处于同一个AS当中。----联邦AS内部的成员AS对于联邦外部并不可见。
联邦配置:
[r1]bgp 100
[r1-bgp]router-id 1.1.1.1
[r1-bgp]peer 10.1.13.3 as-number 3456---使用联邦AS号建立BGP对等体,原因:对于R1而言,并不需要知晓对端AS中的成员AS内容。[r3]bgp 64512---联邦成员设备启动BGP进行需要使用成员AS号启动
[r3-bgp]router-id 3.3.3.3
[r3-bgp]confederation id 3456--定义联邦AS号[r3-bgp]peer 10.1.13.1 as-number 100
[r3-bgp]peer 4.4.4.4 as-number 64512
[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 0[r3-bgp]peer 4.4.4.4 next-hop-local
[r4]bgp 64512
[r4-bgp]router-id 4.4.4.4[r4-bgp]confederation id 3456
[r4-bgp]peer 3.3.3.3 as-number 64512
[r4-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[r4-bgp]confederation peer-as 64513----在需要建立联邦的EBGP对等体关系的设备上指定与自己建邻的成员AS号,若有多个可以一次指定
[r4-bgp]peer 5.5.5.5 as-number 64513
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0[r4-bgp]peer 5.5.5.5 ebgp-max-hop---修改TTL值(建议最大值)
[r5]bgp 64513
[r5-bgp]router-id 5.5.5.5
[r5-bgp]confederation id 3456
[r5-bgp]confederation peer-as 64512[r5-bgp]peer 4.4.4.4 as-number 64512
[r5-bgp]peer 4.4.4.4 con l 0
[r5-bgp]peer 4.4.4.4 ebgp-max-hop[r5-bgp]peer 6.6.6.6 as-number 64513
[r5-bgp]peer 6.6.6.6 con l 0
[r5-bgp]peer 10.1.25.2 as-number 200[r5-bgp]peer 6.6.6.6 next-hop-local
[r5-bgp]peer 4.4.4.4 next-hop-local ---联邦内部传递不修改属性,故需要手工修改下一跳为本地
[r6]bgp 64513
[r6-bgp]router-id 6.6.6.6
[r6-bgp]confederation id 3456
[r6-bgp]peer 5.5.5.5 as-number 64513
[r6-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[r2]bgp 200
[r2-bgp]router-id 2.2.2.2
[r2-bgp]peer 10.1.25.5 as-number 3456
联邦防环
使用EBGP水平分割原则。当BGP路由在联邦内传递时,联邦成员AS号才会出现在AS_Path属性中,当路由传出联邦AS时,成员AS号才被移除。联邦的成员AS 号会用()括起来。
路由反射器 | 联邦 |
不需要修改现有的网络拓扑 | 需要改变逻辑拓扑 |
配置简单,只需要对反射器设备进行操作,且客户端不知道自己是客户端 | 所有设备均需要进行配置,并且要求路由器具备联邦的功能。 |
集群和集群之间仍然需要全连接 | 联邦的子AS之间是特殊的EBGP连接,不需要全连接 |
适用于中大型网络 | 仅适用大型网络 |
一般在大型BGP网络中,路由反射器和联邦是可以同时使用的。原因:联邦中的成员AS若为单线连接,只能存在两台设备,若单线存在多台设备,又会发生联邦AS内部的IBGP水平分割现象,故需要使用路由反射器弥补缺陷。
场景:(两个环路)