目录
BGP优势:
1.BGP基于TCP工作(端口号为179),与TCP建立连接就可以建立BGP邻居关系
2.BGP承载上万条路由条目,而IGP仅能承载上千条;
3.BGP路由器只传递路由条目,不会暴露AS内的拓扑信息,更加安全;
4.支持MPLS/VPN协议,用于传递客户VPN路由;
BGP的特征:
1.BGP是距离矢量单位,邻居之间之间传递路由,每条BGP路由都携带多种属性
2.可以使用这些属性配置路由策略,实现灵活的路由选择,这是IGP协议无法做到的
BGP协议的应用场景:
1.大型企业的内部,存在多个分支,每个分支属于一个AS,通过BGP协议在不同分支之间传递路由;
2.企业可以与运营商之间运行BGP协议,企业与运营商之间互相传递路由
BGP原理
BGP的协议报文
BGP有限状态机
BGP对等体
- 运行BGP的路由器被称为BGP Speaker或者BGP路由器
- 两台BGP路由器之间建立的关系叫BGP对等体(Peer)也叫邻居,对等体之间交换BGP路由表
- BGP分为两种:EBGP和 IBGP
EBGP Peer: 位于不同AS的路由器之间的BGP邻居关系
- 互为EBGP Peer的路由器彼此所属的AS号不同
- EBGP Peer 一般基于直连接口建立
- Neighbor命令所指定的邻居IP地址要可达,TCP连接要能够正确建立
- EBGP的路由器管理距离为20,因为AS之间BGP比IGP更优
IBGP Peer: 同属一个AS的路由器之间建立的BGP邻居关系
- 互为IBGP Peer 的BGP路由器属于同一个AS;
- IBGP Peer一般基于Lookback接口建立,Peer之间可以跨越路由器,只要TCP连接能够正确建立
- IBGP的路由器管理距离为200,因此AS内部IGP更优
BGP的邻居表:包含了此台BGP路由器所有的邻居,以及他们之间的状态
BGP默认每隔60秒发送一次BGP/TCP存活消息,保持时间为180秒
BGP路由表
- 每台BGP路由器独立维护一张BGP路由表,包含了本地导入以及从BGP peer 学习所有BGP路由;
- BGP路由表中可用、最优的路由(标记为*>)将会加载到全局IP路由表中;
* 代表路由表可用
> 代表此路是最优的,最优的路由一定是可用的路由
i 代表此路是通过IBGP学习的,如果空的代表从EBGP学习到或者本地引入的
BGP路由的生成
- BGP本身不会自动产生路由,必须要将 IGP的路由引入到BGP路由表中,引入方式有2种
BGP路由的传递
- BGP使用update报文将路由条目发送给BGP Peer
- BGP 传递路由遵循以下规则:
- 仅把BGP路由表中可用且最优(*>)的路由传递给BGP peer
- 从EBGP peer 获得的路由,会发送给所有的BGP peer (包括EBGP和 IBGP)
- 从 IBGP获得的默认会通告给它的EBGP peer (如果BGP同步开启则需要再判定)
BGP在AS内部的环路避免机制
BGP 作为一种距离矢量路由协议,BGP通过水平分割防止AS内部的环路
--从IBGP获得的路由不向它的IBGP peer通告,以此来防止循环发生
--IBGP在路由器通告时也不会改变路由的下一跳,进一步防止循环的发生
BGP在AS之间的环路避免机制
- BGP 同时还采用AS-Path属性来防止AS之间的环路
- EBGP向对等体通告路由时附加自己的AS号存放在AS-Path属性字段中,收到的EBGP对等体Update 报文时检查AS-Path,如果发现自己的AS号则丢弃该路由,EBGP是依靠路由经过的AS路径来发现循环的
- BGP的路由黑洞
这些设备由于未运行BGP,因此自然不会收到BGP传递来的路由信息
当有数据包经过这些设备时,因为没有相关的路由信息,数据包将会被丢弃
避免路由黑洞问题的方法---BGP同步
解决路由黑洞问题的方法:
---路由重分布:把BGP的路由重发布到AS内的IGP
----使用MPLS:使用MPLS的转发机制解决穿越AS问题
---IBGP全互联:在穿越路径上IBGP启用全连接,确保所有的BGP路由过路设备都知道
BGP的next-hop 不可达问题
·BGP是AS-by-AS的路由协议,而不是router-by-router的路由协议
·在BGP中,next-hop并不意味着下一台路由器,而是下一个AS的IP地址
- ·EBGP中,默认next-hop为发送更新的邻居路由器的IP地址
·IBGP中,从EBGP传来的next-hop属性在IBGP中保持不变的被传递
小结:
1.BGP协议用于AS之间传递路由,基于TCP 179工作,IP报文的协议号为6,并且可以手动指定更新源 ;
2.BGP协议特点在于能承载大量路由,且有丰富的属性用于路由 策略 ;
3.BGP协议的工作主要通过open 、update 、notification 、keepalive 、router-refresh 、五种报文,其中update报文用于承载路由条目 ;
4.BGP路由器之间有IBGP与EBGP两种对等体类型,用6种状态来标识与对等体的关系,其中established状态是正常工作的状态 ;
5.BGP不会产生路由,需要从IGP中引入,仅有可用最优的路由会发给邻居,并且依据路由传递规则发送路由 ;
6.从邻居收到的路由会放入BGP路由表中,如果是可用最优的才会加载到本地IP路由表中 ;
7.BGP在AS内部采用水平分割防止环路,AS之间采用AS-Path防止环路,水平分割会导致路由黑洞的问题,有路由重分布、IBGP全互联、MPLS等方式解决路由黑洞问题
8.EBGP传递来的路由可能存在下一跳不可达问题