原创
网络地址转换(NAT)的工作原理
2009-10-8 10:03
4365
9
9
分类:
工程师职场
当一台小型商务企业的内部网计算机用户连接到 Internet 资源时,该用户的 TCP/IP 协议产生一个 IP 数据包,该数据包包含以下值,这些值位于 IP 和 TCP 或 UDP 标头中:
目标 IP 地址:Internet 资源 IP 地址
源 IP 地址:私有 IP 地址
目标端口:Internet 资源 TCP 或 UDP 端口
源端口: 源应用程序 TCP 或 UDP 端口
请求源主机或者其它路由器将此 IP 数据包发送给 NAT, 然后由 NAT 将向外发送的数据包的地址解析如下:
目标IP地址:Internet 资源 IP 地址
源IP 地址:ISP 分配的公用地址
目标端口:Internet 资源 TCP 或 UDP 端口
源端口:重新映射的源应用程序 TCP 或 UDP 端口
NAT 将重新映射的 IP 数据包发送到 Internet 。响应计算机将向 NAT 返回一个响应。当 NAT 接收到此响应时,该数据包将包含以下地址信息:
目标IP 地址:ISP 分配的公用地址
源IP地址:Internet 资源 IP 地址
目标端口:重新映射的源应用程序 TCP 或 UDP 端口
源端口:Internet 资源的 TCP 或者 UDP 端口
当 NAT 完成映射和解析地址后,将向 Internet 客户端发送数据包,此数据包包含以下地址信息:
目标 IP 地址:私有 IP 地址
源 IP 地址:Internet 资源 IP 地址
目标端口:源应用程序 TCP 或者 UDP 端口
源端口:Internet 资源 TCP 或 UDP 端口
对于向外发送的数据包,源 IP 地址和 TCP/UDP 端口号将被映射到一个公用源 IP 地址和一个可能变化的 TCP/UDP 端口号。对于接收的数据包,目标 IP 地址和 TCP/UDP 端口号将被映射到私有 IP 地址和初始 TCP/UDP 端口号。
例如,一个小型办公网络使用 192.168.0.0/24 作为企业内部网络私有 ID 并且其 Internet 网络服务提供商分配的单一公用IP地址为131.107.0.1。当此小型内部网中一台内部私有地址为 192.168.0.99 的客户访问 IP 地址为 157.60.0.1的网站服务器时,此用户机的 TCP/IP 协议产生一个包含以下在 IP 和 TCP 或者 UDP 标头中的数值的 IP 数据包:
目标IP地址:157.60.0.1
源IP地址:192.168.0.99
目标端口:80
源端口:1025
请求源主机将此 IP 数据包发送给 NAT 设备,然后由 NAT 设备解析向外发送数据包的地址如下:
目标 IP 地址:157.60.0.1
源 IP 地址:131.107.0.1
目标端口:80
源端口:5000
NAT 将重新映射后的 IP 数据包发送到 Internet。网站服务器向 NAT 返回一个响应。当 NAT 接受到此响应时,数据包包含以下地址信息:
目标IP地址:131.107.0.1
源IP地址:157.50.0.1
目标端口:5000
源端口:80
当 NAT 完成地址的映射和解析后,它将此数据包发送给 Internet 客户端,数据包包含以下地址信息:
目标IP地址:192.168.0.99
源IP地址:157.60.0.1
目标端口:1025
源端口:80
从私用流量到公共流量的映射储存在一个 NAT 转换表中,包括两种类型的条目:
1. 动态映射
在专用网络用户开始通信时产生。除非被与 NAT 转换表相对应的流量所刷新,否则动态映射在指定的时间后将从 NAT 转换表中删除。
2. 静态映射
通过手动设置,使 Internet 客户进行的通信能够映射到某个特定的私有网络地址和端口。如果想让连接在 Internet 上的计算机能够使用某个私有网络上的服务器(如网站服务器)以及应用程序(如游戏),那么静态映射是必需的。静态映射不会从 NAT 转换表中删除。
如果在 NAT 转换表中存在某个映射,那么 NAT 只是单向地从 Internet 向私有网络传送数据。这样,NAT 就为连接到私有网络部分的计算机提供了某种程度的保护。但是,如果考虑到 Internet 的安全性,NAT 就要配合全功能的防火墙一起使用。
NAT 的类型
以下各类 NAT 的定义:
Cone(Cone)NAT
完全 NAT 是指在 NAT 转换表中存储了内部地址和端口号与外部地址和端口号之间映射关系的一类 NAT。一旦 NAT 转换表开始工作,来自任何源地址和端口通往外部地址和端口的入站数据包都将被转换。
受限NAT
受限 NAT是指在 NAT 转换表中存储了内部地址和端口号与外部地址和端口号之间的映射,无论是特定的源地址或者特定源地址与端口号。如果从某个未知外部地址或者端口到外部目标地址和端口的入站数据包与 NAT 转换表吻合,那么此数据流将被自动放弃。
对称NAT
对称 NAT 是指根据外部目标地址(适用于出站数据包)将相同的内部地址和端口号映射到不同的外部地址和端口号的 NAT。
文章评论(0条评论)
登录后参与讨论