学习BGP第一天:基本的概念
根据工作范围的不同,动态路由协议可分为两类,一类被称为IGP(Interior Gateway Protocol,内部网关协议),例如RIP、OSPF、IS-IS等。另一类被称为EGP(Exterior Gateway Protocol,内部网关协议),例如BGP等;
BGP(Border Gateway Protocol,边界网关协议)几乎是当前唯一被用于在不同AS之间实现路由交互的EGP协议。BGP支持VLSM、支持CIDR(Classless Inter-Domain Routing,无类域间路由),支持路由自动汇总,手工汇总。
BGP使用TCP作为传输层协议,BGP使用目的TCP端口179,两台互为对等体的BGP路由器首先会建立TCP连接,随后协商各项参数并建立对等体关系。
1、BGP对等体关系类型
EBGP对等体关系:External BGP Peer
IBGP对等体关系:Internal BGP Peer
2、IBGP水平分隔规则
AS Path属性可以防止BGP路由在EBGP对等体之间传递时发生环路,然而当路由在IBGP对等体之间传递时, AS Path属性的值是不会发生改变的,也就是说当BGP路由在一个AS内传递时,是无法依赖AS Path提供的防环能力的,那么此时路由环路就有可能发生, IBGP水平分割规则就是用于解决这个问题的。
BGP规定,当路由器从一个IBGP对等体学习到某条BGP路由时,他将不能再把这条路由通告给任何IBGP对等体,这就是IBGP水平分割规则。但这样也会出现部分路由器无法学习到BGP路由的情况,解决这一情况的方法有很多,在一个AS内部实现IBGP对等体全互联是一种常规的解决方案,但是,如果AS内部的BGP路由器数量特别大时,所有的路由器两两之间建立IBGP对等关系显然可能给网络带来较大的负担,而且也降低了网络的可扩展性。好在BGP还有另外两种解决方案,他们是路由反射器及联邦。
3、路由黑洞问题及BGP同步规则
两台BGP路由器之间无需直连也可建立对等体关系,只要他具备IP连通性并且可以建立TCP连接即可。BGP的这个特点使得路由的传递更加灵活,然后稍有不慎,这个特性也可能带来一个麻烦,例如路由黑洞。
为了避免路由黑洞问题,BGP引入了同步规则(BGP Synchronization)。所谓的同步规则指的是:当一台路由器从自己的IBGP对等体学习到一条BGP路由时(这类路由被称为IBGP路由),他将不能使用该条路由或把这条路由通告给自己的BGP对等体,除非他又从IGP协议(例如OSPF等,此处也包含静态路由)学习到这条路由,也就是要求IBGP路由与IGP路由同步。同步规则主要用于规避BGP路由黑洞问题。
在本案例中,要将R2发往1.0.0.0/8的数据包顺利地转发到目的地,可行的办法有几种。
第一个办法是在AS 34567内所有路由器上都运行BGP,也就是让R4、R5及R6也运行BGP。但此时由于水平分割的存在,不得不在AS 34567内实现IBGP对等关系全互联... ...全互联的组网会给网络带来沉重负担,可扩展性也受到制约。
第二个方法是R3将BGP路由引入AS 34567中的OSPF。
第三个办法是采用MPLS。MPLS(Multi-Protocol Label Switching,多协议标签交换)是一种标签交换技术,简单来说就是在一个报文的头部之前、数据帧头部之后插入一个标签头部,由于IP头部隐藏在标签头部之后,因此在数据从源被转发到目的地的过程中,沿途的网络设备只需根据标签头部中的标签进行选路,如此一来即使转发设备没有达到目的的网络路由也不会影响数据转发,因为此时它们是基于标签信息对报文进行选路及转发的,而不是基于目的IP地址。
4、路由通告
BGP路由在对等体之间交互时,主要存在以下几个原则:
●当一台路由器发现了多条可到达同一个目的网段的BGP路由时,该路由器会通过一个路由选择进程在这些路由中选择一条最优(Best)的路由。通常情况下,路由器只将最优的路由加载到路由表中使用(激活了负载分担功能的情况除外),而且只会将最优的路由通告给BGP对等体。
●当一台路由器从自己的EBGP对等体学习到BGP路由时,缺省时它会将这些路由通告给所有IBGP对等体及所有EBGP对等体。
●当一台路由器从自己的IBGP对等体学习到BGP路由时,它不会将这些路由通告给其他IBGP对等体-IBGP的水平分割规则使然。
●当一台路由器从自己的IBGP对等体学习到BGP路由时,如果BGP同步被激活,则路由器只有从IGP协议也学习到相应的路由时,才会将这些BGP路由通告给EBGP对等体;如果BGP同步被关闭,则即使没有从IGP协议学习到相应的路由,它也会将这些BGP路由通告给EBGP对等体。
要强调的是,以上讨论的所有情况,前提均是BGP路由器的Next-hop属性所填充的吓一跳地址可达。
5、Router-ID
BGP Router-ID是网络设备的BGP协议标识符,长度为32bit,与IPV4地址的格式相同,例如192.168.1.1。在规划BGP网络时,需确保设备的Router-ID的唯一性。
6、报文类型及格式
7、查看BGP对等体
8、BGP路由表
9、将路由发布到BGP
与IGP协议不同,BGP并不能自动发现路由,需要网络管理员通过这3种方法将路由发布到BGP。
使用network命令将路由发布到BGP
使用import-route命令将路由引入BGP
使用aggregate命令发布汇总路由