BGP:外部网关路由协议
无类别路径矢量型EGP协议;
AS自治系统—标准编号16位二进制,0-65535 ,1-64511公有 64512—65535私有
扩展编号32为二进制
AS之内运行IGP协议,实现全网可达—协议需要,收敛快,选路佳,占用资源少
AS之间运行EGP协议,实现全网互通—协议需要,可靠性—TCP—单播(有非直连建邻)
使用单播更新来发送所有信息;基于TCP 179端口工作;增量更新—仅触发无周期
可控性—BGP协议主要负责搬运IGP协议产生的路由,类似多点双向重发布,对选路不做计算,故需要管理员大量手工的干涉选路
默认不适用负载均衡
AS-BY-AS—以一个AS为一跳
IGP—内部网关协议—RIP OSPF EIGRP ISIS。。。
EGP—外部网关协议—EGP BGP
BGP的四种包(基于tcp传输)
Open包—仅负责邻居关系的建立,正常进收发一次即可,携带route-id
Keeplive—保活 周期1min查询邻居关系是否存在,实际保活TCP会话;hold time 默认为3min
更新包—携带路由条目 目标网络号+各种属性
报错包—出现各种错误数据时收发
BGP工作过程
建邻配置完成后,邻居间基于TCP的179端口,通过TCP的三次握手建立TCP会话;(邻居间已知对端单播地址—地址可达—BGP承载于IGP上)
会话建立后,所有的BGP数据包全部基于TCP会话传递和可靠性的保障
邻居间正常仅收发一次open报文,交互RID,相互认识,建立邻居关系;生成邻居表;
邻居关系建立后;正常每一分钟keep live周期保活TCP会话即可
之后根据网络的实际需要,选择性将本地路由表中通过任何来源产生的路由条目;宣告到BGP协议中,由BGP共享给所有的BGP邻居—更新包update
生成BGP表—>装载本地发出及接收到的所有BGP路由 仅将本地BGP表中最优(参数最好)路由条目加载于本地路由表中默认不支持负载均衡,收敛完成,无周期更新,仅keeplive保活
EBGP:不同AS间的运行的BGP
IBGP:同一个AS间运行的BGP
BGP黑洞:可以非直接建邻:从所有运行BGP协议的路由器路由表来看,目标可达;
但当流量真正转发时流量需要一跳一跳的转发,只要中间有一个设备没设置BGP将造成流量丢失
解决方法:
物理或者逻辑上全连:用网线和Tuunel
邻居关系全连—所有路由器均运行BGP
将BGP重发布到IGP
MPLS—多协议标签交换 MPLS VPN
BGP的水平分割—针对的AS之间的环路
IBGP水平分割-针对AS内部的环路
BGP的路由条目中携带着众多的参数,包括各种BGP属性;其中有一个叫做AS-path
该属性用于记录该路由条目经过的所有AS编号;若BGP协议学习到一条路由;属性中包含了本地的AS号,将拒绝接收
IBGP水平分割,本地从IBGP邻居处,学习到的路由,不得共享给本地的其他IBGP邻居(为了防环),因为AS-BY-AS,故一条路由条目在一个AS内部传递时,其属性不变;
由于BGP协议可以非直接建立邻居,故在一个AS内部,无需专门设置BGP设备来备份邻居关系---每台运行BGP协议的设备均连接其他的AS设备(该AS的边界),为了能将本地从其他AS学习到的路由,分享—IBGP的邻居关系数量随BGP运行的数量指数上升—配置量极大
三种建邻配置:BGP邻居建立,与路由条目宣告是分开的配置
- 直连的EBGP邻居关系建立
[r1]bgp1
[r1-bgp]router-id 1.1.1.1
[r1-bgp]peer 12.1.1.1 as-number 2 对端接口IP地址,以及对端所在的AS编号
- IBGP邻居的建立,在一个AS内部,拓扑正常较为负载;建议使用环回接口地址作为源,目标IP地址,存在备份链路,同时可以多条物理链路传递
[r2]bgp 2
[r2-bgp] peer 3.3.3.3 as-number 2 对端环回的IP地址,以及对端所在的AS号,注意一旦使用环回接口建立BGP的邻居关系,必须将源地址也修改为自身环回接口
[r2-bgp] peer 3.3.3.3 connect-interface loopback 0
3.EBGP邻居间存在多条物理链路时,也建议使用环回接口建立
1.IP可达,建立静态路由
2.正常环回作为源,目IP地址建立邻居关系
3.默认IBGP邻居间数据包的TTL值为255,EBGP邻居间TTL为1;所以一旦使用环回建立EBGP邻居关系,必须修改TTL,否则无法建立
[r4-bgp] peer 5.5.5.5 ebgp-max-hop 2
当建邻配置完成后,邻居间通过三次握手,建立TCP的会话
[r2]display tcp status
当TCP会话建立后,邻居间BGP协议将正常收发一次open报文,建立BGP邻居关系;生成邻居表
BGP的宣告:运行BGP协议的理由可以宣告本地路由表中通过任何协议获取到的路由条目—静态,IGP,直连,而本地通过BGP协议学到的路由,只要在本地依然优秀,将继续将本地的其他BGP邻居传输
注意:宣告时,宣告的条目必须同本地路由表中的记录完全一致
[r1-bgp]network 1.1.1.1 24
一旦进行宣告配置,条目将加载于本地的BGP表中—装载本地发出以及接收到的所有路由信息