BGP 是一种无类路由协议,支持CIDR、VLSM(无类别域间路由,可变长子网掩码)和路由聚合。路由聚合技术的使用,可以在一定程度上缩减路由条目的数量,同时还可以减轻路由震荡导致的网络不稳定的问题。BGP的路由聚合有两种方式,一种是自动路由聚合,一种是手动路由聚合。自动路由聚合是自然网络边界路由器上自动执行的。在默认情况下,BGP的自动路由聚合功能是关闭的,并且BGP不会自动聚合BGP邻居发送的路由以及使用network命令通告的路由
使用BGP自动路由汇聚时,需要进行严谨的IP地址规划。在一个地址规划杂乱无序的网络中,自动路由聚合可能会产生许多意想不到的问题。例如,在采用不连续子网规划的网络中,自动路由聚合可能会导致报文转发出现选路问题,或者是产生路由环路。
三台路由器使用直连的物理接口IP地址来建立EBGP邻居关系,R2和R3的Loopback 1 接口用来模拟各自ISP中的一个网段。R1、R2、R3上开启自动路由聚合功能,R3的Loopback 1 接口所在网段将使用network 命令通告给BGP进程,R2的 Loopback 1 接口所在网段将被引入到BGP进程中,最终实现R2的 Loopback 1 与R3的 Loopback 1 之间可以互相通信。
接口IP配置不赘述。
配置BGP协议,每台路由器使用 Loopback 0 接口的IP地址作为自己的 Router-ID。
查看R1的BGP邻居关系
R1与R2、R3之间的邻居状态为 Established,表示邻居关系已经正常建立。开启BGP自动路由聚合
当BGP自动路由聚合打开时,系统会有如下提示:Info: Automatic summarization is valid only for the routes imported through the import-route command. (自动汇总仅通告对 import-route 命令路由引入的方式引入路由)通告路由进BGP中,使用network 命令,将R3的 Loopback 1 接口所在网段通告进入BGP进程。
在R1、R2、R3 上使用 display bgp routing-table 命令查看BGP路由表。
可以看到,在R1、R2、R3的BGP路由表中,33.33.33.0/24并没有被聚合。R3将33.33.33.0/24通告给R1,R1再通告给R2,整个过程中该路由都没有被聚合。这就说明,使用 network 命令通告到BGP中的路由,在自然网络边界处,BGP不会进行自动聚合。引入外部路由到BGP协议中。在R2上使用 import-route 命令引入直连的路由
查看R1、R2、R3的BGP路由表
可以看到,在R1和R3的BGP路由表中,都出现了22.0.0.0,且没有掩码信息,这正是聚合后的一个A类自然网络。
自动路由聚合对IP地址规划的要求是比较苛刻的,而在BGP 网络环境中,IP地址的规划难以做到规整有序,所以在实际项目中,很少启用BGP自动路由聚合功能。只需了解,BGP的自动路由聚合功能开启后,会对哪些BGP路由进行自动汇聚即可