BGP 关键点总结

Synchronization VS No Synchronization

Synchronization: 所谓同步,是指BGP 与 IGP 之间路由信息的同步。也就是说,开启SY的情况下,一个BGP对等体会将它的IBGP对等体邻居给他的信息传给他的EBGP对等体的前提是,这条路由信息在其IGP路由表中已经存在。这个功能的意义在于,如果一个IBGP对等体获得了某EBGP对等体告知的外部AS路由信息,并将此信息以BGP外部路由信息的形式告知他的邻居IBGP对等体,这时若这个邻居IBGP对等体将这条路由信息发出给他自己的外部AS EBGP对等体,当网络数据真正传输的时候,有可能会出现路由黑洞。所以SY要求将外部AS路由先重分发到BGP中,这样在任何情况下都能保证所有路由器都直到路由出路,不会造成黑洞。

No sy: 正好相反,可以直接将从IBGP邻居收到的路由发给EBGP对等体。

BGP路由基本原则: 一个外部AS信息传到BGP路由器后,这个路由器可以将这条路由信息发给他的下一跳IBGP对等体,但下一跳对等体不会再转发这条给其他IBGP对等体。当然所有路由器收到这种路由信息都可以转发给EBGP对等体。

Next-hop-self: 默认情况下,没有NEXT HOP SELF,路由器转发的路由信息下一跳地址是外部AS 中的EBGP对等体接口IP,所以会造成这个路由器所属AS的其他IBGP对等体收到此路由信息的时候,不知道如何到达这个外部EBGP接口,而放弃这条信息。所以需要NEXT HOP SELF将这个IP改成这个路由器自己的对着IBGP对等体的接口IP,这样邻居IBGP就直到怎么到达外部AS了。

=============================================================================

配置注意:

所有控制列表都可以写入route-map中,型如:

route-map 10.1.2.0 permit 10

 match ip address 1

 set as-path prepend 100 100

route-map 10.1.2.0 permit 20

需要注意的是,最后一句一定要加上这行PERMIT,否则会造成其他的路由信息不满足MATCH要求而被拒。

虽然这里已经写了MATCH IP ADD 1,并在ACCESS-LIST 1 中也设定了各种条件,但这只是定义满足的条件,不是是否可以通行!!

Ip as-path access-list # permit/deny .*  AS-PATH的访问列表,使用特殊的linux符号表示逻辑关系。

不使用ROUTE-MAP的话,此语句和ROUTER BGP中的FILTER-LIST连用。

Access-list # permit/deny 表和distribute-list 搭配

peer-group 使用方法

 neighbor XXX peer-group  先开启GROUP功能,定义GROUP名称

 neighbor XXX filter-list 3 out   然后和ROUTE MAP一样建立各种访问列表的结构关系

neighbor 10.1.3.2 peer-group XXX  然后定义哪个邻居属于这个GROUP

Community:

类似GROUP,以ROUTE MAP的形式将路由数据归类,然后按类进行分发处理。

首先必须设成对某邻居开启send community功能,使BGP支持传输community信息,然后在那个邻居路由器上也要开启send community,否则它收到路由信息之后不会有任何行动。 邻居路由器中,因为收到了带有community信息的路由,就可以将其提取出来后进行控制。

set community no-export/no-ad   可以设成不让下一跳路由器收到这条路由之后继续传递,但在下一条上也要开启SEND功能才行。

Metric 参数用于在EBGP之间有多条链路的时候作出选择,这个参数只会传递给EBGP对等体而不会从那个EBGP对等体所在的AS再传到其他AS。Metric 只能做OUT,不能做IN。

Aggregate 用于汇总路由,BGP中SUM和AGG有不同的意义。