汇总(聚合)
1、利用BGP宣告特点——BGP可以宣告路由表中的任何条目
1)先在更新源上配置一条汇总地址的防环空接口路由
r1(config)#ip route 1.1.1.0 255.255.255.0 null 0
2)然后将该协议宣告进BGP协议中——不需要在逐一宣告明细
r1(config)#router bgp 64512
r1(config-router)#network 1.1.1.0 mask 255.255.255.0
2、逐条宣告需要汇总的明细,然后再进行汇总配置
r1(config-router)#aggregate-address 192.168.1.0 255.255.252.0 //此时明细和汇总将一起发出
在进行了 BGP 路由聚合,默认不加 as-set 属性,会丢失某些属性,此时的聚合路由会增加聚合者属性(Aggregator)和原子聚合属性(atomic_aggregate);
聚合者属性:表示了该聚合路由发生的位置(在某个 AS 之内的某个路由器上发生);
原子聚合者属性:表示了该路由为聚合路由,丢失了某些属性,所以此路由可能是不精确,并且接收到该路由器的路由若需要发送该路面的明细路由,自动被抑制。
advertise-map:有条件的聚合路由,并且可以改变属性以及选择 AS-set 中还原那些明细路 由的属性,当 advertise-map(也就是 router-map,在聚合是写成 advertise-map)中匹配的 路由消失,聚合消失,聚合条目后面跟 AS-set 再跟 advertise-map(不配置空表)则聚合条目的属性和 advertise-map匹配的路由的属性一样;
as-set:还原明细路由某些属性(as-set、origin、community、本地优先级)当聚合不在明细产生的路由器上时使用,会携带丢失的属性,将所有路由条目的AS号压入汇总路由中,限制其传回到更新源AS(EBGP水平分割原理);
route-map:与 attribute-map 一致,改变聚合路由属性(所以在书写route-map 时不能存在 match,仅 set 设置属性即可)
summary-only:仅发送聚合路由
suppress-map:抑制列表,选择过滤某些匹配的路由
反射器——有条件的打破了ibgp水平分割;
三个角色:RR(反射器)、客户端、非客户端;这三个角色组成一个簇,且三者均为IBGP邻居关系;
2、反射器规则:非反射客户端之间不可以传递路由;
r1(config)#router bgp 1
r1(config-router)#neighbor 2.2.2.2 route-reflector-client //定义该邻居为客户端,同时本地成为RR
1、缺点:反射器收到两个或两个以上到达同一目的的路径时,会选择出一条最优路径反射给客户端或非客户端路由器,如此一来,这些客户端和非客户端路由器就丧失了对多条路径判断最优的权利;
联盟
1、概述:
把一个大AS划分成若干个小AS,小AS使用私有AS号(64512-65535),不对其他大AS公开;使得小AS之间出现类EBGP邻居关系,从而打破了IBGP水平分割,使邻居间路由条目可以实现中转;其本质是为了减少建邻的一种措施,和反射器一样;同时方便管理,思路与OSPF区域思想类似;
联盟之间的邻居传递路由需要携带AS_path,用于防止大AS内联盟之间的环路,该AS_path用【】括起来,在传出大AS时去掉该值;
2、配置
r1(config)#router bgp 64512
r1(config-router)#bgp router-id 1.1.1.1
r1(config-router)#neighbor 2.2.2.2 remote-as 64513 //声明邻居的建邻ip地址及所在的小AS号
r1(config-router)#neighbor 2.2.2.2 update-source lo0 //修改更新源的IP地址

r1(config-router)#bgp confederation identifier 1 //联盟内路由器只要存在ebgp邻居关系(包括大AS和小AS),均需要对外声明自己的大AS号,其他无ebgp邻居的路由器可配可不配
r1(config-router)#bgp confederation peers 64513 //联盟之间互指对方的小AS,仅存在ebgp邻居的路由器配置
注:正常情况下,路由条目在穿越AS之间传递时,自身属性会发生变化,但在小AS之间传递时,没有声明的属性,均可传递,除团体属性中的loacl_as;

