基础知识
BGP:边界网关路由协议
1.属于无类别路径矢量EGP协议;工作于AS之间;
2.什么是AS?
AS为自治系统(比如运营商网络就是一个大的AS)
分为标准和扩展两类编号:
标准AS编号 16位二进制 0-65535 (1-64511为公有 64512-65535为私有)
扩展AS编号 32位二进制
两个名词概念:路径矢量(一个AS为一跳)— 距离矢量(一个路由器为一跳)
3.
BGP协议本身不产生路由,而是转发本地路由表中来自其他协议生成的路由条目;
AS之间正常存在大量的BGP邻居关系,且BGP协议不会计算最佳路径;因此在BGP协议中管理员需要进行策略来干涉选路;
4.EGP协议(外部网关路由协议)和IGP协议(内部网关路由协议)的区别
(1)二者的不同追求
IGP:1、无环(选路佳) 2、收敛快 3、占用资源少
BGP:
1,可控性强(管理员可以方便进行策略干涉选路)
2,可靠性(BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;且BGP协议工作环境中为节约成本,必然出现非直连需要建立邻居关系—单播邻居)— 基于TCP工作 -三次握手四次断开 4种可靠传输机制 – TCP只能基于单播工作
(2)二者的对比与区别
(1)EBGP—外部边界网关协议主要作用是在不同的自治系统间交换路由信息。IBGP—内部边界网关协议主要作用是向内部路由器提供更多信息。
(2)EBGP一般情况下都要求EBGP邻居之间存在物理连接。IBGP不需要IBGP邻居之间有物理连接,只需要逻辑连接即可(IGP通告路由)。
(3)从EBGP邻居学到的路由通告给IBGP和EBGP;从IBGP邻居学到的路由,是否通告给自己EBGP邻居,要根据AS内的BGP和IGP路由表是否同步而定,但不会再通告给IBGP邻居(水平分割,防止环路)。
(4)EBGP防止环路通过AS_PATH属性来实现。IBGP和EBGP使用的BGP属性不同,例如IBGP可以传递LOCAL_PREF(本地优先属性),而EBGP不行。
单播—需要IP可达—依赖IGP BGP承载于IGP之上
AS-BY-AS 以一个AS为一跳
5.BGP特点
1)无类别路径矢量 -----距离矢量的升级版—AS–BY–AS
2)使用单播更新来发送所有信息;基于TCP 179端口工作
3)增量更新–仅触发无周期
4)具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
5)可以在进项和出项对流量实施强大的策略–可控性
6)默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
7)BGP支持认证和聚合(汇总)
BGP数据包
BGP基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障;
首先通过TCP的三次握手来寻找到邻居;
数据包类型与作用:
Open 仅负责邻居关系的建立,正常进收发一次即可;携带route-id;
Keeplive 保活 周期1min查询邻居关系是否存在;实际保活TCP会话;hold time 默认3min
Update 携带路由条目 目标网络号+各种属性
Notification 出现错误数据时收发;
BGP含有的三张表:
(1)BGP邻居表: 邻居列表 show ip bgp summary。
(2)BGP表: 包含了从邻居学习所有路由,以及到达目的网段的多个路径和属性。
(3)路由表: 列出了到达目的网段的最佳路径。 EBGP路由AD为20, IBGP路由AD为200。
运行BGP的路由器有一个独立的表( BGP表)。
路由器将BGP表中最佳路由提供给IP路由表。
BGP工作过程
1、配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP的会话;之后所有的BGP协议数据包基于该会话进行传输;
会话建立后,邻居间正常收发一次open报文建立BGP的邻居关系,生成邻居表;
BGP协议的open报文中将携带本地的RID—生成方式和OSPF一致;仅需要本地及本地所有邻居唯一即可;
邻居关系建立后,默认每1min,使用keeplive周期保活邻居关系(周期保活TCP会话)
2、邻居关系建立后,管理员选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告;使用updata数据包进行邻居间路由共享;之后生成BGP表;— 装载本地发出及接收到的所有路由条目;
默认将最优路径加载于路由表中(最优-仅仅基于BGP的选路规则,不一定为最佳路径;BGP默认不支持负载均衡)
3、收敛完成,仅keeplive周期保活即可;
4、若出现错误信息,邻居间将使用Notification报文进行报错操作
5、结构突变
1)新增 — 本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含
2)断开 — 本地使用updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含
只有到聚合条目中包含的所有明细路由均在本地失效,才告知邻居删除聚合条目
3)无法沟通 — hold time为3min,连续3次未收到邻居的keeplive;断开邻居关系、TCP会话,删除从该邻居处学习到的所有路由;
BGP名词解释:
邻居—直连 因为BGP协议中存在非直连邻居的需求,故BGP邻居称为毗邻关系;
EBGP邻居关系 ---- 外部BGP邻居关系,建邻的两台设备处于不同的AS中
IBGP邻居关系 ---- 内部BGP邻居关系,建邻的两台设备处于相同的AS中
BGP防环机制–为水平分割
1、EBGP水平分割—解决EBGP环路;
依赖了BGP路由条目中的一种属性来进行防环;AS-PASH路径属性;
BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号;
EBGP水平分割—接收到的