基本网络地址转换 (Basic NAT)
这一种也可称作NAT或“静态NAT”。它在技术上比较简单一点,仅支持地址转换,不支持端口映射,这就需要对每一个当前连接都要对应一个IP地址,因此要维护一个公网的地址池。宽带路由器通常使用这种方式来允许一台指定的计算机去接收所有的外部连接,甚至当路由器本身只有一个可用外部IP时也如此,这台路由器有时也被标记为DMZ主机。
基本NAT要维护一个NAT表,结构如下。
内网IP | 外网IP |
---|---|
192.168.1.55 | 219.152.168.222 |
192.168.1.59 | 219.152.168.223 |
192.168.1.155 | 219.152.168.224 |
网络地址端口转换(NAPT)
这种方式支持端口的映射并允许多台主机共享一个公用IP地址。
支持端口转换的NAT又可以分为两类:源地址转换和目的地址转换NAT ,前者主要用于内网访问外网,后者用于外网访问内网。前一种情形下发起连接的计算机的IP地址将会被重写,后一种情况下被连接计算机的IP地址将被重写。实际上,以上两种方式通常会一起使用以支持双向通信。
NAPT也要维护一个NAT表,结构如下。
内网IP | 外网IP |
---|---|
192.168.1.55:5566 | 219.152.168.222:9200 |
192.168.1.59:80 | 219.152.168.222:9201 |
192.168.1.59:4465 | 219.152.168.222:9202 |
选自:
工作原理
当内部网络上的一台机器要与互联网上的一台机器通信,发一个IP数据包到该外网机器。这些数据包包含了需要到达目的地的所有的寻址信息。NAT关注的是这些信息:
源IP地址(例如,192.168.1.35)
源TCP或UDP的端口(例如,2132) 当数据包通过NAT网关,他们将被修改,使它们看起来像来自NAT网关本身。NAT网关将这种变化记录在状态表,以便返回的数据包通过防火墙不被阻塞。例如,下面的更改可能会:源IP:替换外部网关地址(例如,24.5.0.5)
源端口替换为一个随机选择的,在网关上未使用的端口(例如,53136) 无论是内部的机器或Internet上的主机是不知道这些翻译步骤的。对内部机器而言,NAT系统是一个简单的Internet网关。对于Internet上的主机而言,数据包看起来直接来自NAT系统,它完全不会意识到内部工作站的存在。当Internet上的主机应答数据包给内部机器时,这些包的目的地址会是NAT网关系统的外部IP地址(24.5.0.5)和翻译端口(53136)。然后NAT网关将搜索,以确定应答报文是否匹配一个已建立的连接状态表。基于IP/端口组合的唯一匹配如果被发现,就会告诉PF,这些数据包属于内部主机192.168.1.35发起的连接。 PF然后进行相反的变化,将应答报文送到内部机器。
翻译的ICMP数据包以类似的方式发生,但没有修改的源端口。
出处: