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

评论

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

#1 楼


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


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



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

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

评论


如果isp a和isp b相互连接怎么办。如果isp a不使用uRPF,isp b可以对此做任何事情吗?

–玉米片
13年7月16日在11:05

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

–迈克·彭宁顿
13年7月16日在11:08



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

–ytti
13年7月16日在11:10

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

–迈克·彭宁顿
13年7月16日在11:11

@ytti,我很清楚我的答案是否合格……我说:“通常,打开它并不会造成很大的性能损失”。我们不要忘记6500 Sup7203BXL完全装有DFC时是400Mpps的机器。在机箱中每个WS-X6704放置一个DFC,没有什么可担心的...如果您疯狂到只依赖整个机箱的PFC3转发,那么您就会遇到问题。

–迈克·彭宁顿
13年7月16日在11:32

#2 楼

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

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

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

ACL比uRPF受到更广泛的支持,在3层交换级设备中,uRPF相对较少。在“真实”路由器中,通常两个功能都可用。即使两个功能都可用,在错误的网络位置配置uRPF也会破坏网络,不了解特定于平台的ACL限制可能会导致中断。

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

负责的服务提供商做到这一点,因为这是正确的做法,但是期望我们在部署的访问设备的大部分中获得反欺骗是不现实的。更现实的目标是,如果我们在IP传输连接中执行ACL,因为那里只有大约6000左右的粗略AS编号。通过诸如QUIC和MinimaLT之类的协议进行固定,这些协议可确保反射没有收益,因为保证传入的查询要大于传出的答案,因此欺骗会失去其好处。

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

#3 楼

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

没有这样做很简单,因为对于适用于几乎所有情况的每条规则,还有一个用例会在商业意义上被破坏。

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

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

评论


在现实世界中,源地址过滤是不平凡的,应将其更改为uRPF / strict。由于使用ACL进行源地址过滤与路由对称性无关。也就是说,对我来说,不可能uRPF /限制我的多连接IP传输客户,但是对他们进行ACL却很容易。

–ytti
13年7月16日在13:13