简单认识BGP路由协议


前言

BGP:边界网关路由协议 无类别的路径矢量EGP协议;

EGP类别的路由协议,用于AS与AS间进行路由条目共享;

AS编号 0-65535标准编号,其中1-64511公有 64512-65535私有
32位二进制构建为扩展编号;

http://www.cidr-report.org IANA

设计特性:
1、可靠性—大量的路由共享,取消周期更新      TCP 179端口工作
   TCP 仅基于单播通信     BGP协议需要单播建立邻居关系(手工指定邻居的ip地址)
   BGP可以非直连建邻(peer),BGP承载于IGP之上;
2、可控性 --- 建邻、路由宣告、选路控制(干涉选路)--及其容易进行
3、AS-BY-AS    以一个AS为一跳

一、工作在AS与AS之间的EGP类别协议

AS—自治系统   标准AS号长度为16位—0-65535  
 其中1-64511 公有    64512 -65535 私有
    扩展AS号长度 32位   约42亿
http://www.cidr-report.org/as2.0/

BGP协议为不同AS间共享路由,工作时隔离两个AS的内部网络,形成一个独立的交互空间;且同时可以实施强大的策略来干涉选路;

IGP追求:收敛速度快      选择路径佳(无环)     占用资源少  hop-by-hop
EGP追求:可控性        可靠性         AS-BY-AS

可控性—BGP协议不是路由的产生者,仅为搬运者,且AS间正常应该存在大量的链路来保障稳定性;故BGP协议传递的路由条目很难默认最佳选路;--需要管理员对路由进行大量的策略来干涉选路;

可靠性—BGP协议虽然像距离矢量协议一样仅传递路由条目,但更新量依然很大;
      为了避免对设备资源的占用选择了增量更新---仅触发、无周期   
      故需要保障所有的路由传递到位—可靠    因此BGP协议基于TCP工作
      TCP的三次握手条件使得TCP只能基于单播工作,同时BGP需要非直连建邻;
      BGP基于IGP之上,先IGP使BGP设备间IP可达,然后BGP才能基于TCP建立非直连邻居关系;

AS-BY-AS—以一个AS为一跳,将一个AS看成一个整体;

二、BGP特点

1)无类别路径矢量 -----距离矢量的升级版—AS–BY–AS
2)使用单播更新来发送所有信息;基于TCP 179端口工作
3)增量更新–仅触发无周期
4)具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
5)可以在进项和出项对流量实施强大的策略–可控性
6)默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
7)BGP支持认证和聚合(汇总)

三、BGP数据包

基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障;

首先通过TCP的三次握手来寻找到邻居;

Open       仅负责邻居关系的建立,正常进收发一次即可;携带route-id,hold time 默认3min
Keeplive    保活    周期1min查询邻居关系是否存在;实际保活TCP会话;
Update     携带路由条目     目标网络号+各种属性
Notification   出现错误数据时收发;

四、BGP的工作过程

管理员定义邻居的ip地址,前提要求对邻居ip可达; — IGP可达
启动BGP协议后,先目标端口为179进行TCP的三次握手来建立TCP的会话;
会话建立后,收发open报文来建立邻居关系,生成邻居表
邻居关系建立后,邻居间使用update 共享路由条目,在收发了路由信息后,本地生成BGP表
Bgp表中装载本地发出及接收到的所有路由条目;
之后路由器将BGP表中的最优路径(不一定是最佳选路,仅为BGP参数最佳)加载于路由表中;
收敛完成!仅keeplive周期保活即可;

结构突变:
1、新增网段 – BGP更新源设备将使用update来告知本地所有的邻居
2、断开网段 – BGP更新源设备将使用update来告知本地所有的邻居
3、无法沟通 – 3min hold time到时时断开邻居关系和TCP会话,之后删除从该邻居处学习到的所有信息;

BGP更新源设备并不一定直连断开或新增网段的设备,而是第一台将该路由发布到BGP协议中的路由器;

五、专业名词

EBGP 外部的BGP邻居关系,两台处于不同AS的BGP路由器间建立的邻居关系
IBGP 内部的BGP邻居关系,两台处于同一个AS内的BGP路由器间的建立的邻居关系

六、BGP的路由黑洞

由于bgp协议可以非直连建立邻居关系,故若两台BGP邻居间存在未运行BGP协议的路由时;可能出现路由条目可以在控制层面正常单播传递,但数据层面流量经过未运行BGP协议的设备时,无法通行;控制层面可达,数据层面不可达;

解决方法:
1、物理或逻辑链路全连
2、全连的BGP邻居关系,所有设备运行bgp;
3、将BGP路由条目重发布到IGP协议中(LAB)
4、最佳方案—MPLS 多协议标签交换

七、BGP的防环机制----水平分割

1、EBGP水平分割—防止EBGP环路

   利用BGP条目中的as-path 属性,该属性将记录所有经过的AS编号;接收到的路由条目中若as-path中存在本地的AS号,将拒绝接收;

2、IBGP水平分割—防止IBGP环路

基于AS-BY-AS特性,BGP的路由条目默认在一个AS内部传递时,其属性不变化;
IBGP水平分割--- 从一个IBGP邻居处学习到的路由条目不得传递给本地其他IBGP邻居;
因为BGP协议具有非直连建立邻居的能力,故在一个AS内部只要设备运行BGP协议,那么其必然存在EBGP邻居关系(一定连接了其他的AS);
IBGP水平分割规则将导致在一个AS内部所有运行了BGP协议的路由器间,均需要建立IBGP邻居关系,才能正常传递路由条目---建立邻居关系的配置成指数增长;

可以使用联邦和路由反射器来解决该问题;

总结

以上就是关于BGP协议的简单介绍,希望对大家认识BGP协议有所帮助。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值