动态路由- BGP
概述 BGP Border Gateway Protocol 边界网关协议,,是一种运行于TCP上的自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。 早期发布的三个版本分别是BGP-1、BGP-2和BGP-3,1994年开始使用BGP-4,2006年之后单播IPv4网络使用的版本是BGP-4,其他网络(如IPv6等)使用的版本是MP-BGP。 MP-BGP是对BGP-4进行了扩展,来达到在不同网络中应用的目的,BGP-4原有的消息机制和路由机制并没有改变。MP-BGP在IPv6单播网络上的应用称为BGP4+,在IPv4组播网络上的应用称为MBGP(Multicast BGP)。 历史 为方便管理规模不断扩大的网络,网络被分成了不同的自治系统。1982年,外部网关协议EGP(Exterior Gateway Protocol)被用于实现在AS之间动态交换路由信息。但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。 BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。 虽然BGP用在AS之间传递路由信息,但并非所有AS之间传递路由信息都要运行BGP。如数据中心上行到Internet的出口上,为了避免Internet海量路由对数据中心内部网络影响,设备采用静态路由代替BGP与外部网络通信。 受益 BGP从多方面保证了网络的安全性、灵活性、稳定性、可靠性和高效性: BGP采用认证和GTSM的方式,保证了网络的安全性。 BGP提供了丰富的路由策略,能够灵活的进行路由选路,并且能指导邻居按策略发布路由。 BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。 BGP使用TCP作为其传输层协议(端口号为179),并支持BGP与BFD联动、BGP Tracking和BGP GR和NSR,提高了网络的可靠性。 在邻居数目多、路由量大且大多邻居有相同出口策略场景下,BGP用按组打包技术极大提高了BGP打包发包性能。 BGP相关名词说明 名词 说明 BGP 边界网关协议(Border Gateway Protocol)是互联网上一个核心的去中心化自治路由协议,它通过维护IP路由表或前缀表来实现自治系统(AS)之间的可达性大多数ISP使用BGP来与其他ISP创建路由连接,特大型的私有IP网络也可以使用BGPBGP的通信对端(对等实体,Peer)通过TCP(端口179)会话交换数据,BGP路由器会周期地发送19字节的保活消息来维护连接。在路由协议中,只有BGP使用TCP作为传输层协议 IBGP 内部边界网关协议。同一个AS内部的两个或多个对等实体之间运行的BGP被称为IBGP IGP 内部网关协议。同一AS内部的对等实体(路由器)之间使用的协议,它存在可扩容性问题:1. 一个IGP内部应该仅有数十(最多小几百)个对等实体2. 对于端点数,也存在限制,一般在数百(最多上千)个Endpoint级别IBGP和IGP都是处理AS内部路由的,仍然需要IGP的原因是:1. IBGP之间是TCP连接,也就意味着IBGP邻居采用的是逻辑连接的方式,两个IBGP连接不一定存在实际的物理链路。所以需要有IGP来提供路由,以完成BGP路由的递归查找2. BGP协议本身实际上并不发现路由,BGP将路由发现的工作全部移交给了IGP协议,它本身着重于路由的控制 EBGP 外部边界网关协议。归属不同的AS的对等实体之间运行的BGP称为EBGP AS 自治系统(Autonomous system),一个组织(例如ISP)管辖下的所有IP网络和路由器的整体参与BGP路由的每个AS都被分配一个唯一的自治系统编号(ASN)。对BGP来说ASN是区别整个相互连接的网络中的各个网络的唯一标识。64512到65535之间的ASN编号保留给专用网络使用 RouteReflector 同一AS内如果有多个路由器参与BGP路由,则它们之间必须配置成全连通的网状结构——任意两个路由器之间都必须配置成对等实体。由于所需要TCP连接数是路由器数量的平方,这就导致了巨大的TCP连接数为了缓解这种问题,BGP支持两种方案:Route Reflector、Confederations路由反射器(Route Reflector)是AS内的一台路由器,其它所有路由器都和RR直接连接,作为RR的客户机。RR和客户机之间建立BGP连接,而客户机之间则不需要相互通信RR的工作步骤如下:1. 从非客户机IBGP对等实体学到的路由,发布给此RR的所有客户机2. 从客户机学到的路由,发布给此RR的所有非客户机和客户机3. 从EBGP对等实体学到的路由,发布给所有的非客户机和客户机RR的一个优势是配置方便,因为只需要在反射器上配置 工作负载 Workload,即运行在Calico节点上的虚机或容器 全互联 全互联网络(Full node-to-node Mesh)是指任何两个Calico节点都进行配对的L3连接模式 BGP 应用 国内IDC机房需要在 CNNIC (中国互联网信息中心)或 APNIC (亚太网络信息中心)申请自己的IP地址段和AS号,然后将自己的IP地址广播到其它网络运营商的AS中,并通过BGP协议将多个AS进行连接,从而实现可自动跨网访问。此时,当用户发出访问请求后,将根据BGP协议的机制自动在已建立连接的多个AS之间为用户提供最佳路由,从而实现不同网络运营商用户的高速访问同一机房资源。 BGP的运行 BGP使用TCP为传输层协议,TCP端口号179。路由器之间的BGP会话基于TCP连接而建立。运行BGP的路由器被称为BGP发言者(BGP Speaker),或BGP路由器。两个建立BGP会话的路由器互为对等体(或称通信对端/对等实体,peer)。BGP对等体之间交换BGP路由表。 BGP路由器只发送增量的BGP路由更新,或进行触发更新(不会周期性更新)。 BGP具有丰富的路径属性和强大的路由策略工具。...