找到将 IPv4 私有地址(例如 192.168.0.0/16 或 10.0.0.0/8)转换为非私有地址的 NAT 比平常更多。
NAT 是否有可能将 IPv6 链路本地地址(例如 FE80::/64)转换为非本地 IPv6 地址,而不是将非本地 IPv6 地址直接分配给主机?
如果可能,这是一种常见的方法吗?
找到将 IPv4 私有地址(例如 192.168.0.0/16 或 10.0.0.0/8)转换为非私有地址的 NAT 比平常更多。
NAT 是否有可能将 IPv6 链路本地地址(例如 FE80::/64)转换为非本地 IPv6 地址,而不是将非本地 IPv6 地址直接分配给主机?
如果可能,这是一种常见的方法吗?
IPv6 没有 NAT。NAT 是一种黑客或混搭,目的是在 IPv6 变得无处不在之前阻止 IPv4 地址的耗尽。NAT 打破了对 IP 设计至关重要的端到端连接。IPv6 恢复端到端连接。
请记住,等同于 RFC1918 IPv4 地址的 IPv6不是链路本地地址 (FE80::/10)。
在最近的IPv6相当于我们所知道的“私有IPv4地址”被称为唯一的本地地址(ULA) :
本文档定义了一种全球唯一的 IPv6 单播地址格式,用于本地通信,通常在站点内部。预计这些地址在全球 Internet 上是不可路由的。
ULA 地址空间的存在是为了解决“仅限内部”资源,这永远不需要全局路由能力,但可能需要内部路由能力。
例如,许多办公室都有在网络上运行的打印机。打印机没有理由可以访问(或访问)互联网,因此,打印机是 ULA 地址空间的良好候选者。 当然总有例外
或者,办公室可能只有内部的票务系统(或 CMS、RMS、或 People Portal 或...),只能从内部公司网络访问。如果这样的工具没有从公共 Internet 访问的业务,那么这些可能是 ULA 地址空间的完美候选者。
话虽如此,Ron 是正确的,在IPv6 中没有 NAT。它的构建是为了可以完全省略 NAT。如果您正确实施 IPv6,您将不会使用 NAT。
然而,如果在 IPv6 中有一些 NATed(尽管是最佳实践),它将是一个 ULA 地址到一个全局地址。它肯定不会是链接本地地址空间。
链路本地地址 (FE80::/10) 仅用于本地网络通信……也就是说,您与邻居通信,也可能与路由器通信。根据定义,它不打算用于与路由器另一侧的任何内容通话。因此,本质上,您永远不应该遇到或尝试将 Link-Local 地址 NAT 为 Global address。
相当于链路本地地址空间的 IPv4 是169.254.0.0/16范围。
本文档描述了主机如何使用 169.254/16 前缀内的 IPv4 地址自动配置接口,该地址对于与连接到同一物理(或逻辑)链路的其他设备的通信有效。
Nat 开始是为了解决短缺问题,但随着时间的推移,人们开始重视其他属性。
IPv6 社区中的许多人都是/曾经是象牙塔式的人,他们拼命想相信使用 NAT 的唯一原因是地址保护和/或说服人们有比 NAT 更好的解决方案来解决他们的问题。他们确实提出了替代解决方案,但其中许多解决方案本身的成本很高(例如,为了“隐藏网络结构”,他们建议在整个组织中随机分配 IP 地址,这会导致内部路由表大量膨胀)。
然而,并不是每个人都同意他们的观点,而且随着 IPv6 变得越来越普遍,NAT 解决方案已经可用。
使用链路本地地址进行 NAT 是不可能的,因为它们被禁止通过路由器(并且 NAT 可以被视为一个特殊的路由器)但是可以使用“唯一本地”地址来进行,因为它们在语义上是等效的到全球地址。也可以从一个全局地址转换为另一个全局地址,这有时很有用(例如,当切换到备用 ISP 时)。