6、BGP的基本配置
1、BGP对等体关系的建立
1) EBGP对等体之间直连建邻的方法
1--启动BGP进程
[r1]bgp 1---后面这个1不是进程号,而是路由器所在AS的AS号。一台BGP路由器之能启动一个BGP进程
[r1-bgp]
2--配置RID
[r1-bgp]router-id 1.1.1.1
3--手工指定邻居关系
[r1-bgp]peer 12.0.0.2 as-number 2
[r1-bgp]display bgp peer ----查看BGP邻居表
2) IBGP对等体之间环回建邻的方法
由于IBGP对等体同处于一个As内部,正常一个AS内部将存在大量备份路径;若使用物理接口建立邻居关系,将浪费备份链路及负载均衡资源;故建议使用环回接口进行BGP邻居关系的建立。
[r2-bgp]peer 3.3.3.3 as-number 2
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0---指定邻居发包时使用环回0接口对应的IP地址作为源IP发包
注意:在使用环回接口建立对等体关系时,一定要修改发送接口
EBGP对等体之间环回建邻的方法
首先,先得保证环回网段之间具备路由条件才行,一般建议使用静态路由
EBGP对等体之间为了保证使用直连建邻,所以,将TTL值设置为1;如果需要非直连建邻,则必须将TTL值改大才行.
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2---将和5.5.5.5建邻的数据包中的TTL值改为2
[r5-bgp]peer 4.4.4.4 ebgp-max-hop ---后面不加数字,则代表将TTL值 改为255
总结---建议EBGP对等体关系建立使用第一种方法,IBGP对等体关系建立使用第二种方法
2、发布路由
1)通过Network命令来发布路由
BGP可以通过network命令将所有路由表中存在的路由进行发布.
[r1-bgp]network 1.1.1.0 24 --- network后面跟目标网段及掩码信息,目标网段及掩码信息必须和路由表中完全相同.
[r1-bgp]display bgp routing-table ---查看BGP表
在BGP表中,处理第一列network字段外,剩余后面的字段都属于BGP的属性,包括下一跳字段---谁发送的路由信息,下一跳就写谁。如果是自己始发的路由信息,则下一跳就写0.0.0.0.
在路由信息最前方所存在的符号---状态码
*--代表可用---设备收到一条路由信息,首先先会检查其下一跳的可达性,如果可达,则代表该路由信息可用,如果不可达,则代表该路由信息不可用。
>----代表优选---当设备收到到达相同网段多条可用的路由信息时,则BGP将在其中选择最优一条前面增加这个标志。
注意:只有最优的路由信息可以传递并且加入到路由表中。
1.1.1.0/24 EBGP 255 0 D 12.0.0.1GigabitEthernet0/0/0
当设备从EBGP对等体处学来一条路由信息后,并且该信息可用且优,则将会加载到路由表中,其协议字段为--- EBGP,默认优先级为255.
i---当一条路由信息是从IBGP对等体学来的,则状态码将添加I标识.
因为AS-BY-AS的规则,所以,一个As内部的路由信息的属性默认情况下是不会发生变化的,包括下一跳属性。默认情况下也不会传递,则将坑导致路由可用性校验失败
[r2-bgp]peer 3.3.3.3 next-hop-local ----给3.3.3.3发路由信息时将下一跳改为本地的IP地址
1.1.1.0/24 IBGP 255 0 RD 2.2.2.2 GigabitEthernet0/0/0
当设备从IBGP对等体处学来一条路由信息后,并且该信息可用且优,则将会加载到路由表中,其协议字段为---IBGP,默认优先级为255.
2)通过重发布进行批量发布路由
[r2-bgp]import-route ospf 10
OGN---起源码---标识BGP路由的来源
l---表明这些路由都是起源于IGP(包含静态和直连)协议.
E---代表该路由信息起源于EGP协议---EGP指的是BGP之前使用的外部网关协议
?--- 通过除了以上两种方法学到的路由
1、通过NETWORK命令发布出来的路由信息---- i
2、通过EGP协议(EGP指的是BGP之前使用的外部网关协议EGP) ---- e
3、通过除了以上两种方法学到的路由---?
7、BGP的路由聚合--- BGP的路由汇总
1、自动聚合---
1、自动聚合功能只能针对重发布的路由条目生效
2、自动聚合只能将明细路由直接汇总到主类。---这样将会产生巨大的路由黑洞。所以,华为设备默认是关闭自动汇总功能的。
通过路由策略重发布部分路由条目
1、抓取流量
[r1]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24 less-equal 24
2、创建路由策略
[r1]route-policy aa permit node 10
[r1-route-policy]if-match ip-prefix aa
3、在重发布中调用
[r1-bgp]import-route direct route-policy aa
4、开启自动聚合的命令
[r1-bgp]summary automatic ---自动聚合的开启命令
s ---状态码 ---- suppressed ----抑制
*> 172.16.0.0 127.0.0.1 ----通过自动聚合会发布一条新的路由汇总,他是不携带子网掩码的,因为按照主类汇总,则子网掩码取主类默认值,而且通过聚合发布的路由信息其下一跳属性为127.0.0.0
汇总之后,也会在BGP中发布路由信息,下一跳指向本地环回地址,最终也会加表,出接口将递归到空接口。
注意:自动聚合之后,发布的汇总路由将在黑洞路由器上自动生成一条到达汇总的空接口路由用来防环。
2、手工聚合----因为自动汇总存在的两个缺陷,所以,当我们需要对路 由汇总进行精准的把控时,手工聚合将是更理想的解决方案。
[r1-bgp]aggregate 172.16.0.0 22
手工聚合后发布的路由条目将携带掩码信息,也会自动生成一条指向汇总网段的空接口路由进行防环,并且下一跳也是127.0.0.0
手工聚合的两个缺陷---
1、在聚合是不会抑制明细路由,导致路由数量不减反增
2、汇总路由将不携带明细路由中的一些属性参数,包括AS_PATH属性,这个属性主要是用来防环的,如果不携带,则将可能导致环路的产生。
为了避免以上两个问题的产生,手工聚合需要在命令中添加一些额外的参数来完善以上两个缺陷。
1、解决明细路由抑制问题
[r4-bgp]aggregate 172.16.0.0 22 detail-suppressed ----将在汇总的时候将所有的明细路由进行抑制
但是,由于BGP协议的一些特殊性,我们往往不能将他所有的明细全部抑制,只能抑制部分明细路由,来保证BGP选路的合理性和灵活性
所以,我们想要实现这个效果,需要使用到---抑制策略---suppressed - policy
1、抓取流量
[r4]ip ip-prefix aa permit 172.16.1.0 24
2、路由策略匹配前缀列表
[r4]route-policy aa permit node 10
[r4-route-policy]if-match ip-prefix aa
3、通过抑制列表进行调用
[r4-bgp]aggregate 172.16.0.0 22 suppress-policy aa
2、解决汇总路由不携带AS_PATH属性问题--- AS_SET
[r4-bgp]aggregate 172.16.0.0 22 suppress-policy aa as-set
*>172.16.0.0/22 127.0.0.1 0 { 1 4}?---当明细路由来自来两个或多个不同的As中,并且我们在拥有所有明细路由的As中进行手工聚合,这种情况下,我们激活AS_SET,则汇总路由的AS_PATH属性中将携带所有明细的As号,但是将用大括号括起来。在防环时,大括号中的AS都将不能回传。但是当AS_PATH属性被用来选路时,大括号将被看作是一个AS。
因为聚合后的路由会存在属性缺失的情况,所以,这样的路由需要格外进行关注,为此,BGP引入了两个属性---
ATOMIIC_AGGREGATE,AGGREGTOR
ATOMIC_AGGREGATE ---一个纯粹的预警属性,将会携带在聚合路由当中,当看到这个属性,则代表该路由可能存在属性丢失问题,需要格外关注。(这个属性只会出现在抑制了全部明细的汇总路由中。)----把所有的明细路由全部抑制的情况下才会携带
AGGREGTOR---其内容包括聚合操作者所在的AS号及其RID
[r4]display bgp routing-table 172.16.0.0 ---查看一条路由信息的明细信息
Aggregator: AS 2, Aggregator ID 4.4.4.4, Atomic-aggregate---明细全部抑制才会出现
8、路由反射器
Router Reflector ----路由反射器---- RR
我们可以将运行BGP的路由器设置成为路由反射器,而被设置成路由反射器的路由器在一定条件下,将反射学习到的IBGP路由。
我们在指定一台设备成为路由反射器(RR)的同时,需要指定一个或多个他的对等体成为他的客户(client)。RR和客户之间将构成一个系统,我们成为反射簇。每一个反射簇都将使用RR的RID作为簇lD来进行标识。----RR的客户是由手工指定的。其余所有未指定客户的对等体都被认定为非客户。
RR的反射规则:
1,如果路由反射器从自己的客户处学来了一条路由信息,则将反射给自己所有的客户及非客户-
2,如果路由反射器从自己的非客户处学来一条路由信息,则将反射给他的所有的客户,但是不会反射给自己的非客户。----“"非非不传”
3,当路由器执行路由反射时,他只将自己使用的,最优的路由进行反射.---和BGP路由传递的规则相同。