今晚不睡觉 搞懂NAT 原理
2009-03-24 01:41
239 查看
当一台小型商务企业的内部网计算机用户连接到 Internet 资源时,该用户的 TCP/IP 协议产生一个 IP 数据包,该数据包包含以下值,这些值位于 IP 和 TCP 或 UDP 标头中:(粗体内容表示受 NAT 影响的项目):
发送 • 目标 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
[align=center][/align]
[align=center]
展示了此例子的配置方式。[/align]
从私用流量到公共流量的映射储存在一个 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。
学习:了解到NAT通过检查进出数据包的目标IP地址和对应的端口和配置的NAT表作比较来实现地址转换和端口映射的。
发送 • 目标 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
[align=center][/align]
[align=center]
展示了此例子的配置方式。[/align]
从私用流量到公共流量的映射储存在一个 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。
学习:了解到NAT通过检查进出数据包的目标IP地址和对应的端口和配置的NAT表作比较来实现地址转换和端口映射的。
相关文章推荐
- nat原理
- 看完让你彻底搞懂Websocket原理
- NAT地址转换原理全攻略 推荐
- src-nat参数说明、回流原理
- p2p网络中的NAT穿透问题---NAT的原理和类型
- P2P 之 UDP穿透NAT的原理与实现
- UDP穿透NAT的原理与实现 C#实现
- 看完让你彻底搞懂Websocket原理
- P2P之UDP穿透NAT的原理与实现
- P2P之UDP穿透NAT的原理与实现(附源代码)
- P2P之UDP穿透NAT的原理与实现--增强篇(附源代码)
- P2P UDP NAT 原理 穿透
- 看完让你彻底搞懂Websocket原理
- P2P 之 UDP穿透NAT的原理与实现
- 网络地址转换NAT原理及其作用
- P2P之UDP穿透NAT的原理与实现(附源代码)
- P2P之UDP穿透NAT的原理与实现(附源代码)
- P2P 之 UDP穿透NAT的原理与实现(附源代码)
- NAT原理简介、各种 ADSL Modem 及路由器的端口映射方法