AS的由来
l Autonomous System 自治系统,为了便于管理规模不断扩大的网络,将网络划分为不同的AS
l 不同AS通过AS号区分,AS号取值范围1-65535,其中64512-65535是私有AS号
l IANA机构负责AS号的分发
AS之间传递路由
l AS之间的连接需要使用直连链路,或者是通过运营商建立VPN进行逻辑连接
l AS之间可能是不同的组织机构,使用IGP协议(例如:OSPF协议)传递路由信息将会有安全风险
AS之间传递路由使用BGP
l 因此我们在AS之间传递路由时使用BGP协议(边界网关路由协议 Border Gateway Protocol)
l 相较IGP协议,BGP协议有以下优势:
Ø BGP基于TCP工作(端口号179),因此只要能够建立TCP连接就可以建立BGP邻居关系;
Ø BGP能够承载上万条路由条目,而IGP仅能上千条;
Ø BGP路由器只传递路由条目,不会暴露AS内的拓扑信息,更加安全;
Ø 支持MPLS/VPN协议,用于传递客户VPN路由
BGP的特征
l BGP是距离矢量路由协议,邻居之间直接传递路由,每条BGP路由都携带多种属性
l 可以使用这些属性配置路由策略,实现灵活的路由选路,这是IGP协议无法做到的
BGP协议的应用场景
l BGP协议在企业中的应用主要有以下两个场景
Ø 大型企业的内部,存在多个分支,每个分支属于一个AS,通过BGP协议在不同分支之间传递路由
Ø 企业可以与运营商之间运行BGP协议,企业与运营商之间互相传递路由
BGP的工作原理
l BGP协议报文以单播的形式发送,BGP共有5种,其中路由是承载在Update报文中
BGP的有限状态机
状态之间的转换规则
BGP对等体
l 运行BGP的路由器被称为BGP Speaker或者BGP路由器
l 两台BGP路由器之间建立的关系叫BGP对等体(Peer)也叫BGP邻居,对等体之间交换BGP路由表
l BGP的Peer分为两种:EBGP和IBGP
l EBGP Peer:位于不同AS的路由器之间的BGP邻居关系
Ø 互为EBGP Peer的路由器彼此所属的AS号不同
Ø EBGP Peer一般基于直连接口建立
Ø Neighbor命令所指定的邻居IP地址要可达,TCP连接要能够正确建立
Ø EBGP的路由管理距离为20,因为AS之间BGP比IGP更优
l IBGP Peer:同属一个AS的路由器之间建立的BGP邻居关系
Ø 互为IBGP Peer的BGP路由器属于同一个AS
Ø IBGP Peer一般基于Loopback接口建立,Peer之间可以跨越路由器,只要TCP连接要能够正确建立
Ø IBGP的路由管理距离为200,因此AS内部IGP更优
BGP的邻居表
l BGP邻居表:包含了此台BGP路由器所有的邻居,以及他们之间的状态;
l BGP默认每隔60秒发送一次BGP/TCP存活消息,保持时间为180秒
l 每台BGP路由器独立维护一张BGP路由表,包含了本地导入以及从BGP peer学习所有BGP路由;
l BGP路由表中可用、最优的路由(标记为 *>)将会加载到全局IP路由表中;
BGP路由的生成
l 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内部的环路避免机制
l BGP作为一种D-V距离矢量路由协议,通过水平分割防止AS内部的环路
Ø 从IBGP获得的路由不向它的IBGP peer通告,以此来防止循环的发生
Ø IBGP在路由通告时也不会改变路由的下一跳,进一步防止循环的发生
l BGP同时还采用AS-Path属性来防止AS之间的环路
Ø EBGP向对等体通告路由时附加上自己的AS号存放在AS-path属性字段中,收到EBGP对等体Update报文时检查AS-path,如果发现自己的AS号则丢弃该路由,EBGP是依靠路由经过的AS路径来发现循环的
BGP的路由黑洞
l 由于在AS内部可以跨越设备建立IBGP对等体,因此会出现一些路径上的设备未运行BGP
l 这些设备由于未运行BGP,因此自然不会收到BGP传递来的路由信息
l 当有数据包经过这些设备时,因为没有相关路由信息,数据包将会被丢弃
避免路由黑洞问题的方法 —— BGP同步
l BGP协议为了防止路由黑洞问题,引入了同步机制
l 从IBGP对等体学习到的路由在成为最佳路由并向EBGP对等体通告之前必须被IGP学习到
l BGP同步默认关闭,如果开启则不会产生路由黑洞问题,但同时这些路由将无法正常使用
解决路由黑洞问题的方法
l 要想既不产生路由黑洞问题,又要使得这些路由可用,可采用以下方式:
Ø 路由重分布:把BGP的路由重发布到AS内的IGP
Ø IBGP全互联:在穿越路径上IBGP启用全连接,确保所有BGP路由过路设备都知道
Ø 使用MPLS:使用MPLS的转发机制解决穿越AS问题