BGP dampening
BGP dampening 只针对EBGP路由有效
进程中 BGP dampening开启 BGP dampening XX 修改参数
show ip bgp XXX 明细路由去查看惩罚值
half-time 是指半衰期,单位min,每经过half-time的时间,抑制值就会减半,默认15min。
reuse 当一条被抑制路由的惩罚值低于该值后,该路由重新被标记为可用。默认750
suppress 该值就是抑制阀值,超过该值路由被抑制。默认2000
max-suppress 最大抑制时间,被抑制路由的抑制时间超过该值后,不管惩罚值为多少,都会重新标记为可用,默认60min。
bgp dampening 只对EBGP学习过来的路由起作用.对IBGP不起作用.
路由反射器
用来有条件的打破IBGP水平分割
IBGP水平分割:从IBGP收到的路由不会传给IBGP邻居
当一个AS内的路由器数量足够大的时候,如果要解决黑洞问题,只能将IGP重分布进IBGP,或将IBGP逻辑上全互联。
全互联需要建立的IBGP连接n(n-1)/2,增加了拓扑的复杂程度。
路由反射器提供了一种解决IBGP全互联的方案,选出一个RR,所有的IBGP路由器与RR建立对等体关系
簇:路由反射器及其客户被称为簇。
路由反射器不可以更改从客户接受到得路由属性。为了防止可能出现的有关路由的差错。
路由反射器中,RR连接的客户不能是EBGP邻居,因为从EBGP过来的路由,是优的,肯定能透传给我下一个IBGP邻居。
如果RR收到去往同一目的地的多条路由,将会根据BGP的路由选择来选择最佳路径。然后通告给其他的客户或非客户。
路由反射器不会更改路由的下一跳
RR需要对等体关系的建立为前提,
RR的路由来源无非三种情况, 不能把EBGP当做客户,只有从EBGP学来的路由或者从客户学来的,从IBGP非客户学来的。 针对于上图,变换RR的位置,查看两条路由的通告情况。
RR决定宣告路由的规则:
1.学习自非客户IBGP对等体,仅反射给客户 R3是RR R4仅和R3是IBGP对等体(非客户关系) R2是R3的客户
2.学习自客户,反射给所有客户和非客户。 R3将R4作为客户
3.学习自EBGP对等体,反射给所有客户和非客户。 R1作为RR,R2为客户
当RR的客户full mesh时,可以用
no bgp client-to-client reflection
一般IBGP在建邻居的时候,有可能会出现RR的客户全互联的情况
这时候RR就不需要把一个客户的路由反射给另外一个客户了,这样浪费
但是RR还需要承担对客户和非客户之间路由的反射
bgp cluster-id 1.1.1.1 可以来修改cluster-id
单个RR存在单点故障,如果RR失效,那么所有客户都将失去唯一的NLRI源,
可以做多个RR的冗余。需要注意,如果如下图
R1,R2为RR,建立逻辑上的全互联,但是R3,R4只有一条物理链路连接RR,还是会存在单点故障。
由上面可见,由于客户并不知道他们是客户,因而路由反射器本身也可以是其他路由反射器的客户
ORIGINATOR_ID:是本地AS中路由发起者的路由器ID,路由反射器不会将某路由宣告回该路由的发起者,如果收到这样的信息,则忽略这样的Update消息。
CLUSTER_ID:当RR将来自客户的路由反射给非客户时,将自己的CLUSTER_ID加入到CLUSTER_LIST中,如果RR接收到的Update中有自己的CLUSTER_ID,则忽略此Update消息,类似于AS_LIST 的作用。
当RR的客户full mesh时,可以用
no bgp client-to-client reflection
禁止客户到客户的路由反射。可以减少路由更新。
bgp cluster-id 1.1.1.1 可以来修改cluster-id
联盟:
联盟是一个被细分为一组子自治系统的AS,BGP为联盟分配一个联盟ID,此联盟ID被联盟之外的对等体视为整个联盟的AS号,外部无法看见联盟的内部结构。
联盟两种AS_PATH属性:
AS_CONFED_SEQUENCE:有序的AS号,用法和AS_SEQUENCE一样,区别在于该列表AS号属于本地联盟中的自治系统
AS_CONFED_SET:无序,同样代表本地联盟中的自治系统。
将Update消息发送给联盟之外的对等体时,将从AS_PATH属性中剥离AS_CONFED_SEQUENCE和AS_CONFED_SET属性,将联盟ID附加到AS_PATH上。
联盟外部的EBGP由于成员AS的外部EBGP,成员AS的外部EBGP优于IBGP路由