有两台路由服务器,其中一台用于冗余,为 ISP 建立对等连接 我是否必须在路由服务器之间建立对等连接?尽管每个路由服务器都有每个 ISP 的所有前缀。
如何设计具有冗余的IXP?
从设计角度来看,具体指的是路由服务器,答案是没有,他们应该不是通过IBGP会话相互同行[免责声明:我从来没有亲自尝试这样做,但我现在的乐趣可能。原因是因为路由服务器的行为类似于路由反射器,只是它是 eBGP 而不是 iBGP。但要记住的最重要的部分是路由服务器不是路由器,它是“BGP 消息代理”。这意味着对于它的所有路由服务器客户端,它不参与任何路由决策。因此,路由服务器客户端会将其与 IXP 路由服务器的会话配置为标准 eBGP 会话,但是,因为路由服务器在向其其他客户端通告之前不会将其 ASN 插入从其客户端收到的 NLRI 的 AS_PATH,所以配置 eBGP 会话的客户端必须确保其在他们配置的任何设备上的 eBGP 配置允许一种禁止在来自 eBGP 邻居的路径中强制执行第一个 ASN 的方法(请参阅 Cisco IOS 实施说明),否则(当然取决于供应商)会话将不会出现,或者会出现但没有交换 NLRI,等等。请记住,通过在两个路由服务器之间创建 iBGP 会话,每个路由服务器客户端都会必须从自身丢弃 NLRI 更新消息,该消息是从一个路由服务器接收的,通过 iBGP 转发到另一个,然后重新转发到路由服务器客户端,该客户端(可能)与两个路由服务器都有 eBGP 会话。这基本上会导致路由服务器及其所有客户端不必要的头痛(以可能的 CPU 和/或内存流失的形式)。话虽如此,是的,操作两个路由服务器(它们之间没有 iBGP)是 BCP,并且如果路由服务器客户端要与它们对等,则强制要求路由服务器客户端与它们对等,因为 Leon Weber 已经提及。
另外,需要注意的是,设计一个“有冗余”的IXP并不仅仅意味着“运行两个路由服务器”。再次以 AMS-IX 为例,我建议查看他们的设计文档(特别是针对 10G 客户),以获得 IXP 中冗余的一个很好的示例。同样,仅提供一个示例 - 关于在 IXP 中设计冗余的讨论超出了本站点格式的范围。
一个常见的解决方案是运行两个独立的路由服务器,并强制所有对等方同时与这两个对等方,公布相同的前缀集。
有关示例,请参阅AMS-IX 文档。他们运行两个冗余路由服务器:
当与路由服务器对等时,我们要求将路由器设置为连接到两个路由服务器并通告相同数量和长度的前缀以实现弹性。
最好使用 ibgp 对等两个路由器。这样,您的左手与右手同步:-)
您的问题没有说明您是将两个不同的 ISP 连接到您的两个路由器,还是只有一个连接您的 ISP。我建议使用路由过滤,以免将您的路由器配置为中转 AS(除非您愿意)。
一个常见的配置会看到你的主路由器正常地通告你的 AS,而你的备份路由器使用前置来通告你的 AS。这是为了影响离开您的网络的数据包的返回路径等。
其他配置使用最长的匹配将您的网络通告给您的主要 ISP,而您的备用路由器将您的网络正常通告给另一个 ISP。例如,路由器 A 是您连接到 ISP-A 的主要连接,而您的备份路由器是连接到 ISP-B 的路由器。您的网络是 192.168.0.0/16。RouterA向ISP-A通告192.168.0.0/17和192.168.128.0/17;RouterB 向 ISP-B 通告 192.168.0.0/16
确实有很多方法可以操纵您如何宣传您的网络并过滤/操纵离开/进入您的网络的路由。这是一个很好的链接,供您阅读:http : //networklessons.com/bgp/how-to-configure-bgp-as-path-prepending/
在您的生产系统上实施之前,不要忘记先在像 GNS3 这样的模拟器中测试您的配置:-)