CCIE-BGP 第 4 頁 ,共 19
頁
指定对方属于 AS100,所指的 10.1.1.1 地址,必须在 IGP 中可达。
允许邻居用这个地址来访问我的 179 端口,但没有指明访问本路由器的哪个地址,只检查源地址。
本路由器以更新源地址去访问 neighbor 后面这个地址的 179 端口,是否可以建立 TCP 链接要看对方是
否允许我的更新源来访问它。
8、IBGP 的同步
在一个 AS 中,除了需要建立 BGP 连接之外,同时还需要运行 IGP 协议, 在 AS 中运行 IGP 的根本
目的是为了让 BGP 路由器之间能够建立 TCP 连接,从而为 BGP 的通信服务。
因为 BGP 在建立邻居时,BGP 的源地址可以是任意地址,这些地址可以不是直连的,只要是能通信
的,能建立 TCP 连接即可。 BGP 在查询去往邻居的路径时,采用的是递归查询,BGP 查询去往邻居
的过程中,可能要多次查询 IGP 路由表,只要在 IGP 路由表中找到了去往邻居地址的相应路径或相应
下一跳,那么就会将数据发给这个下一跳。
在下图的网络中,R1 与 R4 建立 eBGP 连接,R3 与 R5 建立 eBGP 连接,而 R1 与 R3 建立 iBGP 连接。
在 R1 与 R3 建立 iBGP 连接时,R1 通过目标地址 3.3.3.3 找到邻居 R3,R1 的 BGP 源地址为 1.1.1.1,
而 R3 也通过目标地址 1.1.1.1 找到邻居 R1,R3 的 BGP 源地址为 3.3.3.3,为了让 1.1.1.1 和 3.3.3.3 能
够正常通信,从而建立 TCP 连接,R1、R2、R3 之间启用了 IGP 协议 OSPF,OSPF 的目的只是为了使
1.1.1.1 能够与 3.3.3.3 通信,并不传递 AS 中庞大的路由信息。
当 AS 10 中的 R4 将网段 10.1.1.0/24 通告给 AS 20 中的 R1 后,因为 R1 与 R3 之间是 iBGP 邻居,所以
R1 将路由 10.1.1.0/24 传递给 R3,最终 R3 将路由 10.1.1.0/24 传递给 AS 30 中的 R5。当 R5 将目的地
为 10.1.1.0/24 的流量发给 R3 时,R3 在查询路由表后得知,去往 10.1.1.0/24 的数据包需要发给 iBGP
邻居 1.1.1.1 才能够到达,于是 R3 便执行递归查询,查询如何去往 1.1.1.1,正因为 R1 与 R3 之间的通
信是靠 OSPF 提供的,所以 R3 得知去往 1.1.1.1 必须将数据包交给 R2,即交给下一跳 23.1.1.2,因为
R2 只运行了 OSPF 为 BGP 服务,所以 R2 没有 BGP 的路由 10.1.1.0/24,当 R2 发现数据包的目标地址
为 10.1.1.0/24 后,只能将数据包全部丢弃,这就类似于路由黑洞。
在上图环境中,在 R3 将从 iBGP 邻居 R1 学习到的路由传递给 eBGP 邻居 R5 之前,必须确定这条路
由在自己的 IGP 路由表中也存在,否则不使用该路由。要查看路由在 IGP 路由表中是否存在,使用命
令 show ip route 即可。
注意,只有从 iBGP 邻居学习到的路由,才受 iBGP 与 IGP 路由同步规则的限制,如果路由是从 eBGP
邻居学习到的,则不受此规则限制。