BGP基本配置
1,BGP建邻的基本配置
1,BGP对等体关系直接建邻
R1:
[r1]bgp 1 --- 启动bgp进程 --- OSPF中1是进程号 BGP中1是AS号
[r1-bgp]router-id 1.1.1.1 --- 配置RID
[r1-bgp]peer 12.0.0.2 as-number 2 --- 指定邻居
R2:
[r2]bgp 2
[r2-bgp]router-id 2.2.2.2 [r2-bgp]peer 12.0.0.1 as-number 1 --- 相互指定
[r1]display bgp peer --- 查看bgp邻居表的命令
2,IBGP对等体关系之间的环回建邻
由于IBGP邻居处于同一个AS中,一般情况下,一个AS中存在大量的备份路径,若使用物理接口建立邻居关系,将浪费这些备份或者负载均衡资源,故建议使用环回接口来进行IBGP对等体关系的建立。
[r2-bgp]peer 3.3.3.3 as-number 2
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0 [r3-bgp]peer 2.2.2.2 as-number 2
[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
使用的源IP为环回接口的IP地址
注意:在使用环回接口建立对等体关系时,一定要修改发送接口
3,EBGP对等体关系之间的非直连建邻
注意:在EBGP对等体关系之间,一般不具备非直连建邻的路由基础,所以需要先保证地址可达才行。
[r4-bgp]peer 5.5.5.5 as-number3
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2 --- 因为EBGP对等体之间一般是直连建邻,所以数据包中的TTL值设置为1,要想非直连建邻,则需要这个值改大。[r4-bgp]peer 5.5.5.5 ebgp-max-hop --- 如果后面不跟参数,则代表改为最大TTL值255
2,发布路由
1,network --- 在BGP中,只能用来发布路由条目信息
注意:只要是路由表中存在的路由条目信息,BGP都可以通过network进行发布
目标网段信息及掩码必须和路由表中的完全一致才行。
[r1-bgp]display bgp routing-table --- 查看bgp表 :::
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
network:目标网段信息和掩码
nexthop:BGP的一个路径属性 --- 谁发的路由信息,下一跳就是谁;如果是自己发的,下一跳就是0.0.0.0
*:代表可用 --- 设备每收到一条路由信息都会检查其下一套的可达性,即根据下一跳在路由表中递归查询,只要可达,则该路由信息可用。>:代表优选 --- 当收到到达相同网段存在多条路由信息时,BGP将在其中根据属性优选出一条加载到路由表中,这条优选路由将赋予这个标记。
注意:只有一条路由条目是可用且优选的,他才能够被加到路由表中,也才能够被优选标记。
1.1.1.0/24 EBGP 255 --- 通过EBGP对等体学到的BGP路由信息,其标记位EBGP,默认的优先级为2555
i --- 状态码i --- 代表BGP路由信息是从自己IBGP对等体处学到的。
i 1.1.1.0/24 12.0.0.1 --- 因为在AS内部存在AS-BY-AS规则,所以默认情况下传递的属性信息是一致的,因为这个吓一跳也属于路径属性之一,默认情况下也不会传递,则将可能导致路由可用性校验失效。
[r2-bgp]peer 3.3.3.3 next-hop-local --- 在给3.3.3.3传递路由信息是将下一跳属性改为本地。
1.1.1.0/24 IBGP 255 ---通过IBGP对等体学到的BGP路由信息,其标记位IBGP,默认优先级为255
路由表中的Nexthop直接使用的是BGP实行中的下一跳,因为之前进行过可用性校验,所以,可以保证能够递归查找到这个下一跳。
2,重发布
[r2]bgp 2
[r2-bgp]import-route ospf 1 --- 将OSPF的路由信息导入到BGP中。OGN --- 起源码 --- i,e,? --- 用来表示路由条目的起源
i:代表该路由信息起源于IGP协议(不局限于IGP协议,包括静态,直连),代表该路由条目起源于AS内部 --- 通过network发布出来的路由信息其起源码为i。
e:代表该路由信息起源于EGP协议 --- EGP指的是BGP之前使用的外部网关协议
?:代表通过除了以上两种方式学到的路由 --- 包括重发布导入的起源码也是?
7,BGP的路由聚合
自动聚合 --- 1,不常用,因为该方法只能针对重发布进来的路由信息进行聚合
2,自动聚合的路由只能按照主类进行聚合,将造成巨大的路有黑洞。所以
华为设备的BGP自动聚合默认是关闭的。
1,抓取流量
[r2]ip ip-prefix aa permit 172.16.0.0 22 greater-equal 24 less-equal 24
2,做路由策略
[r1]route-policy aa permit node 10
Info: New Sequence of this List. [r1-route-policy]if-match ip-prefix aa
3,在重发布过程中调用路由策略
[r1]bgp 1
[r1-bgp]import-route direct route-policy aa [r1-bgp]summary automatic --- 开启自动聚合
*> 172.16.0.0 127.0.0.1 --- 通过自动聚合会发布一条新的汇总路由,他是不携
带子网掩码的,因为按照主类汇总,则子网掩码取主类默认值,而且通过聚合发布的路由信息其下一跳属性为127.0.0.1
注意:自动聚合之后,发布的汇总路由信息将在本地路由表中产生一条指向汇总的空接口,自动防环。
状态码 --- S --- suppressed--- 抑制 --- 抑制路由条目的传递
手工聚合 --- 因为自动聚合存在两个缺陷,所以如果需要对汇总进行精准把控时,手工具和是更理想的方案。
[r1-bgp]aggregate 172.16.0.0 22 --- 手工聚合
*> 172.16.0.0/22 127.0.0.1 --- 手工聚合发布的路由条目将携带掩码信息,并且下一跳也是指向127.0.0.1,则其也会自动生成一条到达汇总网段指向空接口的路由进行防环。
手工聚合的问题:1,发布聚合路由的情况下,不会抑制路由明细,导致汇总操作并没有减少路由条目数量,反而增加了。
2,在进行汇总的时候,发布的汇总路由不会继承明细路由的属性,尤其是AS_PATH,则将导致汇总路由部分属性缺失,甚至可能出现环路。
为了避免以上两个问题产生,我们必须在配置过程中增加命令完成
[r4-bgp]aggregate 172.16.0.0 22 detail-suppressed --- 在发布汇总路由条目的同事将抑制所有明细路由
但是,因为BGP协议的一些特殊性,我们往往不能将所有的明细路由全部抑制,
只能抑制部分的路由信息 --- 所以我们需要使用到suppressed-policy。
permit允许 prefix前缀 policy策略 suppress抑制
node节点 match匹配 aggregate汇总
[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 aa3,使用抑制策略调用路由策略
[r4-bgp]aggregate 172.16.0.0 22 suppress-policy aa
对于第二个问题,我们专门设计了一个AS_SET关键字,如果在配置命令的时候,将这个关键字激活,则BGP在汇总路由的时候,将携带上明细的AS_PATH属性,来进行防环
[r4-bgp]aggregate 172.16.0.0 22 suppress-policy aa
*> 172.16.0.0/22 127.0.0.1 0 {1 4}?
ATOMIC_AGGREGATE和AGGREGATOR
ATOMIC_AGGREGATE --- 纯粹预警属性 --- 只有在抑制全部明细路由时才会携带
AGGREGATOR --- 将携带汇总者的RRID以及其所在AS号
Aggregator:AS 2,Aggregator ID 4.4.4.4 Atomic-aggregate
[r4]display bgp routing-table 172.16.0.0 --- 查看一条路由的详细情况
8,路由反射器
Router Reflector --- 路由反射器 --- RR --- 我们可以通过配置,将某些设备在一定的条件下设置为路由反射器,之后该设备将可以反射所学到的IGBP路由信息。
路由反射器(RR)的同时,必须在他的IBGP对等体关系选择一个或者多个设备为他的客户(client),RR和客户之间所构成的系统我们称为反射簇(Cluster)。每一个反射簇都将使用RR的RID作为簇ID,其余没有称为RR客户的IBGP对等体关系,我们称其为非客户。
路由反射器的反射规则: 口诀:“非非不传”
1,当路由反射器从自己客户处学习到的路由信息,会反射给自己所有的客户以及非客户。
2,如果路由反射器从自己的非客户处学习到的路由信息,则会反射给自己所有的客户但不能反射给非客户。
3,当路由器执行路由反射时,他只讲自己使用的最优的BGP路由进行反射。
一台设备在不同的反射簇可以承担不同的角色,RR或者用户
IBGP水平分割 --- 当一个路由器从一个IBGP对等体处学到某条BGP路由时,他讲不能将这条路由信息告诉其他IBGP对等体关系。