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

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

所以我想知道是否需要采取任何措施来应对它吗? 。我的想法是:


设置防火墙(iptables)规则,以便其他IXP参与者仅接受目标地址为我自己IP空间的流量。丢弃来自IXP参与者的任何其他流量。
以某种方式使quagga对每个邻居(或对等组)使用不同的内核路由表。 IXP邻居的路由表除我自己的IP空间外不会包含任何条目,因此不会发生使用ip传输上行链路的路由。查看ip rule show的输出是否显示quagga不会自动执行此操作?

我在正确的轨道上吗?为什么2.不直接在Quagga中实现?硬件路由器(Cisco,Juniper等)如何处理此问题?

评论

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。

#1 楼

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

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

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

我不会实现第二种解决方案。如果您有多个路由器来处理传输和对等连接,或者如果您有大量对等会话(在IXP上经常遇到一些麻烦,这种情况并不罕见),那么它很复杂并且扩展性不好。

在所有硬件路由器平台上,我都知道可以通过在出站接口上配置RPF和/或编写过滤器来解决此问题。

#2 楼

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

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

#3 楼

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

BGP的工作方式是其他人只能到达您向其通告的目的地。因此,举例来说,您有一个/ 24,并将其发布给您的传输提供商,以便Internet上的主机可以通过您的传输对等方到达您,并且您还可以将/ 24发布给对等点,以便连接到对等点的主机可以直接访问您而无需通过Internet(这将被视为最佳路径)。

对于BGP会话,您通常会过滤掉向对等方广告以及对等方广告(如果您有下游对等),例如带有前缀列表。通常,您不会从对等交换机过滤入站,因为该交换机只会向您发送与该交换机相连的人员的路由。这类似于您的运输提供商,除了它们通常会向您发送完整的全局路由表(Internet上的所有目的地)。

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

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

如果您自己发布到交换所的默认路由,则连接到对等交换所的主机只能通过您看到互联网。您唯一一次可以用作“传输AS”的情况是,如果您的客户与您同为下游对等方,并且他们要求您将其IP空间广告发布给IXP,以便他们可以通过您与交易所进行交易。