我听说过“路由服务器”和“镜子”这两个词。它们是什么,我为什么要关心?
路由服务器和眼镜 - 它们是什么?
(请注意,这两个术语经常互换使用,这可能会导致一些混淆。)
眼镜
窥镜通常是一个网站(最常见的是 CGI),它与由单个 ISP 或其他网络运营商拥有和运营的路由器连接。大多数情况下,这些都是可公开访问的,但也有可能不是。窥镜提供了对运营商网络中特定路由器的 BGP 表的视图(以网站形式)。通常,窥镜实现还包括其他实用程序,例如运行到目的地的跟踪路由的能力,就好像它是从网络运营商的路由器本身运行的一样。观察镜很有用,因为它们提供了对上游 BGP 表的透视。Level3 是美国著名的一级运营商,这里有一个镜子。这些是广泛使用的故障排除工具。
路由服务器
术语“路由服务器”已经演变为两种不同的含义,将解释这两种含义。我在这里定义了两个路由服务器“子类型”,这将使区别更加清晰。这些定义是我自己的,仅用于消除任何可能的混淆。实际上,公共路由服务器通常也被称为“路由收集器”或“路由视图服务器”(后者源自俄勒冈大学路由视图项目)。
公共路由服务器
这些系统(通常是路由器,但也有一些运行开源路由守护进程的系统)可以公开访问,通常通过 Telnet 访问,并且还能够运行 ping、traceroutes 和“show ip bgp”(还有一些 Juniper路由服务器在那里,别担心!)命令。公共路由服务器和窥镜(除了具有漂亮 CGI 的 LG)之间的区别在于,各种各样的网络(包括一些一级运营商)都与路由服务器对等,因此有一个“整体”更大的图景哪些前缀来自哪些 ASN。命令授权策略因路由服务器而异。这是 IPv4 路由服务器的列表。他们也有一个带有 IPv6 路由服务器的单独页面。路由服务器,可以将窥镜视为路由服务器的前端,无论路由服务器本身是公开的还是私有的。
你不能在公共路由服务器上运行窥镜吗?
你可以,但通常运行眼镜的人是那些有能力操作和维护眼镜运行的服务器的人。使用公共路由服务器,您只需要一个路由器(或运行开源路由守护进程的服务器)、一个好的 AAA 策略以及一些愿意为您提供 BGP 源的人。还需要注意的是,一些网络运营商还托管可公开访问的路由服务器,您甚至可能会遇到一些运营商除了窥镜之外还运行路由服务器。
IXP 路由服务器
这个版本的路由服务器有点不同。在 IXP 的共享对等结构上,组织开始对等互连的门槛较低。您有一个连接到 IXP 对等 LAN 的端口(IXP 出售给您),并且 IXP 为您提供了一个 IP 地址。现在,您可以与结构上的任何其他人进行对等;将此与 PNI 进行对比,后者涉及您和另一个实体之间的单独专用物理连接。通过连接到 IXP 的对等 LAN,除了您的单个端口成为瓶颈之外,您还必须手动配置与您希望与之对等的任何人的 eBGP 会话。这叫做双边互联- 你和peer之间只有一个会话,只有你和peer交换公告。如果 IXP 有很多成员,这会变得很麻烦。在这种情况下,路由服务器通常部署在 IXP 中,以便成为组织建立 eBGP 会话的“一站式服务点”,以便从与路由服务器对等的其他任何人那里接收前缀。这称为多边互连。你和路由服务器之间的一个 BGP 会话,你会得到其他人的公告,这些公告也与路由服务器对等。
一些组织将依赖路由服务器 eBGP 会话,而其他组织将使用它作为 IXP 结构上现有 eBGP 对等互连的备份。大多数 IXP 将具有冗余的路由服务器,并建议组织在与路由服务器对等的情况下与两者对等。
BGP呢?
使用路由服务器的多边对等互连为 BGP 带来了有趣的挑战。路由服务器本身是 eBGP 发言人,但是必须对路由服务器和多边 BGP 对等互连有特定的考虑。其中一些规则会让人联想到iBGP路由反射,确实有很多相似之处。当涉及到这些特定功能时,最近有一些工作来标准化路由服务器的行为。以下注意事项值得注意:
- NEXT_HOP 属性- 此属性必须在路由服务器与其客户端之间未经修改地传递。虽然路由服务器实现本身不会修改此属性,但在从路由器到路由服务器的 eBGP 会话上设置“next-hop-self”仍然是最佳实践。
- AS_PATH 属性——同样,因为路由服务器是透明的,不参与任何路由决策,修改这个属性可能会影响路由服务器客户端的最佳路径决策过程,路由服务器实现不能修改这个属性。此外,路由服务器不会在 BGP 更新中将自己的 ASN 发送给其客户端,因此需要在客户端路由器上设置“no bgp Argentina-first-as”(Cisco 特定的)以允许 eBGP 会话客户端和路由服务器之间的形式。
- MULTI_EXIT_DISC 属性- MED 是另一个应该传播到路由服务器客户端的属性,路由服务器无需修改,因为它也可以用来影响最佳路径选择过程。
- 社区属性- 路由服务器不应修改这些属性,除非社区(或多个社区)旨在由路由服务器本身进行处理。通常,IXP 路由服务器实现使用社区来允许路由服务器的对等方操纵对其他路由服务器对等方的路由更新。
重要的是要记住 IXP 路由服务器实现的两个区别:
- 路由服务器不参与任何路由或转发。它应该尽可能透明。
- 路由服务器客户端依赖路由服务器为其执行出站过滤。
IXP 路由服务器实施选项
通常,IXP 运营商将部署开源路由守护程序作为路由服务器。有三种流行的选择:
Quagga,特别是 bgpd。在 Linux 和 BSD 上运行。它存在的时间最长,可能拥有最多的可用信息。多年来,Quagga 出现了多个分支,包括由 EuroIX 赞助开发的火车、由开源路由组开发的火车(更多旨在通过 OSPF 和 ISIS 改进 IGP 功能)以及 Quagga-RE(Release工程)具有实验特征的列车。谷歌还创建了自己的 Quagga 分支。Quagga bgpd 支持 IPv6 和 IPv4,但是大多数 IXP 运营商(甚至一些 Quagga 维护者)会建议不要使用“主线”Quagga 列车在 IXP 上运行路由服务器。
鸟。在 Linux 和 BSD 上运行。BIRD 因其稳定性和强大的过滤语言和功能以及非常好的调度系统而获得了相当多的人气。Quagga 和 BIRD 之间已经发表了一些比较和规模测试。总体而言,BIRD 往往更稳定,并且不像 Quagga 那样容易受到 CPU 和内存变动的影响。然而,BIRD 和 Quagga 都是单线程的,但这是故意的。此外,虽然 BIRD 同时支持 IPv4 和 IPv6,但对于 IPv4 和 IPv6,它需要两个不同的进程(编译后的二进制文件)。
开放BGPD。仅限 BSD。OpenBGPD 是唯一可用的多线程开源 BGP 守护进程。众所周知,它在负载下相当稳定,但 TCP MD5 支持有点差。
除了开源守护进程,思科还为 IOS-XE 提供了一个路由服务器实现,它在 ASR 平台上运行。在撰写本文时,瞻博网络并未在其硬件或操作系统上提供路由服务器实现,但这在未来可能会发生变化。
在评估开源路由守护进程方面,在内存处理和架构方面,人们可以安全地假设 BIRD > OpenBGPD > Quagga,但是据报道,与开放式路由守护进程相比,ASR 平台和 IOS-XE 在规模上的能力要强得多。源守护程序选项可用。
我希望这能对路由服务器/一般的眼镜有所了解。