AS
边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。
BGP
目的
为方便管理规模不断扩大的网络,网络被分成了不同的自治系统。1982年,外部网关协议EGP(Exterior Gateway Protocol)被用于实现在AS之间动态交换路由信息。但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。
BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。
虽然BGP用于在AS之间传递路由信息,但并不是所有AS之间传递路由信息都需要运行BGP。比如在数据中心上行的连入Internet的出口上,为了避免Internet海量路由对数据中心内部网络的影响,设备采用静态路由代替BGP与外部网络通信。
BGP基本概念:
BGP Border Gateway Protocol(当前使用的版本是 BGP-4)
MP-BGP是对BGP-4进行了扩展,来达到在不同网络中应用的目的,BGP-4原有的消息机制和路由机制并没有改变。MP-BGP在IPv6单播网络上的应用称为BGP4+,在IPv4组播网络上的应用称为MBGP(Multicast BGP)。
动态路由协议可以按照工作范围分为IGP以及EGP。IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换;而EGP工作在AS与AS之间,在AS间提供无环路的路由信息交换,BGP则是EGP的一种。 BGP是一种增强的路径矢量路由协议,同时BGP是拥有丰富的策略控制技术的外部网关协议。多运行于AS与AS之间。
BGP分类:
BGP按照运行方式分为EBGP(External/Exterior BGP)和IBGP(Internal/Interior BGP)。
EBGP:运行于不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。 IBGP:运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟。
BGP概述
BGP 其着眼点不在于自动发现网络拓扑,而在于在AS之间选择最佳路由和控制路由的传播。
1.BGP使用TCP作为其传输层协议(监听端口号为179),提高了协议的可靠性,且不需要专门的机制来确保连接的可控性。
BGP进行域间的路由选择,对协议的稳定性要求非常高。因此用TCP协议的高可靠性来保证BGP协议的稳定性。 BGP的对等体之间必须在逻辑上连通,并进行TCP连接。目的端口号为179,本地端口号任意。 2.路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。
3.BGP从设计上避免了环路的发生。
AS之间:BGP通过携带AS路径信息来标记途经的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。 AS内部:BGP在AS内学到的路由不再通告给AS内的BGP邻居,避免了AS内产生环路。 4.支持CIDR 无类域间路由
BGP工作原理
1.BGP报文
BGP的主要任务之一就是向其它自治系统发布该自治系统的网络可达信息也就是说,当一个路由器从IBGP对等体收到一条路由更新信息,在把它通告给它的EBGP对等体之前,要试图验证该目的地能否通过自治系统内部到达(即验证该目的地是否存在于IGP发现的路由表内,非BGP路由器是否可以传递报文到该目的地)。若能通过IGP知道这个目的地,才会把这样一条路由信息通告给EBGP对等体,否则认为BGP与IGP不同步,不进行通告。
2.BGP与IGP交互
上面刚刚介绍了从IBGP对等体学到的BGP路由发送给它的EBGP对等体的前提条件是BGP同步,而同步是通过BGP路由表与IGP路由表的相互引入
BGP引入IGP路由:
BGP的主要工作是在自治系统之间传递路由信息,而不是去发现和计算路由信息。所以,路由信息需要通过配置命令的方式注入到BGP中。
1.network命令 逐条引入 通过Network命令注入到BGP路由表里的路由信息必须存在于IP路由表中。
2.import命令 按协议类型引入,也可以引入静态或直连路由
实验
建立一个全连的bgp环境
基础配置 R1 Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 12.0.0.1/24 up up GigabitEthernet0/0/1 unassigned down down GigabitEthernet0/0/2 unassigned down down LoopBack0 1.1.1.1/24 up up(s) R2 Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 12.0.0.2/24 up up GigabitEthernet0/0/1 23.0.0.1/24 up up GigabitEthernet0/0/2 unassigned down down LoopBack0 2.2.2.2/24 up up(s) R3 Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 23.0.0.2/24 up up GigabitEthernet0/0/1 34.0.0.1/24 up up GigabitEthernet0/0/2 unassigned down down LoopBack0 3.3.3.3/24 up up(s) R4 Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 34.0.0.2/24 up up GigabitEthernet0/0/1 45.0.0.1/24 up up GigabitEthernet0/0/2 unassigned down down LoopBack0 4.4.4.4/24 up up(s) R5 Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 45.0.0.2/24 up up GigabitEthernet0/0/1 unassigned down down GigabitEthernet0/0/2 unassigned down down LoopBack0 5.5.5.5/24 up up(s) LoopBack1 100.0.0.1/24 up up(s)
ospf配置 R2 ospf 1 area 0.0.0.0 network 2.2.2.2 0.0.0.0 network 23.0.0.0 0.0.0.255 R3 ospf 1 area 0.0.0.0 network 3.3.3.3 0.0.0.0 network 23.0.0.0 0.0.0.255 network 34.0.0.0 0.0.0.255 R4 ospf 1 area 0.0.0.0 network 4.4.4.4 0.0.0.0 network 34.0.0.0 0.0.0.255 network 45.0.0.0 0.0.0.255
[R1]bgp 100 -----启动BGP协议,并指定自身AS号 [r1-bgp]router-id 1.1.1.1---手工配置BGPRID [R1-bgp]peer 12.0.0.2 as-number 200 [r2-bgp]peer 3.3.3.3 as-number 200 bgp 200 router-id 2.2.2.2 peer 4.4.4.4 as-number 200 [r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0 [r3-bgp]peer 2.2.2.2 as-number 200 bgp 200 router-id 3.3.3.3 [r4-bgp]peer 5.5.5.5 as-number 300 bgp 200 router-id 4.4.4.4. peer 2.2.2.2 as-number 200 peer 3.3.3.3 as-number 200 [r4-bgp]peer 4.4.4.4 connect-interface LoopBack 0 [r5]ip route-static 4.4.4.0 24 45.0.0.1=-----必须实现路由可达(建议使用静态) bgp 300 peer 4.4.4.4 as-number 200 peer 4.4.4.4 connect-interface LoopBack0---使用环回建邻注意:必须修改更新源 [r4-bgp]peer 5.5.5.5 ebgp-max-hop 2----修改EBGP数据包TTL值 [r5-bgp]peer 4.4.4.4 ebgp-max-hop ----默认改为255