博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NAT基本原理
阅读量:7023 次
发布时间:2019-06-28

本文共 2453 字,大约阅读时间需要 8 分钟。

hot3.png

地址转换(NAT)的工作原理

  当一台小型商务企业的内部网计算机用户连接到 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
  
   

  

展示了此例子的配置方式。

  
  从私用流量到公共流量的映射储存在一个 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。

转载于:https://my.oschina.net/jiyufei/blog/77874

你可能感兴趣的文章
Cisco ASA 应用NAT
查看>>
微信环境中不支持APP(APK)文件下载的解决方案---使用augpush实现跳转
查看>>
Python进阶之路 3.4.4 比较运算符
查看>>
数据库系统学习二
查看>>
extmail一个正常收发邮件log(内网测试)
查看>>
深入探索spring技术内幕(五): 剖析spring AOP工作原理
查看>>
利用内容提供者来操作联系人数据库
查看>>
UNIX网络编程书中源代码测试环境搭建 (centos中取时间问题)
查看>>
解决IP地址冲突的问题
查看>>
浅谈 iOS 版本号
查看>>
.net core入门之守护进程
查看>>
Scala 高阶函数
查看>>
OSChina 周六乱弹 ——白天写代码,晚上跑滴滴,都是有故事的男同学
查看>>
OSChina 周日乱弹 ——程序员女友爆照!404
查看>>
swift3.0 dispatch_after 延时操作
查看>>
NGUI v301 官网详解 Example 3 - Menu
查看>>
调试Angular代码的Batarang插件不能用的问题
查看>>
文件测试
查看>>
Java指定网页打开Chrome浏览器
查看>>
设计模式-简单工厂模式(Simple Factory)
查看>>