过滤:
BGP路由的传递流程:bgp路由表-发送策略–发送路由表-接收策略-接收路由表
1、针对邻居的过滤——前缀列表/route-map
1)前缀列表:
r1(config)#ip prefix-list a deny 1.1.1.0/24 //抓需要过滤的流量
r1(config)#ip prefix-list a permit 0.0.0.0/0 le 32 //允许其他所有
r1(config-router)#neighbor 2.2.2.2 prefix-list a in/out //调用,进出方向均可
2)route-map
r1(config)#ip prefix-list gl permit 1.1.1.0/24 //抓需要过滤的流量
r1(config)#route-map gl deny 10 //在route-map中进行拒绝
r1(config-route-map)#match ip address prefix-list gl
r1(config)#route-map gl permit 20 //创建空表,允许其他所有
r1(config-route-map)#exit
r1(config)#router bgp 2
r1(config-router)#neighbor 2.2.2.2 route-map gl in/out //调用时进出方向均可
2、针对BGP路由表——分发列表
r1(config)#ip prefix-list a permit 1.1.1.0/24 抓流量
r1(config-router)#distribute-list prefix a ?
gateway Filtering incoming updates based on gateway
in Filter incoming routing updates
out Filter outgoing routing updates
3、重发布-Route-map
r1(config)#ip prefix-list gl permit 1.1.1.0/24 //抓需要过滤的流量
r1(config)#route-map gl deny 10 //在route-map中进行拒绝
r1(config-route-map)#match ip address prefix-list gl
r1(config)#route-map gl permit 20 //创建空表,允许其他所有
r1(config-route-map)#exit
r1(config)#router bgp 64512
r1(config-router)#redistribute ospf 1 route-map gl //在重发布时进行过滤
默认路由
1、针对单个邻居的默认路由
r1(config-router)#neighbor 2.2.2.2 default-originate
2、对所有邻居的默认路由(全部)——全局路由表中必须有默认路由
1)宣告——起源属性为i
r1(config-router)#default-information originate
r1(config-router)#network 0.0.0.0
2)重发布——起源属性为?
r1(config-router)#default-information originate
r1(config-router)#redistribute static

BGP 路由惩罚——针对 EBGP 邻居传递的路由有效
1) 目的:抑制路由摆动,被惩罚的路由不能参与选路,不能传递;惩罚是针对该路由的路径
2)惩罚值:默认是 0,路由每翻滚一次,惩罚值增加 1000,路由属性每改变一次,惩罚值增加 500;
惩罚门限:开始进行惩罚的惩罚值,默认 2000(大于 2000 是开始惩罚) 重用门限:当惩罚值降低到该值回复路由,默认 750,当惩罚值降低到重用门限一半时,清 除惩罚的记录
半衰期:经过一个半衰期,惩罚值减半,默认 15 分钟
最大惩罚时间:最大成大路由时间,默认 60 分钟
最大惩罚值:重用门限2^(最大惩罚时间/半衰期) ,默认 12000.
中间 4 个可以修改
Max penalty=reuse-limit
2^(maxinum suppress time/half time)
查看:
R1#show ip bgp 1.1.1.0
BGP 后门路由:
Network 对端建立邻居关系的地址,使通过 bgp 学习到其他路由的 AD 为 200 就不会挤掉 IGP学习的路由,这条路由不会加表(AD 值小)但会传递,这样就不会出现邻居翻查看;
EBGP 邻居间非直连建邻(假如说使用环回),使用动态路由协议产生到达对放建立邻居关系的地址路由(到达环回的路由),建立后使用 network宣告到 BGP中,则其 BGP 产生的 路由 AD 值为 20(EBGP 关系)这样会覆盖 IGP 学习到的路由表,然后 IGP 路由没有到达对方建立邻居关系地址的路由(到达环回的路由)则邻居关系会down 掉,然后通过BGP学习的路由在路由表消失,则通过 IGP 学习的路由又会加表,这样会出现邻居翻滚的现象;

R1(config)#router bgp 1
R1(config-router)#network 2.2.2.0 mask 255.255.255.0 backdoor //使用该命令可以将该条路由的管理距离提高

As-path ACL——基于正则表达式
r1(config)#ip as-path access-list 1 permit 2 //抓as-path列表,其中2表示AS号
r1(config)#route-map as deny 10
r1(config-route-map)#match as-path 1
r1(config)#route-map as permit 20
r1(config)#router bgp 64512
r1(config-router)#neighbor 2.2.2.2 route-map as in
正则表达式:
. 匹配任何单个的字符,包括空格
^ 匹配一个字符串的开始字符
$ 匹配一个字符串的结束字符
_ 下划线,匹配一个逗号,大括号,一个输入字符串的开始、一个输入字符串的结尾或一 个空格
| 管道符,它具有逻辑或(O R)的含义,意思是可以匹配两个字符串中的一个
\ 转义字符,用来将紧跟其后的控制字符转变为常规字符

  • 匹配前面字符的任何序列(0 次或多次出现)
  • 匹配前面字符的一个或多个序列(1 次或多次出现)
    ? 匹配前面字符的 0 次或一次出现
    [] 表示一个范围