这台计算机接收来自路由器的数据包, 并且只要这台计算和外部网络通信,此过程就会重复执行。

由于 NAT 路由器现在已经拥有了这台计算机保存在地址转换表中的的源地址和源端口号,它将会在有效期内继续使用同一个端口号进行转换。每当一个新的条目加入到路由器的转换表中时,计数器就会重置。如果在计数器到期之前连接就不可用了,其对应条目就会从表中删除。

下面这张表显示了一台处于存根域的计算机对外部网络将会如何表现:

源计算机    源计算机 IP 地址   源计算机  端口号   NAT路由器 IP 地址 NAT路由器分配的端口号
A

192.168.32.10

400

215.37.32.203

1

B

192.168.32.13

50

215.37.32.203

2

C

192.168.32.15

3750

215.37.32.203

3

D

192.168.32.18

206

215.37.32.203

4

就如你说见, NAT 路由器将每一台计算机的 IP 地址和端口号都保存在地址转换表中。然后它用它自己注册的 IP 地址替换发送来的数据包的 IP 地址,并将端口号替换为该数据包的源计算机信息条目在表中的相应位置号。这样任何一台处于外部网络的计算机都会在发送给它的数据包里找到 NAT 的 IP 地址和由路由器分配的端口号。

你也可以给存根域中的一些计算机指定 IP 地址。你可以创建一个 IP 地址列表来告诉路由器网路中的哪些计算机需要 NAT 服务。这样,所有其他 IP 地址的计算机都不会执行转换了。

一台路由器能同时执行地址转换的个数主要取决对于它拥有的DRAM (动态随机存储器, Dynamic Random Access Memory) 。但是由于通常的地址转换条目是160字节,而一台有4MB 大小 DRAM 的路由器理论上可以同时执行 26214 个地址转换!这对大多数应用都已经足已。

IANA 事实上专门给不可路由的网络指定了一段 IP 地址。这些地址是未注册的 (关于这些地址的范围定义请参见 RFC 1918: Address Allocation for Private Internets) ,也就是说没有任何一家公司或机构有权利声称他们拥有这些地址并在公共网络上使用。路由器并不会直接转发数据包到未注册地址,因为它们使用未注册地址就意味着这些网络是私有的,并不想被外界所知道。这就是说一个数据包从一个未注册地址能够达到一台有注册地址的计算机,但是其响应数据包将会在它到达的第一个路由器就被丢弃 (这里说的是不是用 NAT 的情况,译者) 。

这是在三类 IP 地址中用于私有网络的地址段:

地址段1用于 A 类地址:10.0.0.0 到 10.255.255.255

地址段2用于 B 类地址: 172.16.0.0 到 172.31.255.255

地址段3用于 C 类地址: 192.168.0 到 192.168.255.255

虽然每一段都位于不同类地址中,但是在你的内部网络中你用那一段并没有限制。但它是一个很好的减少 IP 地址冲突的方式。

安全和管理

在你的内部网络和外部网络 (或者说因特网) 之间使用动态 NAT 相当于自动建立了一个防火墙。动态 NAT 仅仅允许来自内部存根域发起的连接。本质上就是说,一台处于外部网络的计算机将不能连接到你的计算机,除非你的计算机已经建立了连接。所以你可以浏览因特网,连上一个站点,甚至可以下载文件。但是其他人却不能像这样简单的获取到你的 IP 地址并用它连接上你的计算机上的端口。

静态 NAT ,也就是所谓的入站映射,允许在特殊情况下来自外部设备发起的连接到处于存根域中的计算机。例如,你或许希望映射一个内部全局地址到一个指定的内部本地地址,它指向你的网络服务器。

静态 NAT (入站映射) 允许当一台在存根域中的计算机与外部网络中的设备通信时维持一个指定的地址:

 

一些 NAT 路由器还提供额外的过滤和流量记录功能。过滤功能让你的公司能控制公司雇员能够访问哪些网站,阻止他们查看可疑的资源。你可以运用流量记录来创建一个记录文件,记录哪些网站被访问了,并根据它生成报告。


相关内容