1.实验目的
默认情况下,BGP邻居中只需一端指定Update-souce。有以下几点需要实验确认:
(1)未配置Update-souce的路由器,其相应参数为空还是会自动选择接口地址?
(2)在一端指定的情况下,指定端是否会作为TCP连接的发起者?而对端只能作为响应者?
实验中所使用的几点依据:
在两端BGP邻居状态up前,必须通过以下检查
(1) TCP连接建立过程中,一端接收到另一端发送的TCP连接建立请求后,会对TCP请求的源地址进行检查,必须与本端在BGP进程中使用neighborxxxx命令指定的地址一致。
(2) 在TCP连接建立完成后,对端路由器发送的open报文中所包含的ASN号码,必须与本端在BGP进程中使用neighborremote-as xxxx命令指定的一致。而且两端的RID不能相同。
(3) 根据配置情况,可能需要通过MD5签名认证。
2.实验结果
(1)默认情况下,两端均使用“neighbor+对端设备环回地址”命令相互指定,但是不配置更新源。
从实验结果分析,路由器会使用与对端设备的互联接口地址作为TCP连接的源地址,向对端设备环回地址发起连接请求(syn)。对端设备收到请求后,由于无法通过TCP源地址检查,因此使用环回地址作为源地址进行TCP回复(RST,ACK),示意对端进行重置。此状态会一直持续。如图1所示。
(2)对R1的配置进行调整,增加“neighborupdate-source +环回接口”命令,指定更新源。
从时间10:58:06之后的实验结果分析,R1使用环回地址为源地址,向R2发起TCP连接请求。在通过TCP源地址检查后,R2进行回应(SYN,ACK),R1再以(ACK)作为响应,标识两端的TCP连接建立成功。如图2所示。
图1 BGP邻居状态建立中的TCP连接情况(两端未配置更新源)
图2 BGP邻居状态建立中的TCP连接情况(R1配置更新源)
因此,有以下结果得到确认:
(1) 在两端均未配置更新源的情况下,路由器会选择本端获取“neighborxxxx命令指定地址”路由信息的接口地址作为update-source。
(2) 在一端正确设置update-source的情况下,如实验中的R1。由于其发起的TCP连接可通过对端的源地址检查,所以可以成功建立。此时对端设备(R2)只能作为TCP连接的响应者。
(3) update-source的正确配置,对于通常以环回地址为BGP邻居标识的iBGP尤为重要。