当今的路由器可以防止伪造的IP标头吗?


11

我知道人们可以修改IP标头和更改源IP地址,但是网络设备检测到这些消息应该很简单。如果他们不这样做,为什么这么难?它会增加过多的开销吗?


注意:正确的短语是“反欺骗”。假货对我说“假冒劳力士”(顺便说一句,这是完全不同的网络黑客攻击/攻击)
Ricky Beam

Answers:


17

我知道人们可以修改IP标头和更改源IP地址,但是网络设备检测到这些消息应该很简单。

头中的伪造IP源地址可以在商用网络设备中检测和阻止;其他伪造的IPv4标头可能很难识别。大多数人将检测伪造的源IP地址的功能称为“单播反向路径转发”,它是uRPF的缩写;uRPF是在RFC 3704中定义的,被认为是Internet 最佳实践uRPF应该应用于客户端设备的第一个路由器,或公司网络中的边缘路由器。

如果他们不这样做,为什么这么难?它会增加过多的开销吗?

只要路由器不是基于CPU的路由器,就不会降低性能。ISP使用的许多路由器/交换机在硬件的ASIC中都内置了此功能。通常,打开它不会有很大的性能损失。有时会有功能冲突,但是在大多数情况下,这并不是什么大问题。

ISP工程/运营人员的政策和能力各不相同,许多ISP(尤其是在较小的国家/地区)非常忙于使事情“正常工作”,以至于他们没有使事情“正常工作”的周期。


1
如果isp a和isp b相互连接怎么办。如果isp a不使用uRPF,isp b可以对此做任何事情吗?
烤干酪辣味玉米片

通过“执行任何操作”,我假设您假设ISP B没有来自CPE的第一个路由器。是的,ISP B也可以使用uRPF,但是由于bgp路由的不对称特性,他们必须以称为松散模式的方式部署它。这意味着它不能有效地阻止伪造的报头……它实际上只是确保路由表中存在用于源IP地址的路由……因此,如果有人发送的流量完全无法路由,则可以将其阻止。
Mike Pennington

并非仅基于CPU的性能会遭受损失。例如,在没有uRPF的7600/6500 / PFC3中,您可以在WS-X67040-10GE中以最小尺寸的数据包观察线速,打开uRFP,最小帧几乎翻了一番,可以以线速发送至101B。较新的基于NPU的设备(ASR9k,MX,SR等)在uRPF中也具有非零成本,数据包处理引擎启用后比禁用时花费更多的时间,超尺寸可以帮助抽象成本。
ytti

4
@ytti,互联网流量平均超过101字节。对于imix来说,这不是一个严重的问题。
Mike Pennington

1
@ytti,我很清楚我的答案是否合格……我说:“通常,打开它不会对性能造成巨大的影响”。不要忘记6500 Sup7203BXL完全装有DFC时是400Mpps的机器。在机箱中每个WS-X6704放置一个DFC,没有什么可担心的...如果您发疯了,仅依赖整个机箱的PFC3转发,那么您就提出了自己的问题。
Mike Pennington

10

防止更改源IP地址需要访问列表(ACL)或单播反向路径过滤(uRPF)。

两者都不是免费的。uRPF通常需要其他查询或更复杂的单个查询,因此在某些平台上它甚至可能使您的查询性能降低一半。ACL将减慢查找速度并占用内存。

uRPF是免维护的,您只需配置一次就可以了。ACL需要知道哪些地址位于接口后面并确保ACL保持最新状态的系统。

ACL比uRPF受到更广泛的支持,而uRPF在L3交换机级设备中相对较少。在“真实”路由器中,通常两种功能都可用。

即使这两种功能都可用,在网络的错误位置配置uRPF也会破坏网络,不了解特定于平台的ACL限制可能会导致中断。

通常,您自己不会在防止源地址欺骗中受益,而受益的主要是整个Internet。尝试这样做会带来非零风险,因为您可能最终会破坏东西。而且您的客户不会获得任何收益,没有人会付给您更多的收益来实施它们。因此,这样做的回报很低。

负责任的服务提供商可以这样做,因为这样做是正确的,但是期望我们在部署的访问设备的相当大一部分中获得反欺骗是不现实的。更现实的目标是,如果我们在IP传输连接中执行ACL,因为那里只有大约6000左右的粗略AS编号。

为什么这甚至是问题,是因为UDP反射攻击,可以通过QUIC和MinimaLT之类的协议解决该问题,这些协议可确保反射没有收益,因为传入查询被确保大于传出答案,因此欺骗失去了它的好处。

最近,使用UDP反射作为DDoS攻击再次变得非常流行。消费者CPE设备中有许多广为开放的DNS服务器,这些消费者并不知道,因此这些消费者会遭受痛苦,因为它们的家庭连接被用来反映攻击,因而拥塞。这也是获得显着放大的简便方法,几十个字节的小查询可以产生超过一千个字节的大答案。反射型DDoS攻击每秒几百吉比特,每天都在减少,仅在星期日晚上,我们将43Gbps攻击传送给了一位客户。


5

在现实世界中,源地址过滤是不平凡的,因为Internet路由是不对称的,因此原则上我们需要进行有根据的猜测,以判断来自此源的数据包是否可能出现在此传入接口上。

这没有简单的公式,因为对于几乎在所有情况下都适用的每条规则,还有一个使业务有意义的用例会在那时中断。

反向路径过滤在边缘路由器上非常有用,其中对“内部”和“外部”有明确的定义-您不允许外部人员使用“内部”地址,反之亦然。一旦我开始使用多个边缘路由器来实现冗余,它将变得更加复杂。

对于骨干路由器,唯一可以实现反向路径过滤的方法是在对等方宣布一条工作路由时允许传入的数据包(无论它是否是我们的首选)。那将是一个令人望而却步的漫长查找,很容易被绕开,并且破坏了我故意购买公交但不声明该链接前缀的用例。


1
在现实世界中源地址过滤非常重要,应将其更改为uRPF / strict。由于使用ACL进行源地址过滤与路由对称性无关。也就是说,对我来说,不可能uRPF /限制我的多连接IP传输客户,但是对他们进行ACL却很容易。
ytti 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.