BGP的基本配置
1,BGP建邻的基本配置
1,EBGP对等体关系直连建邻
配置方法:bgp 1---启动BGP进程,数字不是进程号时AS号
配置id:router-id 1.1.1.1
建邻:peer 12.0.0.2 as-number 2 --- 手工指定对等体关系
查看邻居表:display bgp peer
2,IBGP对等体之间的换回建邻
由于IBGP邻居处于同一个AS中,一般情况下一个AS中存在大量的备份路径,若使用物理接口建立邻居关系,将浪费这些备份或者负载均衡资源 ,座椅建议使用环回接口来建邻
建邻:peer 3.3.3.3 as-number 2
peer 3.3.3.3 connect-interface loopback 0 --- 指定给3.3.3.3发包时使用的源IP地址为环回接口0的IP地址
注意:使用环回接口时,需要修改发送端口
3,EBGP对等体关系之间的非直连建邻
注意:在EBGP对等体关系之间,一般不具备非直连建邻的路由基础,所以需要先保证网络可达。还需要修改TTL值,因为一般EBGP之间TTL数值为1。
修改TTL时间:peer 5.5.5.5 ebgp-max-hop 2 --一般EBGP之间是直连建邻TTL大小为1,所以需要需要改大,如果不带数值则默认修改为最大255。
2,发布路由
1,network --- 在BGP中只能发布路由信息
注意:只要是路由表中存在的路由条目信息,BGP都可以通过network发布
进入BGP进程;network 1.1.1.0 24 --- 必须与路由表中一致
查看BGP表:display bgp routing-table
Nexthop --- BGP的一个路径属性 --- 谁发的下一跳就是谁,如果是自己则下一跳为0.0.0.0
状态码
*---代表可用---设备每收到一条路由信息,都会检查吓一跳的可达性。即根据下一跳在路由表中递归查询,只要可达,则该路由信息可用。
>---代表优选--- 当收到到达相同网段存在多条路由信息时,BGP将在其中根据属性优选出一条加载到路由表中。这条优选路由将赋予这个标记。
注意:只有一条路由信息时可用且优的,才会被传递并加入到路由表中。通过EBGP对等体学到的BGP路由信息,其标记为EBGP,华为设备默认优先级为255,通过IBGP学习到的,标记为IBGP
I --- 状态码I ---代表BGP路由信息是从自己IBGP对等体处学到的
因为在AS内部存在AS-BY-AS 规则,所以默认情况下传递的属性信息时一致的,因为下一跳也属于路径属性之一,默认请款下也不会传递,则将可能导致路由可用性校验失败。
修改下一跳属性为本地: peer 3.3.3.3 next-hop-local
路由表中的nexthop直接使用的是BGP属性中的下一跳,因为之前进行过可用性校验,所以可以保证能够递归查找到这个下一跳
2,重发布
将OSPF中的路由信息导入到BGP中:import-route ospf 1
OGN---起源码---I、E、?--- 标识路由条目的起源
I---表示该路由信息起源于IGP协议(所有来自于AS内部的路由条目) --- 通过network发布出来的路由信息其起源码为I。
E---表示该路由信息起源于EGP协议 --- EGP指的是BGP之前使用的外部网关协议
?---表示该路由不是通过IGP、EGP协议所学来的信息---重发布导入的路由起源码都是“ ?”
7,BGP的路由聚合
自动聚合 --- 1,该方法只能针对重发布发布的路由信息生效。2,自动聚合的路由只能按照主类进行聚合,将造成巨大的路由黑洞。所以华为设备BGP的默认聚合功能是默认关闭。
1,抓取流量
前缀列表:ip ip-prefix aa permit 172.16.0.0 22 greater-equal 24 less-equal 24
2,做路由策略
Route-policy aa permit node 10
if-match ip-prefix aa
3,重发布过程中调用路由策略
import-route direct route-policy aa
4,开启自动聚合
进入进程:summary automatic
通过路由聚合会发发布一条新的汇总路由,他是不携带子网掩码的,因为按照主类汇总,则子网掩码取主类默认值,而且通过聚合的路由信息下一跳地址为127.0.0.1
注意:自动聚合后,发布的汇总路由信息将在本地路由表中产生一条指向汇总的空接口,自动防环。
状态码 --- S ---suppressed --- 抑制 --- 一致路由条目的传递
手工聚合---因为自动聚合的两个缺陷,所以,如果需要对汇总进行精准把控时,手工聚合将是更理想的方案。
进入进程:aggregate 172.16.0.0 22 ---汇总的网段信息
手工聚合后发布的路由条目将携带掩码信息,并且下一跳也指向127.0.0.1,则其也会自动生成一条指向空接口的路由信息,自动防环
手工聚合的问题:1,发布聚合路由的情况下,不会抑制明细路由,导致汇总操作并没有减少路由条目数量,反而增加了。
2,在进行汇总的时候,发布的汇总路由不会集成明细路由的属性,尤其是AS_PATH,则将其导致汇总路由部分属性确实,甚至可能出现环路
为了避免以上两个问题的产生,我们必须在配置过程中增加命令来完成。
Aggregate 172.16.0.0 22 detail-suppressed --- 在发布汇总路由时抑制其明细路由
但是因为BGP协议的一些特殊性,我们往往不能将其所有的明细路由全部抑制。只能抑制部分的路由信息 --- 所以我们需要使用到 suppressed-policy
1,抓取流量,使用前缀列表
IP ip-prefix aa permit 172.16.1.0 24
2,使用抑制策略匹配流量
route-policy aa permit node 10
if-match ip-prefix aa
3,使用抑制策略调用
进入BGP进程:aggregate172.16.0.0 22 supress-policy aa
对于第二个问题,专门设计了一个AS_SET关键字,如果配置命令的时候,将这个关键字激活,则BGP在汇总路由时,将携带明细的AS_PATH属性,来进行防环
进入BGP进程:aggregate172.16.0.0 22 supress-policy aa as-set
如果明细路由携带的AS_PATH属性不一样,则在激活了AS_SET属性后,汇总路由将会把明细路由的AS号都携带上并用大括号括起来,之后在进行防环的时候,里面所有的AS号都会生效,都不能回传。但是在使用AS_PATH属性进行选路的时候,当作一个AS来看待。
因为聚合后的路由信息存在属性丢失问题,所以这样的汇总路由需要格外地关注。为此我们为BGP专门引入了两个属性 --- ATOMIC_AGGREGATE,AGGREGATOR
ATOMIC_AGGREGATE --- 纯粹预警属性 --- 只有在抑制全部明细路由时才会携带
AGGREGATOR --- 将携带汇总者的RID以及其所在的AS号
查看详细路由信息:display bgp routing-table 172.16.0.0 22
8,路由反射器
Router reflector --- 路由反射器 --- RR --- 我们可以通过配置将某些设备在一定的条件下设置称为路由反射器,之后该设备将可以反射所学习到的IBGP路由信息。
在指定一台路由器称为路由反射器(RR)的同时,必须在他的IBGP对等体关系中选择一个或者多个设备成为他的客户(client),RR和客户之间所构成的系统我们称之为反射簇(cluster)。每一个反射簇都将使用RR的RID作为簇ID。其余没有成为RR客户的IBGP对等体关系,我们称之为非客户。
路由反射器的反射原则:
1,当路由反射器从自己客户处学习到一条路由,则他将会把这条路由信息反射给自己所有的客户以及非客户
2,如果路由反射器从自己的非客户处学习到一条路由,则他将把这条路由信息反射给自己所有的客户但不能反射给自己的非客户。
“非非不传”
3,当路由器执行路由反射时,他只将自己使用的最优的BGP路由进行反射。
9,联邦
10,BGP的选路原则