BGP 初探
BGP的出现
最早的路由协议 GGP(Gateway-to-Gateway Protocol)
IGP(Interior Gateway Protocol) 是在一个自治系统(AS)内网关之间交换路由信息的协议,包括RIP、OSPF、IS-IS、IGRP、EIGRP。而GGP是第一个内部网关协议。随着网络规模的扩大,GGP逐渐被淘汰。
RIP-》OSPF、ISIS
IGRP 和 EIGRP是CISCO私有的协议
EGP(Exterior Gateway Protocol)外部网关协议,实在不同的自治系统之间传递路由信息。EGP 最早见于RFC827。
EGP的缺点:
1. 不做路由优选
2. 不能避免环路
(欢迎补充)...
BGP(Border Gateway Protocol)最早见于1989年发布的RFC1105。
BGP的优势:
1.解决环路问题
2.路由收敛
3.触发更新
...
BGP的发展
TCP 作为传输层协议,保证可靠传输,端口号179。
BGP建立在两个AS之间,不能通过自动发现,需要手动配置邻居,建立TCP连接。
EBGP(external BGP) 与AS外部节点建立的BGP关系
IBGP(Internal BGP) AS内部节点建立的BGP关系
AS号解决AS之间的环路问题,如果某个路由信息携带了自己的AS号,说明这个路由是已知路由,不再处理。如果AS号重复,说明出现了环路。
那么问题来了,在同一个AS内,AS号是不变的,如何防止环路呢?
方法1:
规定从IBGP邻居学到的路由不会传递给另一个IBGP邻居,那么就需要AS内部所有的路由器都要两两建立IBGP关系,这样就有弊端如果AS足够大的话,对于每个路由器要和所有的AS内路由器建连接负荷会很大。
针对以上的弊端,衍生出路由反射器(Route Reflector)和BGP 联盟,见 RFC1966 和 RFC1965
方法2:
路由反射器是在AS内指定一个节点作为反射器,所有的其他节点与反射器建立IBGP连接,反射器作为中间节点,在其他任何两个IBGP间传递路由。
方法3:
BGP联盟是在AS内做重新规划,把一个大的AS分为多个小的私有的AS。
从BGPv2(RFC1163)开始,BGP消息种类分为4种:
OPEN:建立TCP连接后,用OPEN消息出发BGP关系建立过程;
UPDATE:进行路由的发布和撤销;
NOTIFICATION:通告出现的错误;
KEEPALIVE:保活BGP关系。
BGP状态机 6 种,后续介绍。
BGPv2一个重要的概念 BGP路径属性,分为4种,公认必遵属性、公认可选属性、可选可传递属性、可选不传递属性。
公认必遵属性:必须在发布路由时携带,描述所发布路由的基本信息,包括:下一跳、AS_PATH和ORIGIN。下一跳用于路由计算,AS_PATH用于环路避免,ORIGIN用于路由选择。
公认可选属性:这些属性必须被所有的BGP路由器所识别,携带与否是可以选择的
可选可传递属性:后期详述
可选不传递属性:后期详述
BGP的扩展
BGP联盟RFC1965 最新为RFC5065
路由反射器RFC1966最新为RFC4456