当 LAN 使用 rfc 1918 私有 IP 时,NAT 不是必须的吗?组织是否可以为其主机分配私有 IP,并且无需 NAT 即可与外部世界通信?
具有私有 IP(例如 10.1.1.1)的内部主机如何在没有 NAT 的情况下与外部世界通信?我的意思是,来自外部世界的回复/响应数据包如何到达原始源,因为目标 IP = 10.1.1.1 的数据包将丢失,因为它无法路由,因为许多组织可以使用相同的 IP。
为什么 rfc 1918(私有互联网地址分配)没有提及 NAT?
答案1
取决于“通信”的定义。我看到几个网络只能通过代理访问网络。局域网和“野生互联网”之间不可能进行直接的数据包交换。无法 ping 通,但基于网络的应用程序可以通过代理运行。
答案2
不是。可以使用代理等工具“重新解释”数据包,而无需设置 NAT。NAT 只是一种方便的工具,允许在没有明确代理的情况下进行连接。
答案3
路由的工作方式如下:
- 数据包到达入口接口
- 检查路由表是否与数据包目标地址的最长前缀匹配
- 如果找到路由,则 TTL 会减少,校验和会重新计算,数据包会转发到路由表指定的出口接口
大多数路由器(以及希望与外部世界通信的所有主机)都有一个默认路由 0.0.0.0/0,这是最短前缀匹配(0 位网络掩码),并将转发与相关接口上的任何其他条目不匹配的数据包。它们将数据包转发到RFC1918地址也是如此。那么为什么我们不能在没有 NAT 的情况下使用它们呢?
由于核心互联网路由器(我简化了)的路由表中没有默认路由,因此它们参与所谓的无违约区。因此,它们必须具有到 Internet 中每个现有网络的路由(这意味着如今要携带大约 316K 条路由)。由于它们知道 RFC1918 指定哪些地址为私有地址,因此它们不会允许这些网络存在于它们的路由表中。这就是为什么没有 NAT 就无法访问它们,这也是 RFC1918 没有提及它们的原因。
回答你的问题,NAT 不是必须的,只要你不想跨越 DFZ,并且人们不会主动过滤你的 RFC1918 流量(你的 ISP 通常会这样做)。
答案4
RFC 1918 中的操作语言在第 3 节中:
如果企业决定使用本文档定义的地址空间之外的 IP 地址,则无需与 IANA 或互联网注册机构进行任何协调。
此处的含义是,RFC 1918 池中的地址不应出现在全局默认自由区域中,这是它们与 RFC 4193 中定义的 IPv6 唯一本地地址(即 fc00::/7)共享的属性。当然,它们的不同之处在于 IPv6 唯一本地地址明确标记为全局范围而不是站点本地范围,而 IPv4 地址没有任何官方的寻址范围概念。在实践中,RFC 1918 地址通常被用作具有站点本地或组织本地范围,但这并不是绝对必要的。
也没有必要使用 NAT 来让私有地址主机访问公共互联网。理论上,替代方案是为此类主机分配私有地址之外的额外公共接口地址。源地址选择应该可以正常工作。
唉,当展示一种有效的现有做法时,人们往往不关心它在理论上是否站得住脚。