BGP协议详细
BGP协议详细分析与配置华为(eNSP)
BGP协议
一、概述
BGP外部网关协议,工作在两个自制系统(AS)之间
- AS:指由同一个技术管理机构管理,使用统一选路策略的一些路由器集合
- AS内部使用内部路由协议,路由器之间相互信任
- 不同AS之间的连接需求推动了外部网关协议的发展,BGP作为外部网关协议,用于在AS之间进行路由控制和优选
二、原理
- 邻居发现
- RTA发起TCP连接
- RTB启动BGP协议,并使用随机端口向RTA的179端口发起TCP连接
- 邻居类型
BGP的邻居可分为两种EBGP和IBGP
- 运行在不同AS之间的BGP路由器建立的邻居关系为EBGP邻居关系
- 运行在AS内部的BGP路由器的邻居关系为IBGP邻居关系
- 邻居建立
三、路由生成
- BGP协议不会自动生成路由信息,都是通过管理员手动导入
- BGP的路由产生可分为Network和import
Network
- Network命令逐条将IP路由表中已经存在的路由引入到BGP路由表中
Import
- import命令是根据运行的路由协议将路由引入到BGP路由表中,同时import命令还可以引入直连和静态路由
[Huawei]router id 2.2.2.2
[Huawei]bgp 100
[Huawei-bgp]peer 10.1.23.3 as-number 200
//使用该命令
[Huawei-bgp]import-route ospf 1
BGP通告原则与路由处理
Update报文
概述
- BGP路由封装在Update报文中通告给邻居
- BGP在邻居建立后开始通告路由信息
Update中的信息
- 网络可达信息(NLRI):公布IP前缀和掩码
- 路径属性:为BGP提供环路检测,控制路由优选
- 撤销路由:描述无法到达且从业务中撤销的路由
路由通告规则
- 通告最优路由
- EBGP获得的最优路由发布给所有BGP邻居
- 通过IBGP获得的最优路由不会发布给他的IBGP邻居
- 从图中我们不难看出IBGP之间不能传递获得的最优路由是为了防止环路
BGP与IGP同步
- 当RTD向RTE通告路由信息之前,必须保证IGP表中也有这条路由信息
- 华为设备同步机制默认关闭
BGP路由处理
- 当BGP邻居收到Update报文时,路由器将执行路径选择算法,来为每一条前缀确定最佳路径
- 得到最佳路径则存储在本地BGP路由表中,然后提交给本地IP路由表
- 被选出的有效的最佳路径路由将会被封装在Update中,发送给对端的BGP邻居
特点
- BGP可以跨越多跳路由器建立邻居关系
- BGP有很多属性携带在路由中
属性
公认必遵:Origin、AS_Path、Next_hop
公认任意:Local_Pref、Atomic_aggregate
可选过渡:Aggregator、Community
- 可选非过渡:MED……
Origin
- 定义路由信息的来源,标记一条路由是怎样成为BGP路由
- 通过network导入的路由,用i标记
- 通过import导入的路由,用?标记
AS_Path
- 防止环路
Next_hop
表示下一跳地址
Local_Preference
- 在IBGP之间有效,不通告给其他AS。表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由
MED
- 在相邻的两个AS之间传递,收到此属性的AS不会再将其通告给其他第三方AS,用于判断流量进入AS时的最佳路由
Community
- 限定路由传播范围
打标记,便于对符合相同条件的路由进行统一处理
路由优选原则
- 该路由是到达目的地的唯一路由,直接优选
- 对到达同一目的地的多条路由,优选优先级最高的
路由聚合
- BGP在AS之间传递路由信息,随着AS数量增加,单个AS规模扩大,BGP路由表会十分庞大,因此需要路由聚合
静态聚合
-
AS100内有4个网段,RTA通过路由聚合屏蔽明细路由,只将一条聚合后的路由10.1.8.0/22发给AS200内的ARB
-
将AS100中的四个网段聚合为一条10.1.8.0/22发布给AS200中的RTB,不难看出10.1.8.0/22可不包含四条路由
实验拓扑
配置路由协议
配置OSPF
配置RIP
配置BGP协议
配置R6
[R6]bgp 200
//配置EBGP关系(与AR4)
[R6-bgp]peer 10.1.5.2 as-number 100
//配置IBGP关系(与AR5)
[R6-bgp]peer 10.1.1.2 as-number 200
//宣告网段
[R6-bgp]network 10.1.1.0 255.255.255.0
[R6-bgp]network 10.1.2.0 255.255.255.0
配置R4
[R4]bgp 100
//建立IBGP关系(与AR6)
[R4-bgp]peer 10.1.5.1 as-number 200
//建立IBGP关系(与AR1)
[R4-bgp]peer 192.168.1.1 as-number 100
//建立IBGP关系(与AR3)
[R4-bgp]peer 192.168.2.2 as-number 100
//使用import导入路由信息
[R4-bgp]import-route ospf 1
配置R1
[R1]bgp 100
[R1-bgp]peer 192.168.1.2 as-number 100
[R1-bgp]peer 192.168.2.2 as-number 100
配置R3
[R2]bgp 100
[R2-bgp]peer 192.168.2.1 as-number 100
[R2-bgp]peer 192.168.1.2 as-number 100
[R2-bgp]peer 10.1.6.1 as-number 300
[R2-bgp]import-route ospf 1
配置R3
[R3]bgp 300
[R3-bgp]peer 10.1.6.2 as-number 100
[R3-bgp]peer 10.1.3.2 as-number 300
[R3-bgp]network 10.1.3.0 255.255.255.0
[R3-bgp]network 10.1.4.0 255.255.255.0
配置R7
[R7]bgp 300
[R7-bgp]peer 10.1.3.1 as-number 300
配置R5
[R5]bgp 200
[R5-bgp]peer 10.1.1.1 as-number 200
路由聚合
# 配置自动聚合R6
[R6]bgp 200
[R6-bgp]summary automatic
手动聚合
[R3]bgp 300
# 10.1.0.0 255.255.248.0可以包含10.1.3.0和10.1.4.0网段
[R3-bgp]aggregate 10.1.0.0 255.255.248.0 detail-suppressed
测试连通性
R6测试R3的连通性
[R6]ping 10.1.4.1
PING 10.1.4.1: 56 data bytes, press CTRL_C to break
Reply from 10.1.4.1: bytes=56 Sequence=1 ttl=252 time=140 ms
Reply from 10.1.4.1: bytes=56 Sequence=2 ttl=252 time=110 ms
Reply from 10.1.4.1: bytes=56 Sequence=3 ttl=252 time=80 ms
Reply from 10.1.4.1: bytes=56 Sequence=4 ttl=252 time=90 ms
Reply from 10.1.4.1: bytes=56 Sequence=5 ttl=252 time=110 ms
--- 10.1.4.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 80/106/140 ms