Quagga 路由和安全

网络工程 路由 bgp
2021-07-17 17:53:10

我有一个带有两个中转邻居的 Quagga 路由器,并宣布了我自己的 IP 空间。我最近加入了一个公共对等交换 (IXP),所以我和所有其他参与者一起成为他们本地网络 (/24) 的一部分。到目前为止一切正常。

现在出于安全考虑,我想知道其他参与者是否不能简单地通过我路由所有传出流量?例如,如果任何其他参与者将默认路由指向我的 IXP ip,会发生什么。如果我正确理解了来自该参与者的所有传出流量,然后将转到我的路由器,该路由器将使用我的传输上行链路将其路由到互联网,对吗?

所以我想知道我是否必须采取任何措施来对付它。我的想法是:

  1. 设置防火墙 (iptables) 规则,以便仅接受来自其他 IXP 参与者的目的地为我自己 IP 空间的流量。丢弃来自 IXP 参与者的任何其他流量。

  2. 不知何故,quagga 为每个邻居(或对等组)使用不同的内核路由表。除了我自己的 IP 空间之外,IXP 邻居的路由表不包含任何条目,因此不会发生使用我的 ip 传输上行链路的路由。查看ip rule show显示 quagga的输出不是自动执行此操作吗?

我在正确的轨道上吗?2. 为什么不直接在 Quagga 中实现?硬件路由器(cisco、juniper、..)如何处理这个问题?

3个回答

你是对的,如果你不采取任何措施,这可能会发生。这违反了我所知道的大多数 IXP 的可接受使用政策,但您仍然希望防止它发生。

您的第一个解决方案是一件好事,可以解决您的问题。只要确保您不在 iptables 中跟踪会话状态,这可能会降低性能甚至您的路由器。

您也可以考虑以类似的方式进行出站过滤:不允许来自未知来源的数据包离开您的网络。这将防止网络中的主机发送欺骗性 IP 数据包,这些数据包通常用于 DDoS 攻击。

我不会实施第二种解决方案。如果您有多个路由器处理您的传输和对等互连,或者如果您有大量对等互连会话(在 IXP 上有几百个会话并不少见),则它很复杂并且无法很好地扩展。

在所有硬件路由器平台上,我知道这个问题是通过在出站接口上配置 RPF 和/或通过编写过滤器在配置中解决的。

如果您在 Linux 机器上运行 Quagga,您可以通过将内核参数设置net.ipv4.conf.default.rp_filter为 1 或 2来启用 RPF

有关更多详细信息,请参阅此页面:http : //www.slashroot.in/linux-kernel-rpfilter-settings-reverse-path-filtering

据我了解,您有 2 个连接到中转提供商,1 个连接到对等点,在这种情况下,我假设您使用 BGP 与您的中转提供商和 IXP 路由器对等。

BGP 的工作方式是其他人只能到达您向他们通告的目的地。例如,您有一个 /24,您将向您的中转提供商宣传它,以便互联网上的主机可以通过您的中转对等点与您联系,并且您还将向对等点宣传您的 /24,以便连接到对等点的主机可以无需通过互联网即可直接与您联系(因为这将被视为最佳路径)。

对于 BGP 会话,您通常会使用前缀列表过滤您向对等方通告的内容以及他们向您通告的内容(如果您有下游对等方)。通常,您不会过滤来自对等交换的入站信息,因为交换只会向您发送连接到交换的人员的路线。这类似于您的中转提供商,但他们通常会向您发送完整的全球路由表(互联网上的所有目的地)。

在这种情况下,您将在连接到对等点的 BGP 会话上添加与出站方向上的 ACL 匹配的前缀列表,以仅通告您的 /24 前缀,这将允许对等交换上的主机仅通过您的 /24 访问您的 IP路由器(这是您想要的)。

如果有人向您宣传默认路由并且您接受它,您就不会获取他们的流量并将其发送到互联网。在这种情况下,您会看到通过它们到互联网的路由,因为您的路由器会看到通过它们到 0.0.0.0/0(互联网)的路由,因为他们向您宣传了它。

连接到对等交换的主机将通过您看到 Internet 的唯一时间是您自己将默认路由通告到交换。您可能被用作“传输 AS”的唯一其他时间是,如果您的客户是您的下游同行,并且他们要求您将其 IP 空间通告给 IXP,以便他们可以通过您到达交易所。