动态 NAT – 映射一个未注册的 IP 地址到一组已注册 IP 地址里的一个。动态 NAT 也是在未注册和已注册 IP 地址之间建立映射关系,但是映射地址的来源是取决于通信时地址池中的可用注册 IP 地址数。在动态 NAT 中,IP 地址是192.168.32.10的计算机总是转换成范围在213.18.123.100 - 213.18.123.150中第一个可用 IP 地址:

过载 – 映射多个未注册 IP 地址到一个已注册 IP 地址时,动态 NAT 采用不同的端口。也就是所谓的 PAT (Port Address Translation, 端口地址转换),单地址 NAT 或端口级 NAT 复用。在过载中,私有网络中的每一台计算机都转换到同一个 IP 地址 (213.18.123.100) 但是被分配不同的端口号:

重叠 –当你在内网使用的 IP 地址已经在另一个网络中被注册并使用了,路由器就会维护一个有这些地址的检查表,这样路由器就可以截断 (内网) 这些地址并将它们替换到唯一已注册 IP 地址。特别注意, NAT 路由器必须将 ”内部“ 已注册地址转换到另一个已注册唯一地址,还必须将 "外部" 已注册地址转换到私有网络的唯一地址。这将通过静态 NAT 或是你能用 DNS 并实现动态 NAT 来实现。内部 IP 地址的范围 (237.16.32.XX) 已被另一个网络注册并使用。因此,路由器将进行地址转换来避免和另一个网络的潜在冲突。当信息被送往内部网络时,它还将外部已注册的 IP 地址转换回本地原来的 IP 地址:

内部网络通常是一个局域网 (LAN, Local Area Nerwork),通常也被称为存根域。存根域只在内部使用 IP 地址的局域网。存根域中的大多数流量都只在内部传送,不会离开这个内部网络。一个存根域包括注册和未注册的 IP 地址。当然,任何使用未注册 IP 地址的计算机都必须用网络地址转换来和外部网络通信 (任何时候存根域内只有一部份主机要与外界通信,甚至还有许多主机可能从不与外界通信,所有整个存根域只需要共享少量的全局IP地址, 译者注)。

有多种方法能配置 NAT。在下面的例子中,NAT 路由器被配置来将处于私有 (内部) 网络中的未注册 IP 地址 (内部地址) 转换成注册 IP 地址。当一台拥有未注册地址的内部设备需要和公共 (外部) 网络通信时,NAT将会起作用。

ISP (Internet Server Provider, 网络服务提供商)给你的公司分发一定范围的 IP 地址段。分配的这一堆地址是注册唯一的 IP 地址,即所谓的内部全局地址[1]。未被注册的私有 IP 地址被分成两组,数量少的一组 (外部本地地址[2]) 将被 NAT 使用,而大多数将用于存根域[5]所谓的内部本地地址[3]。外部本地地址用于转换处于公共网络中设备的唯一 IP 地址,即外部全局地址[4]。更多关于本地和全局地址的定义参见 NAT: Local and Global Definitions。NAT 仅仅只是转换在内部和外部网络之间被指定需要被转换的流量。任何不符合流量转换规则或那些仅仅在其他接口 (即路由器上的LAN口,译者) 之间转发的流量并不会被转换,它们只会被转发。根据 IP 地址是私有网络 (存根域) 还是共有网络 (因特网) 和流量是输入还是输出,而被分为许多种。

大多数在存根域 (网络) 中的计算机都用内部本地地址相互通信。

在存根域 (网络) 中的一些计算机需要经常和外部网络通信。这些计算机就会被分配内部全局地址,这就意味着他们不再需要地址转换。

当一台在存根域 (网络) 中被分配了内部本地地址的计算机想要和外部网络通信时,数据包就会像通常一样被路由到其默认网关,此时网管充当 NAT 路由器功能。

这个 NAT 路由器检查它的路由表,查看有没有包含这个数据包目的地址的条目。如果其目的地址不在这个路由表里,路由器就将数据包丢弃。如果这条目存在,路由器就验证这个数据包是否是从内部网络到外部网络,并检查其是否满足转换规则。路由器然后查看地址转换表,看有没有一个条目是这个内部本地地址对应的内部全局地址。如果有,路由器就用这个内部全局地址来替代数据包的内部本地地址。如果仅仅是配置了静态 NAT 且没有这样的条目存在,路由器就会不转换地址而直接转发数据包。

通过内部全局地址,路由器将数据包转发至它的目的地址。


相关内容