问题
bgp 会话是与对等方建立的, 而来自同级的通告路由则存在于 bgp 本地肋上。但是, 这些路由不会注入到全局路由表中。
症状
当帕洛阿尔托网络防火墙在2个路由器之间建立了 EBGP 和 IBGP 连接, 并将从 EBGP 对等方到其 IBGP 对等方的路由进行广告时, 通常会注意到此问题。默认情况下, 当路由被播发到 EBGP 对等方之外时, 路由器将确保下一跃点属性反映其 IP 地址。由于 bgp 是 as 路由协议, 因此, bgp 网络广告的下一跃点值为 "as", 它是路由器在 exit 处的 IP 地址。
将此路由通告给 IBGP 对等方时, 下一跃点属性保持不变 (因为它不交叉于另一个)。通常, AS 中的路由器没有从下一跃点属性到外部 IP 地址的路由。由于这些路由器不知道下一跃点的位置 (因为它们没有直接连接), BGP 选择了一个可到达的下一跃点的路径, 这些路由由帕洛阿尔托网络防火墙 EBGP 对等方从未安装在路由表中。
原因
- 防火墙尚未配置为 IBGP 的 "下一个跃点自"
- 路由表已满, 无法学习新路由
- "安装路由" 选项下的 BGP >> 一般 > 选项未选中
解决办法
配置帕洛阿尔托网络防火墙以将 "下一个跃点" 值作为其 IP 地址通告给 IBGP 对等方。这是在 WebGUI 上配置的:
网络 > 虚拟路由器-BGP > 对等组 > 类型

选择 "IBGP" 为类型, 并单击单选按钮 "使用自己" 导出下一跃点, 如上所示。这可以确保播发到 IBGP 路由器的路由反映了帕洛阿尔托网络防火墙的 IP 地址, 并将该路由导入到 IBGP 邻居, 而不是最初通告此路由的 EBGP 邻居的 ip 地址。这样可以防止潜在的路由黑洞。
重要的是要记住, BGP 总是确保在广告之前可以到达 "跃点/目标"。如果无法到达跃点, 则路由仍将保留在 BGP 表中, 但不在全局路由表中。从外部的 EBGP 邻居将已经 "可到达" 到防火墙, 但不必要的 IBGP 扬声器内的 as。
此外, 请检查 EBGP 对等方是否对所有 internet 路由进行了过多的广告, 使本地肋骨和常规路由表得到填充 (到没有其他路由的缓冲区的地步)。
配置导入规则, 以便帕洛阿尔托网络防火墙只学习必要的路由。或配置邻居只导出到防火墙的几条路由。通过以下步骤配置路由的导入和导出:
网络 > 虚拟路由器-BGP > 导入

和网络 > 虚拟路由器 > BGP 导出

使用以下命令验证路由表是否已满:
>> 显示路由资源
> 显示路由的谎言
所有者: kprakash