BGP简介:边界网关协议(BGP)是一种运行于TCP自治系统(AS)区域间的路由协议。
为什么要使用BGP:
当企业与多个ISP(Internet Service Provide)相连时,可以通过BGP策略路由选择来针对某些业务选择最优路由,提高资源利用率。
当企业要求区别对待自己的数据流(也就是说企业网内部分子公司数据)和来自ISP的数据流,可以使用BGP强大的策略路由来达成。
有些小伙伴可能有疑问,如果分子公司与总部使用MPLS/×××连接的时候,也可以考虑使用OSPF协议连接,为何要使用OSPF。
因为a.如上所述BGP有强大的路由过滤和路由策略功能,这是OSPF不能比拟的。
b.BGP扩展属性多,可以灵活的根据业务需求进行各种路由优化,甚至同一条路由可以在不同的 企业享有不同的路由策略等。
C.BGP适合大型企业网连接。由于IGP处理能力有限(一般认为OSPF最多能处理1W条路由,ISIS 可以处理3W条路由)。
在实践过程中需要注意的地方:
在大型企业网中互连使用BGP协议时,中转自治系统中应将所以中转路径上的路由器同时运行IBGP,称为IBGP实现全互连IBGP。因为如果没有事实现全互连IBGP,虽然AS通告网络没问题,但是如果两AS要通过中转AS传数据将可以能在中转AS中因路由不可达而造成丢包或者环路。
如果BGP路由很少,可将其重分发到AS内运行IGP,则无需在中转路径中的媚态路由器上运行IBGP。然而在此情况下需要开启BGP同步来确保分组不会丢失。但如果实现全互连IBGP的情况下则不需要开启BGP同步。
路由决策过程。需要选定路由路径的时候,可以通过调整权重、本地优先级、AS路径长度、WED等进行选定。
将网络通告到BGP的方法有两种:使用命令network;将路由从IGP重分发到BGP。但是不建议将路由从IGP重分发到BGP,因为这样IGP路由出现任何变化(如链路出现故障)都将导致BGP更新,从而导致BGP表不稳定。
在BGP speaker中配置命令请注意:命令neighbor是告诉BGP向谁发送通告;而命令network告诉BGP通告什么内容。
如果在命令neighbor使用了环回接口的IP地址而不是物理接口地址作为原地址,则必须添加一条对应命令:neighbor {ip-address|peer-group-name} update-source loopback interface-number。
把路由传给EBGP时,下一跳会改成自己的更新源。把路由传给IBGP时,下一跳不变。如果当B收到A的通告,并传给C,如果不使用next-hop-self则此条路由的更新源仍然是A的IP源,会造成不可达现象。例:
A-B-C,A、B是EBGP邻居关系,B、C是IBGP邻居关系。
转载于:https://blog.51cto.com/7492110/1627610