实验十六 BGP协议基本配置
边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System) 之间的路由可达,并选择最佳路由的距离矢量路由协议。
自治系统AS (Autonomous System)
AS是指在一个实体管辖下的拥有相同选路策略的IP网络。BGP网络中的每个AS都被分 配 一个唯一的AS号,用于区分不同的AS。
BGP的运行方式:
EBGP:运行于不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP 对等体发送的路由时,会将常有本地AS号的路由丢弃。
IBGP:运行于同一AS内部的BGP称为IBGP。 为了防止AS内产生环路, BGP默认启用同步规 则,即BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体, 缺省需要与所有IBGP 对等体建立全连接才能实现AS内部各IBGP设备间的路由互通。为了解决IBGP对等体的连接数 量太多的问题,BGP设计了路由反射器和BGP联盟。
BGP同步规则:
如果你的AS需要将一 个AS内路由转发给其它AS,必须确定本AS内的IGP路由已经学 得你将要通告至其它AS的路由。
也就是说,在转发一 条路由条目给其它EBGP邻居前,必须确定本AS内IGP路由表中已 有这条路由。
比如上图中:RTC如 将170.10. 0. 0路由通过 EBGP传给RTA,RTA 在将这条路由转给RTB 时,是通过TCP协议进行传递,其下一跳地址为2.2.2.1。
这样, 如果没有同步规则存在时, RTB会不加思考地将它继续转发给RTD。 这样,如果 RTD想发送数据给170.10.0.0 时,首先会交由RTB,RTB下一步将数据转给RTE,但是RTE 上只运行了IGP协议,IGP中并没有到170.10. 0. 0的路径,所以数据包将在E处被丢弃。
如果同步规则存在,那么在RTB上的IGP路山表中没有170.10. 0. 0存在时, 它不得将 此路由转发给其它任何BGP邻居。避免了路由黑洞的形成。
解决方法:
1)Full -mesh解决
在E上也跑1个BGP, 并且与A和B建立IBGP邻居关系, 通过IBGP学习到170.10.0.0 的路由条目。
2)路由反射器
3)BGP联盟
其中路由反射器和 BGP联盟由于篇幅和考试范围的原因,在此不扩展介绍,有兴趣可以自行研究学习。
BGP的路由器号(Router ID)
BGP的RouterID是一个用于标识BGP设备的32位值,通常是IPv4地址的形式,在BGP会话 建立时发送的Open报文中携带。对等体之间建立BGP会话时,每个BGP设备都必须有唯一的Router ID,否则对等体之间不能建立BGP连接。
BGP的RouterID在BGP网络中必须是唯一的,可以采用手工配置,也可以让设备自动选取。缺 省情况下,BGP选择设备上的Loopback接口的IPv4地址作为BGP的Router ID。如果设备上没有配 置Loopback接口, 系统会选择接口中最大的IPv4地址作为BGP的Router ID。一旦选出RouterID,除非发生接口地址删除等事件,否则即使配置了更大的地址,也保持原来的RouterID。
网络拓扑图:
配置要求 :
采用如下的思路配置BGP的基本功能:
在RouterB、RouterC和RouterD间配置IBGP连接。
在RouterA和RouterB之间配置EBGP连接。
操作步骤
1、配置各接口的IP地址
#配置R1、R2、R3、R4
- 配置IBGP连接
#配置R2
#配置R3
#配置R4
3、配置EBGP
#配置R1
#配置R2
#查看BGP对等体的连接状态
可以看出,R2到其他路由器的BGP连接均已建立
- 配置R1发布路由172.16.60.0/24
#配置R1发布路由
#查看R1路由表信息
#查看R2的路由表
#查看R3的路由表
说明: 从路由表可以看出,R3虽然学到了AS65008中的172.16.60.0/24的路由,但因为 下一跳59.74.112.2不可达,所以不是有效路由。
5、配置BGP引入直连路由
#配置R2
#查看R1的BGP路由表
#查看R3的路由表
可以看出,到172.16.60.0/24的路由变为有效路由,下一跳为R1的地址
#使用Ping进行验证