路由反射器rr
如果您在使用路由器时遇到了问题,不要惊慌。本文路由反射器rr为您提供了解决方法和技巧,帮助您轻松解决路由器问题。
本文目录一览:
- 1、BGP应用与优化(7)
- 2、BGP-9156A设置
- 3、什么是路由反射器
- 4、BGP反射器和联盟有什么作用
BGP应用与优化(7)
IBGP水平分割,从IBGP邻居学到的路由不会再通告给其他的IBGP邻居;
在一个大型的AS当中收到IBGP水平分割的影响,出现了BGP路由无法通过IBGP邻居接收的问题,解决办法有三种:
1、全互连的IBGP邻居
2、路由反射器RR
3、BGP联盟
一、全互连的IBGP邻居
建立全互连的IBGP邻居将会需要更多的资源,每建立一个BGP邻居就需要一个TCP连接,这样会极大地消耗CPU资源,TCP连接数计算公式:n(n-1)/2;
在大型的BGP网络中,一般不采用全连接方式,通常会采用路由反射器RR和联盟来解决
二、路由反射器RR
多台路由器只与一台中心路由器建立邻居关系,不需要全互连的邻居,这台中心路由器允许从IBGP邻居学来的路由被反射出去,打破了IBGP水平分割限制的中心路由器就是路由反射器RR;
1、路由反射器RR的几种角色:
(1)路由反射器route reflector
允许把从IBGP邻居学到的路由反射给其他IBGP邻居的BGP设备;
(2)客户机client
与RR形成反射邻居关系的IBGP设备,由RR决定哪台设备作为客户机;
(3)非客户机non-client
既不是RR也不是客户机的IBGP设备;
在AS内部所有的非客户机与RR必须建立全互连的IBGP邻居;
(4)始发者Originator
在AS内部始发路由的设备,Originator-ID属性用于防止集群内产生路由环路;
(5)集群Cluster
路由反射器及其客户机集合,Cluster-List属性用于防止集群间产生路由环路;
2、路由反射原理
同一集群内的客户机只需要与该集群的RR交换路由信息,所以客户机只需要与RR之间建立IBGP连接,不需要与其他客户机建立IBGP连接,从而减少IBGP连接数量;
RR打破了IBGP水平分割的限制,并采用Originator-ID属性和Cluster-List属性防止路由环路;
RR向IBGP邻居发布路由规则:
(1)从非客户机学来的路由,反射给所有的客户机;
(2)从客户机学来的路由,反射给其他所有的客户机和非客户机;
(3)从EBGP学来的路由,反射给所有的客户机和非客户机;
3、Originator-ID属性和Cluster-List属性
当网络中只部署一台RR时,如果该RR设备发生故障,将会导致其他所有的路由器无法收到路由,因此部署多台RR可以提供更好的冗余;
在一个AS内部署了两台RR设备,都能够用于路由的反射,其他设备同时与两台RR建立IBGP邻居关系,及时一台出现故障,另外一台也可以工作;
但是部署过多的RR以及复杂的拓扑也可能带来环路的隐患,AS-Path无法检测到AS内的环路,因此在部署路由反射器时,BGP提供了两种属性,用于检测AS内的环路问题,分别是Originator-ID和Cluster-List属性,这两个属性仅存在当RR将从IBGP邻居收到的路由向另一个IBGP邻居通告时,用于防止环路而添加的仅在AS内起作用的属性,这两个属性不会出现在AS外;
(1)Originator-ID:可选非过渡属性,RR反射路由时,为该路由添加Originator-ID属性(内容是路由始发者客户机的RouterID),用于防止集群内路由环路;
集群内环路现象:
一个集群中部署两个RR(两个RR使用相同的Cluster-ID),每个RR和集群中每个客户机建立IBGP邻居关系,两个RR之间建立IBGP邻居关系(如果存在EBGP邻居的话需要建立IBGP邻居关系);
客户机Client1通告一条路由给RR1,RR1将该路由反射给RR2,RR2继续反射该路由给客户机Clent1,路由回到始发路由器,Client1如果使用该路由则环路产生;
在反射集群内使用Originator-ID属性解决环路过程如下:
客户机Client1通告一条路由给RR1;
RR1反射该路由时为该路由添加Originator-ID属性,内容是路由始发者客户机Client1的RouterID,然后反射给RR2;
RR2反射该路由时,发现路由已经携带Originator-ID属性,继续反射给客户机Client1;
客户机Client1收到该路由后,发现路由携带OriginatorID属性且与自身RouterID一致,丢弃该路由;
说明:此场景仅用于阐述Originator-ID原理,实际上RR1反射路由给RR2时,除了添加Originator-ID属性外,还添加了Cluster-List属性,RR2发现路由携带Cluster-List属性且包含自身Cluster-ID(两个RR属于同一集群,Cluster-ID相同),就会丢弃该路由;
(2)Cluster-List:可选非过渡属性,RR使用该属性记录路由经过每个集群的Cluster-ID,用来在集群间避免环路;
AS内的每个集群都由唯一的Cluster-ID来标识,默认为BGP的RouterID,可以使用命令Cluster-ID来修改;
当一条路由被RR反射的时候,RR会把本地Cluster-ID添加到Cluster-List的前面;
当RR接收到一条路由时,会检查Cluster-List,如果Cluster-List中已经有本地Cluster-ID,丢弃该路由,否则把本地Cluster-ID添加到Cluster-List的前面,然后反射出去;
集群间环路现象:
RR1、RR2、RR3是三个反射集群中的路由反射器,假设任意两个RR都是另一个RR的客户机,并部署全互连的IBGP邻居关系;
客户机Client1通告一条路由给RR1,RR1反射给RR2,RR2反射给RR3,RR3重新将该路由反射给RR1,一旦RR1接收并使用该路由则产生环路;
在反射集群之间使用Cluster-List属性解决花露过程如下:
客户机Client1将一条路由通告给RR1;
RR1收到该路由发现没携带Cluster-List属性,为路由添加Cluster-List属性并把自身集群Cluster-ID添加进去,然后反射出去;
RR2收到该路由发现携带Cluster-List属性,不包含自身集群Cluster-ID,把自身集群Cluster-ID添加进去,然后反射出去;
RR3收到该路由发现携带Cluster-List属性,不包含自身集群Cluster-ID,把自身集群Cluster-ID添加进去,然后反射出去;
RR1收到该路由发现携带Cluster-List属性,包含自身集群Cluster-ID,丢弃该路由;
4、路由反射器的设计部署
(1)备份路由反射器方案
为增加网络的可靠性,避免单点故障,需要在一个集群中配置一个以上的RR,同一集群中的所有RR必须使用相同的Cluster-ID;
路由反射器RR1和RR2在同一个集群内,配置了相同的Cluster-ID;
客户机Client和相同Cluster-ID的RR都建立IBGP邻居关系,RR之间建立IBGP邻居关系;
客户机Client学到EBGP路由后,同时向RR1和RR2通告这条路由;
RR1和RR2收到该路由后,将本地Cluster-ID添加到Cluster-List前面,然后向其他客户机反射,同时相互反射;
RR1和RR2收到该反射路由后,检查Cluster-List发现包含自身的Cluster-ID,丢弃该路由,能避免同集群内路由反射器间互相学习源自同一客户机的路由,节省内存空间;
由于集群内RR之间不互相学习Client的路由,所以如果RR上没有EBGP邻居关系,则RR间可以没有IBGP邻居关系;
(2)同级路由反射器方案
一个骨干网被分成多个集群,各集群的RR之间互为非客户机关系,建立IBGP全连接;
每个客户机只与所在集群的RR建立IBGP连接,所有RR和客户机都能收到全部路由信息;
(3)分层路由反射器方案
一个AS内可以存在多个集群,各个集群的RR之间建立IBGP邻居;
当RR所处的网络层不同时,可以将较低网络层次的RR配成客户机,形成分级RR;
每个路由反射器既可以作为该集群的反射器角色,也可作为其他集群的客户机角色;
三、BGP联盟
1、联盟概念
在一个AS中,受IBGP水平分割的影响,如果IBGP会话数量较多,管理起来将会显得麻烦,为了解决该问题,除了使用路由反射器外,还可以使用BGP联盟Confederation;
联盟的概念就是将一个AS划分为若干个子AS,每个子AS内部建立IBGP全连接关系(联盟IBGP邻居),子AS之间建立EBGP连接关系(联盟EBGP邻居),但联盟外部AS仍认为联盟是一个AS;
AS100被分成三个子AS(65001、65002、65003),使用AS100作为联盟ID,此时不需要采用IBGP全互连,连接数从10条减少到4条,如果没有配置联盟,AS100内部都是IBGP邻居,配置联盟以后形成了联盟EBGP邻居和联盟IBGP邻居,在联盟子AS内部可以使用全互连或RR,而在联盟子AS之间使用联盟AS-Path来避免环路;
2、联盟的特点
配置联盟后,原AS号将作为每个路由器的联盟ID;
通告给联盟内的路由,MED属性在整个联盟范围内保留;
Local Preference属性在整个联盟范围内保留,而不只是在通告的成员AS内;
在联盟内保留联盟外部的next-hop属性;
在联盟内将子AS号加入AS-Path中,但不会将联盟内子AS号通告到联盟之外;
联盟内的子AS号在AS-Path属性中用单独的两种类型AS-CONFED-SEQUENCE和AS-CONFED-SET表示,默认联盟将子AS号以AS-CONFED-SEQUENCE的形式在AS-Path中列出,如果在联盟内配置了聚合,AS号将以AS-CONFED-SET形式列出;
AS-Path中的联盟子AS号用于避免环路,不计算在AS-Path长度中;
联盟EBGP邻居和联盟IBGP邻居都被看作IBGP类型邻居,不存在联盟EBGP路由优于联盟IBGP路由,即在其他条件相同的情况下,同时从EBGP邻居学到、联盟EBGP或联盟IBGP学到同一条路由,从EBGP邻居学到的路由更优;
联盟内相关属性传出联盟时将会自动删除,不用配置策略过滤子AS号等信息;
3、联盟配置举例
R1为AS100,R2/R3/R4拥有联盟ID为200,R2和R3在联盟子AS65001中,R4属于联盟子AS65002,R5属于AS300;
通过命令confederation id配置BGP联盟,指定联盟ID;
通过命令confederation peer-as指定联盟内子AS号;
R2配置:
bgp 65001
confederation id 200
peer 12.1.1.1 as-number 100
peer 23.1.1.3 as-number 65001
R3配置:
bgp 65001
confederation id 200
peer 23.1.1.2 as-number 65001
confederation peer-as 65002
peer 34.1.1.4 as-number 65002
BGP-9156A设置
6、BGP路由反射器配置
6.1、将本机作为路由反射器,并将对等体(组)作为路由反射器的客户。
[Huawei]bgp 1
[Huawei-bgp]ipv4-family unicast
[Huawei-bgp-af-ipv4]peer 1.1.1.1 reflect-client
6.2、设置路由反射器的集群ID
[Huawei-bgp-af-ipv4]reflector cluster-id ?
INTEGER1-4294967295 Configure cluster-id as a decimal value
X.X.X.X Configure cluster-id in IPv4 address format
6.3、禁止客户机之间的路由反射
[Huawei-bgp-af-ipv4]undo reflect between-clients
6.4、禁止BGP将优选的路由下发到IP路由表
[Huawei-bgp-af-ipv4]bgp-rib-only
在AS内部,为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。当IBGP对等体数目很多时,建立全连接网络的开销很大。使用路由反射器RR(Route Reflector)可以解决这个问题。
集群ID用于防止集群内多个路由反射器和集群间的路由环路。当一个集群里有多个路由反射器时,必须为同一个集群内的所有路由反射器配置相同的集群ID。
如果路由反射器的客户机之间重新建立了IBGP全连接关系,那么客户机之间的路由反射就是没有必要的,而且还占用带宽资源。此时可以配置禁止客户机之间的路由反射,减轻网络负担。
在一个AS内,RR主要有路由传递和流量转发两个作用。当RR连接了很多客户机和非客户机时,同时进行路由传递和流量转发会使CPU资源消耗很大,影响路由传递的效率。
如果需要保证路由传递的效率,可以在该RR上禁止BGP将优选的路由下发到IP路由表,使RR主要用来传递路由。
7、BGP联盟配置
7.1、设置联盟ID。 [Huawei-bgp]confederation id ?
INTEGER1-65535 2-byte AS Number
STRING3-11 4-byte AS Number (number1-65535.number0-65535)
7.2、设置本地设备属于同一个联盟的子as号(子as号-由as-number指定)
[Huawei-bgp]confederation peer-as 65501 65502 65503
7.3、设置联盟中的标准设备可与非标准设备互通
[Huawei-bgp]confederation nonstandard
同一联盟内不能同时配置2字节AS号的Old Speaker和4字节AS号的New Speaker。因为AS4_Path不支持联盟,这种配置可能会引起环路。
联盟将一个自治系统划分为若干个子自治系统,每个子自治系统内部的IBGP对等体建立全连接关系或者配置反射器,子自治系统之间建立EBGP连接关系。
大型BGP网络中,配置联盟不但可以减少IBGP连接的数量,还可以简化路由策略的管理,提高路由的发布效率。
如果其他交换机的联盟实现机制不同于RFC3065标准,可以配置联盟的兼容性,以便和非标准的设备兼容。
8、BGP协议优先级配置
[Huawei]bgp 100
[Huawei-bgp]ipv4-family unicast
[Huawei-bgp-af-ipv4]preference ?
INTEGER1-255 EBGP route preference # 外部路由优先级,值越小优先级越高。
route-policy Specify a route policy # 指定BGP协议优先级的路由策略名称。
[Huawei-bgp-af-ipv4]preference 2 ?
INTEGER1-255 IBGP route preference # 内部协议优先级,值越小优先级越高。
[Huawei-bgp-af-ipv4]preference 2 4 ?
INTEGER1-255 Local created route preference # 本地路由的协议优先级。
[Huawei-bgp-af-ipv4]preference 2 4 20 ?
cr Please press ENTER to execute command
[Huawei-bgp-af-ipv4]preference 2 4 20
目前不支持通过peer route-policy命令在对等体上应用路由策略来设置BGP协议的优先级。
由于交换机上可能同时运行多个动态路由协议,就存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置一个缺省优先级。在不同协议发现同一条路由时,优先级高的路由将被优选。
缺省外部优先级和内部优先级表
9、BGP Next_Hop属性配置
9.1、设置BGP设备向IBGP对等体(组)发布来自EBGP的对等体路由时,把下一跳设置为自身的IP地址。
[Huawei]bgp 65507
[Huawei-bgp]ipv4-family unicast
[Huawei-bgp-af-ipv4]peer 1.1.1.1 next-hop-local
9.2、配置BGP按路由策略进行下一跳迭代。
[Huawei-bgp-af-ipv4]nexthop recursive-lookup route-policy test
3、设置发布引入IGP路由时不改变IGP路由的下一跳地址
[Huawei-bgp-af-ipv4]peer 1.1.1.1 next-hop-invariable
对于从直连EBGP对等体收到的路由,nexthop recursive-lookup route-policy route-policy-name命令不生效。
当ASBR将从EBGP邻居学到的路由转发给IBGP邻居时,默认不修改下一跳。IBGP邻居收到该路由后,会发现下一跳不可达,于是将该路由设为非活跃路由,不通过该路由指导流量转发。
当希望IBGP邻居通过该路由指导流量转发时,可以在ASBR上配置向IBGP对等体(组)转发路由时,将自身地址作为下一跳。这时,IBGP邻居收到ASBR从EBGP邻居学习来的路由后,发现下一跳可达,于是将路由设为活跃路由。
当BGP路由发生变化时,BGP需要对非直连的下一跳重新进行迭代。如果不对迭代后的路由进行任何限制,则BGP可能会将下一跳迭代到一个错误的转发路径上,从而造成流量丢失。此时,可配置BGP按路由策略迭代下一跳,避免流量丢失。
10、BGP路由信息的首选值配置
[Huawei-bgp-af-ipv4]peer ?
STRING1-47 Specify a peer-group
X.X.X.X Specify an IPv4 peer address
[Huawei-bgp-af-ipv4]peer 1 preferred-value ?
INTEGER0-65535 Preference value # 为从指定对等体学来的所有路由配置首选值。
协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效。当BGP路由表中存在到相同目的地址的路由时,将优先选择协议首选值高的路由。
11、BGP本机缺省Local_Pref属性配置
[Huawei-bgp-af-ipv4]default local-preference ?
INTEGER0-4294967295 Specify a local preference
Local_Pref属性用于判断流量离开AS时的最佳路由。当BGP的设备通过不同的IBGP对等体得到到AS外的目的地址相同但下一跳不同的多条路由时,将优先选择Local_Pref属性值较高的路由。
12、BGP AS_Path属性配置
12.1、创建路由策略的节点,并进入路由策略视图。
[Huawei]route-policy ?
STRING1-40 Name of the route policy
[Huawei]route-policy 1 ?
deny Specify a deny rule
permit Specify a permit rule
[Huawei]route-policy 1 permit ?
node Node of the route policy
[Huawei]route-policy 1 permit node ?1
INTEGER0-65535 Index of the node
[Huawei-route-policy]
12.2、设置BGP路由的as_path属性
[Huawei-route-policy]apply as-path 65503 10.10 ?
INTEGER1-65535 AS Number to be appended or replaced
STRING3-11 1-65535.0-65535
additive Append to original As Number #在原有路由的as路径列表中添加指定的AS编号
overwrite Overwrite original As Number #覆盖原有的as-path列表路径。
12.3、向对等体(组)路由添加AS_Path属性。
[Huawei-bgp-af-ipv4]peer 1.1.1.1 route-policy 1 ?
export Specify export policy # 对向对等体(组)发布的路由添加AS_Path属性。
import Specify import policy #对从对等体(组)接收的路由添加AS_Path属性。
12.4、对BGP引入的路由添加AS_Path属性。
[Huawei-bgp-af-ipv4]import-route ospf 1 route-policy 1 # 对BGP以import方式引入的路由添加AS_Path属性
[Huawei-bgp-af-ipv4]network 1.1.1.1 24 route-policy 1 # 对BGP以network方式引入的路由添加AS_Path属性
12.5、不将AS_Path属性作为选路条件。
[Huawei-bgp-af-ipv4]bestroute as-path-ignore
12.6、允许本地AS编号重复出现
[Huawei-bgp-af-ipv4]peer 1.1.1.1 allow-as-loop ?
INTEGER1-10 Number of repeating times of AS Path
cr
12.7、配置发送EBGP更新报文时,AS_Path属性中仅携带公有AS编号。
[Huawei-bgp-af-ipv4]peer 1.1.1.1 public-as-only
12.8、配置AS_Path属性中AS号的最大个数
[Huawei-bgp]as-path-limit ?
INTEGER1-2000 The maximum number of AS numbers, default is 255
cr
12.9、配置EBGP对等体的伪AS编号。缺省EBGP对等体使用真实的AS号与本端建立连接。
[Huawei-bgp]peer 10.101.10.1 fake-as ?
INTEGER1-65535 2-byte autonomous system number
STRING3-11 4-byte autonomous system number
(number1-65535.number0-65535)
配置undo check-first-as命令后产生环路的可能性增大,请慎重使用。
执行命令undo check-first-as,配置取消检查EBGP对等体发来的更新消息中AS_Path属性的第一个AS号。
缺省情况下,BGP检查EBGP对等体发来的更新消息中AS_Path列表的第一个AS号。
配置更改后,如果希望对已接收的路由重新进行检查,可在用户视图下配置refresh bgp命令。
AS_Path属性按矢量顺序记录了某条路由从本地到目的地址所要经过的所有AS编号。配置不同的AS_Path属性功能,可以实现灵活的路由选路。
通常情况下,AS_Path属性内AS_Path数量作为BGP选路条件。当不需要AS_Path属性作为选路条件时,可以配置不将AS_Path属性作为选路条件。
通常情况下,BGP通过AS号检测路由环路。但在Hub and Spoke组网方式下,为保证路由能够正确传递,从Hub-CE发布私网路由到Spoke-CE途中经过的相关BGP对等体需要配置允许AS_Path中AS号重复1次的路由通过。
公有AS号可以直接在Internet上使用,私有AS号直接发布到Internet上可能造成环路现象。为了解决上述情况,可以在把路由发布到Internet前,配置发送EBGP更新报文时,AS_Path属性中仅携带公有AS编号。
在重构AS_Path或聚合生成新路由时,可以对AS_Path中的AS号最大个数予以限制。配置AS_Path属性中AS号的最大个数后,接收路由时会检查AS_Path属性中的AS号是否超限,如果超限则丢弃路由。
通常情况下,一个设备只支持一个BGP进程,即只支持一个AS号。但是在某些特殊情况下,例如网络迁移更换AS号的时候来为了保证网络切换的顺利进行,可以为指定对等体设置一个伪AS号。
BGP会检查EBGP对等体发来的更新消息中AS_Path列表的第一个AS号,确认第一个AS号必须是该EBGP对等体所在的AS。否则,该更新信息被拒绝,EBGP连接中断。如果不需要BGP检查EBGP对等体发来的更新消息中AS_Path列表的第一个AS号,可以去使能此功能。
什么是路由反射器
VPN是指虚拟专用网,而路由反射器是让被配置为路由反射器的路由器向其他IBGP对等体传输由IBGP所学到的路由来修改BGP的横向隔离规则。
我们通常所说的VPN路由器有两种不同的含义:
①支持VPN pass through的路由器:通过此路由器上网后,在路由器下面的工作站可以与VPN服务器通过PPTP/IPsec建立连接。如:华为3Com Aolynk DR834、TP-Link TL-R402、TP-Link TL-R480T等宽带路由器。
②可以作为VPN server的路由器:此路由器不仅支持VPN pass through功能,即工作其下面的工作站可以顺利与VPN server建立连接,而且它本身就是一个VPN server,具有VPN server的所有功能。比如Linksys RV082、NETGEAR FVL328、DrayTek Vigor 2900DWnet、SAFEcon50,它们的VPN功能都被集成在了路由器当中,通常我们称这类产品为VPN网关。
BGP反射器和联盟有什么作用
路由反射器RR:解决IBGP的水平分隔,但是可能会产生环路,通过original id和custer id防环。联盟就是让原本是EBGP peers关系的路由器处于一个联盟,就像一个更大的AS,享有一些IBGP的属性。卷2上有的"
现在您已经了解了这些技巧和方法,开始应用它们,享受更好的上网体验吧!