本次将依次介绍BGP路由协议工作原理以及**应用场景**和基本配置。
边界网关协议BGP是一种实现自治系统之间的路由可达,并选择最佳路由、提供无环路的域间距离矢量路由协议。 早期发布的3个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),
1994年开始使用BGP4(RFC1771),2006年之后单播|PV4网络使用的版本是BGP4(RFC4271),其他网络(如|Pv6等)使用的版本是MP-BGP(RFC4760)。
BGP从多方面保证了网络的安全性、灵活性、稳定性、可靠性和高效性,BGP特征如下: (1)BGP采用认证和GTSM的方式,保证了网络的安全性 (2)BGP提供了丰富的路由策略,能够灵活地进行路由选路,并且能指导邻居按策略发布路由 (3)BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。 (4)BGP使用TCP作为其传输层协议(端口号为179),并且支持BGP与BFD联动、 BGP Tracking 和 BGP GR和NSR,提高了网络的可靠性 (5)在邻居数目多、路由量大且大部分邻居具有相同出口策略的场景下,BGP使用按组打包技术极大地提高了BGP打包发包性能。
BGP通过报文的交互完成邻居建立、路由更新等操作,共有Open、 Update、 Notification、 Keepalive 和 Route-refresh等5种报文类型。 (1)open报文:是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系。BGP邻 居在接收到Open报文并协商成功后,将发送 Keepalive报文确认并保持连接的有效性。确认后,BGP邻居间 可以进行 Update、 Notification、 Keepalive和 Route-refresh报文的交换。 (2) Update报文:用于在BGP邻居之间交换路由信息。 Update报文可以发布多条属性相同的可达路 由信息,也可以撤销多条不可达路由信息。 (3) Notification报文:当BGP路由器检测到错误状态时,就向邻居发出 Notification报文,之后BGP 连接会立即中断。 (4) Keepalive报文:BGP路由器会周期性地向邻居发出 Keepalive报文,用来保持连接的有效性。 (5) Route-refresh报文: Route-refresh用于在改变路由策略后请求对等体重新发送路由信息。
当到达同一目的地存在多条路由时,BGP依次对比下列属性来选择路由。 (1)优选协议首选值( Prefva)最高的路由。协议首选值( Prefval)是华为设备的特有属性,该属性仅在本地有效。 (2)优选本地优先级( Local Pref))最高的路由。如果路由没有本地优先级,BGP选路时将该路由按缺省的本地优先级100来处理。 (3)依次优选手动聚合路由、自动聚合路由、 network命令引入的路由、 Import-route命令引入的路由,从对等体学习的路由。 (4)优选AS路径( AS Path)最短的路由。 (5)依次优选ogn类型为Gp.EGP、 Incomplete的路由。 (6)对于来自同一AS的路由,优选MED值最低的路由。 (7)依次优选EBGP路由、|BGP路由、 Localcross路由、 Remote Cross路由。PE上某个V**实例的 v**4路由的ERT匹配其他V*实例的RT后复制到该V**实例,称为 LocalCross:从远端PE学习到的 v**w4路由的ERT匹配某个V**实例的RT后复制到该V**实例,称为 RemoteCross (8)优选到BGP下一跳GP度量值( metric最小的路由 (9)优选 Cluster List最短的路由 (10)优选 Router ID最小的设备发布的路由。如果路由携带 Originator ID属性,选路过程中将比较 Originator ID的大小(不再比较 Router ID),并且优选 Originator ID最小的路由 (11)优选从具有最小 IP Address I的对等体学来的路由。 当到达同一目的地址存在多条等价路由时,可以通过BGP等价负载分担实现均衡流量的目的。形成BGP等价负载分担的条件是"BGP选择路由的策略”的1~8条规则中需要比较的属性完全相同。
Router 2
################################### Router2 关键配置BGP##########################################
Router>en
Router#config
Router(config-router)#network 4.0.0.0 0.255.255.255 a 1
Router(config-router)#network 5.0.0.0 0.255.255.255 a 1//对内部配置OSPF
Router(config-router)#redistribute bgp 100//OSPF分发其他自治系统的路由项
% Only classful networks will be redistributed
Router(config-router)#exit
Router(config)#router bgp 100//分配自治系统号
Router(config-router)#neighbor 5.0.0.2 remote-as 200//建立BGP发言人之间的邻居关系(5.0.0.2为邻居网关,200为邻居自治系统号)
Router(config-router)#redistribute ospf 100//内部系统使用OSPF
Router(config-router)#exit
Router(config)#