首页 > 其他分享 >NAT

NAT

时间:2024-02-07 14:11:19浏览次数:14  
标签:映射 端口 地址映射 NAT IP地址 设备

网络地址转换(Network Address Translation,NAT)是网络层的功能,用于将私有的局域网地址转换为公共网络地址,实现多个局域网设备共享同一个公共IP地址,解决IPv4地址短缺的问题。

NAT功能通过NAT设备来实现,路由器大都内置了NAT的功能,防火墙设备也经常集成了NAT功能,某些高级交换机可能包含NAT功能,还有专门的NAT设备

地址映射关系

NAT实现的核心是地址映射关系,NAT设备维护着内部设备和公共网络之间的地址映射关系表,记录了内部设备私有IP地址、端口与NAT设备公共IP地址、端口之间的对应关系。映射表的具体结构可能会因NAT实现方式的不同而有所差异。如下简化示例:

内部IP:端口 外部IP:端口 协议
192.168.1.2:1025 203.0.113.5:5001 TCP
192.168.1.3:8080 203.0.113.5:5002 UDP
192.168.1.4:3456 203.0.113.6:6001 TCP

NAT转换过程中同时也中转和传输数据,传输过程依赖传输层协议(TCP/UDP)。

NAT实现类型

  • 静态NAT(Static NAT):网络管理员手动配置地址映射关系。这种方式映射是固定的,易于管理,但不够灵活,尤其是大型网络中。
  • 动态NAT(Dynamic NAT):NAT设备会动态地配置地址映射关系,映射表是动态变化的。当新的内部设备启动连接时,NAT设备会创建新的映射表项;当连接结束或超时时,映射表项会被删除或释放。
  • PAT(Port Address Translation):也称为NAPT(Network Address and Port Translation)。不仅进行IP地址的转换,还会转换端口号。多个内部设备共享同一个公共IP地址通过不同的端口号区分。
  • Overloading: Overloading是PAT的一种实践方式。它使用端口号来区分不同的内部设备,通过在不同的协议层(例如TCP、UDP)和方向上使用相同的端口号,实现多个内部设备与一个公共IP地址之间的映射。

NAT的过程

  1. 内部设备发送数据包到NAT设备。
  2. NAT设备检查地址映射关系(映射表),存在映射关系则进行地址转换,将内部设备的IP地址和端口替换为对应的公共IP地址和端口。如果不存在映射关系,则NAT设备会创建新的映射关系。
  3. 经过地址转换后,NAT设备转发数据包到外部网络。
  4. 外部网络收到NAT设备转发的数据包后响应,NAT设备根据响应的数据包和地址映射关系进行反向地址转换,将目标IP地址和端口还原为原始的内部设备的IP地址和端口,并将数据包回传给内部设备

配置与规则

  • 可指定NAT设备处理的协议类型,例如TCP、UDP或同时支持TCP和UDP。
  • 配置用于动态NAT允许的公共IP地址范围。NAT设备将从这个范围中选择可用的公共IP地址。
  • 为每个动态映射关系配置允许的公共端口范围。这是支持PAT或Overloading的基础。
  • 可配置排除某些IP地址或端口不进行动态NAT。
  • 配置NAT设备指定连接的超时时间(即映射关系保持有效的时间)。配置允许建立的最大动态映射关系数量

NAT设备会根据以上配置与规则进行动态NAT,动态NAT功能通常与DHCP一起使用,更有效地分配和管理内部设备的IP地址和动态NAT的映射关系。

DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于自动分配IP地址、子网掩码、默认网关等网络配置信息。

标签:映射,端口,地址映射,NAT,IP地址,设备
From: https://www.cnblogs.com/ealenxie/p/18010884

相关文章

  • SciTech-Anatomy-Tooth
    0.牙:成人牙:称为恒牙,上下各16颗,以牙科医师面对患者视角,对上下两排牙编号:-上排:从左到右编号1号~16号,-下排:从右到左编号17号~32号,儿童牙:称为乳牙,上下各10颗,1.Anatomy2.Number......
  • 【K8S】namespace 一直处在terminating状态
    1、想要去删除k8s中的一个指定命名空间,刚开始使用命令kubectldeletens命名空间的名字#或者使用kubectldeletens命名空间的名字--force--grace-period=0使用以上两种命令均无法成功删除命名空间,只会使命名空间的状态为Terminating状态2、使用以下方法成功删除1)使......
  • .NET NativeAOT 指南
    随着.NET8的发布,一种新的“时尚”应用模型NativeAOT开始在各种真实世界的应用中广泛使用。除了对NativeAOT工具链的基本使用外,“NativeAOT”一词还带有原生世界的所有限制,因此您必须知道如何处理这些问题才能正确使用它。在这篇博客中,我将讨论它们。基本用法#使用Nat......
  • 防火墙及NAT服务
    一、简介1.关于防火墙防火墙,其实就是用于实现Linux下访问控制的功能的,它分为硬件和软件防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略、规则,以达到让它对出入网络的IP、数据进行检测。目前......
  • 【JS逆向】新X社评论数据获取——逆向Signature参数
    免责申明本公众号的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文......
  • 使用spring-jpa和 hibernate实现逻辑删除
    一、使用spring-jpa和hibernate的@SQLDelete和@Where注解实现逻辑删除逻辑删除定义逻辑删除是指在删除数据库的某条记录时,并不是真正的将该条记录删除,而是通过某个字段来标识其状态为“删除”,在接下来的查询等操作时,根据此字段来过滤调被删除的记录。使用Hibernate进行逻辑删除......
  • Hive连接报错:root is not allowed to impersonate root (state=08S01,code=0)
    问题描述使用hive/bin目录下的hive启动客户端,使用!connectjdbc:hive2://hadoop01:10000连接Hive数据仓库时提示输入用户名和密码,输入数据库的用户名和密码报错:Error:CouldnotopenclienttransportwithJDBCUri:jdbc:hive2://hadoop01:10000:Failedtoopennewsession......
  • 网络流量分析 | AnaTraf 网络故障排除万用表教程更新: 如何抓取两个 MAC / IP 地址之
    AnaTraf致力于提供国产化网络流量分析、网络可视化、网络故障排除解决方案。AnaTraf网络万用表是一款实时的网络测量、流量分析工具,用于网络流量监控、识别网络性能瓶颈、快速排查网络问题。万用表的B站频道已经更新最新一期的教程。如何使用AnaTraf网络万用表抓取两个M......
  • react-native中memo、useMemo、useCallback 你真的用明白了吗
    memo的作用在React的渲染流程中,一般来说,父组件的某个状态发生改变,那么父组件会重新渲染,父组件所使用的所有子组件,都会强制渲染。而在某些场景中,子组件并没有使用父组件传入的没有发生更改的状态时,子组件重新渲染是没有必要的。因此有了React.memomemo的使用memo是个高阶......
  • 解决hive-cli客户端on spark 不能正常加载本地的native库
    问题现象CDH版本:6.3.21)使用hive-clionspark运行的时候,出现如下错误:FAILED:ExecutionError,returncode3fromorg.apache.hadoop.hive.ql.exec.spark.SparkTask.Sparkjobfaileddueto:Jobabortedduetostagefailure:AbortingTaskSet0.0becausetask0(par......