一、认识BGP
BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。
1.BGP的定义:
边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择优选路由的距离矢量路由协议。早期发布的三个版本分别是BGP-1、BGP-2和BGP-3,1994年开始使用BGP-4,2006年之后单播IPv4网络使用的版本是BGP-4,其他网络(如IPv6等)使用的版本是MP-BGP。
2.BGP的邻居类型:
EBGP:运行于不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。
IBGP:运行于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体,并与所有IBGP对等体建立全连接。为了解决IBGP对等体的连接数量太多的问题,BGP设计了路由反射器和BGP联盟。
3.BGP的报文:
BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:
Open报文:用于建立BGP对等体连接。
Update报文:用于在对等体之间交换路由信息。
Notification报文:用于中断BGP连接。
Keepalive报文:用于保持BGP连接。
Route-refresh报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。
4.BGP与IGP交互
BGP与IGP在设备中使用不同的路由表,为了实现不同AS间相互通讯,BGP需要与IGP进行交互,即BGP路由表和IGP路由表相互引入。
(4.1)BGP引入IGP路由
BGP协议本身不发现路由,因此需要将其他路由引入到BGP路由表,实现AS间的路由互通。当一个AS需要将路由发布给其他AS时,AS边缘路由器会在BGP路由表中引入IGP的路由。为了更好的规划网络,BGP在引入IGP的路由时,可以使用路由策略进行路由过滤和路由属性设置,也可以设置MED值指导EBGP对等体判断流量进入AS时选路。
BGP引入路由时支持Import和Network两种方式:
Import方式是按协议类型,将RIP、OSPF、ISIS等协议的路由引入到BGP路由表中。为了保证引入的IGP路由的有效性,Import方式还可以引入静态路由和直连路由。
Network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中,比Import方式更精确。
(4.2)IGP引入BGP路由
当一个AS需要引入其他AS的路由时,AS边缘路由器会在IGP路由表中引入BGP的路由。为了避免大量BGP路由对AS内设备造成影响,当IGP引入BGP路由时,可以使用路由策略,进行路由过滤和路由属性设置。
二、BGP的简单配置
(1.1) 配置LoopBack接口:
[r1]int LoopBack 0
[r1-LoopBack0]ip address 10.1.1.1 32
(1.2) 配置BGP并引入LoopBack接口:
[r1]bgp 100
[r1-bgp]router-id 10.1.1.1
##引入自己##
[r1-bgp]network 10.1.1.1 32
[r1-bgp]peer 10.2.2.2 as-number 100
##指定更新源##
[r1-bgp]peer 10.2.2.2 connect-interface LoopBack 0
(1.3)配置静态路由让LoopBack接口可以相互通信:
##r1路由器静态路由配置##
[r1]ip route-static 10.2.2.2 32 10.0.12.2
[r1]ip route-static 10.2.2.2 32 10.0.21.2
[r1]ip route-static 10.3.3.3 32 10.0.12.2
[r1]ip route-static 10.3.3.3 32 10.0.21.2
##r2路由器静态路由配置##
[r2]ip route-static 10.1.1.1 32 10.0.12.1
[r2]ip route-static 10.1.1.1 32 10.0.21.1
[r2]ip route-static 10.3.3.3 32 10.0.23.3
[r2]ip route-static 10.3.3.3 32 10.0.32.3
##r3路由器静态路由配置##
[r3]ip route-static 10.2.2.2 32 10.0.23.2
[r3]ip route-static 10.2.2.2 32 10.0.32.2
[r3]ip route-static 10.1.1.1 32 10.0.23.2
[r3]ip route-static 10.1.1.1 32 10.0.32.2
(1.4) 查看BGP路由表
[r1]display bgp routing-table
##r1BGP路由表##
BGP Local router ID is 10.0.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 6
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.1.1.1/32 0.0.0.0 0 0 i
i 10.2.2.2/32 10.0.2.2 0 100 0 i
*>i 10.0.12.0/24 10.3.3.3 0 100 0 200i
*>i 10.0.21.0/24 10.3.3.3 0 100 0 200i
*>i 33.33.33.33/32 10.3.3.3 0 100 0 200i
*> 100.1.1.1/32 0.0.0.0 0 0 i
##r2BGP路由表##
BGP Local router ID is 10.2.2.2
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
i 10.1.1.1/32 10.1.1.1 0 100 0 i
*> 10.2.2.2/32 0.0.0.0 0 0 i
##r3BGP路由表##
BGP Local router ID is 10.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.3.3.3/32 0.0.0.0 0 0 i