为什么 NAT 不丢弃带有欺骗性公共源 IP 的数据包?

网络工程 路由 纳特 安全 访问控制 转发端口
2022-02-16 12:13:12

正如我在本页https://www.manrs.org/isps/guide/antispoofing/的第 4.3.8 节中所读到的,

以下代码:

ip nat inside source list INSIDE pool OUTSIDE overload

将转换具有访问列表 INSIDE 中源地址的数据包,并将源地址更改为池 OUTSIDE 中的地址。但是,具有欺骗源地址且不包含在 INSIDE 访问列表中的数据包将在不经过任何转换的情况下被转发,从而导致 Internet 上的欺骗数据包

如果此页面上的声明属实,为什么 NAT 不丢弃 INSIDE 列表中不存在的数据包?如果可以做到这一点,那么我们可以减少互联网上的欺骗 IP 地址。

2个回答

有(至少)两个主要原因:

  1. 假设是您控制“内部”网络。所以,大概,你没有做欺骗。
  2. 并非每个设备都需要进行 NAT。您可能有一些设备使用不需要转换的地址。

至少有三个设计原则,如关注点分离、最少知识原则、单一职责,使 NAT 只专注于翻译,而不是试图成为一个安全特性。用户需要结合 NAT 和 ACL 以确保他们配置所需的功能。如果其他功能的功能潜入 NAT,它可能会导致副作用,可能会强制执行特定的功能顺序,如反欺骗、NAT、ACL 等。