网站首页 > 博客文章 正文
号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
下午好,我的网工朋友。
越来越多的设备连接到网络上,这导致了IPv4地址资源日益紧张。
IPv4地址的有限性成为了网络扩展的一大障碍。NAT不仅有效缓解了IPv4地址耗尽的压力,而且还提供了额外的安全层,使得内部网络中的设备能够共享一个或少数几个公网IP地址进行对外通信。
无论是构建家庭网络还是设计复杂的企业级网络架构,NAT都是确保网络高效运作的关键工具之一。
然而,由于NAT涉及的技术细节较多,很多网工朋友可能会对此感到有些困惑。
所以今天就来讲讲NAT,帮助大家全面理解NAT的基本概念、工作原理及其在网络管理中的实际应用。
今日文章阅读福利:《 NAT类型测试小工具NatTypeTester》/《Netframework2.0》
讲到NAT,分享一个好用的NAT类型测试小工具给你,发送暗号“Natt”即可获取。
由于这个工具需要基于NET Framework 2.0(或更高版本)使用,所以把NET Framework 2.0的资源也给到你。私信我,发送暗号“Netf”,即可获取,各位朋友按需领取下载。
01 NAT概念解析
NAT(Network Address Translation)是一种用于重新映射IP地址的技术。
在使用NAT的情况下,一个或多个内部网络设备使用私有IP地址,而这些设备通过一个公共IP地址与外部网络进行通信。NAT的主要目的是节省公网IP地址,同时为内部网络提供一定程度的安全防护。
01 私有IP地址 vs 公共IP地址
私有IP地址是在内部网络中使用的,不会在全球范围内路由。这些地址通常是从一个保留的地址池中分配出来的,例如:
- 10.0.0.0 到 10.255.255.255
- 172.16.0.0 到 172.31.255.255
- 192.168.0.0 到 192.168.255.255
这些地址段内可以自由分配而不必担心与其他网络冲突。与此相反,公共IP地址是唯一的,并且可以在全球范围内路由,用于直接在互联网上标识设备。
02 NAT解决的问题
由于IPv4地址空间的限制,NAT成为一种有效的解决方案。
它允许内部网络中的多台设备共享同一个公网IP地址,从而减少了对公网IP地址的需求。此外,NAT还可以隐藏内部网络的拓扑结构,提高网络安全,因为外部网络无法直接访问内部网络设备的真实地址。
02 NAT类型介绍
01 静态NAT(Static NAT)
静态NAT是一种简单的地址转换方式,其中内部网络中的一个或多个设备被永久映射到一个或多个公共IP地址上。
这种类型的NAT常用于需要持续暴露于互联网的服务,如Web服务器、邮件服务器等。静态NAT的好处在于它的稳定性和可预测性,因为内部地址和外部地址之间的映射关系是固定的。
特点:
- 内部地址与外部地址一对一映射。
- 映射关系固定不变,适合需要长期公开访问的服务。
- 提供较高的可用性和稳定性。
02 动态NAT(Dynamic NAT)
动态NAT则是指内部网络中的设备使用一组预先定义的公共IP地址池。
当内部设备需要与外部网络通信时,NAT设备会从这个池中选择一个可用的公共IP地址进行转换。一旦会话结束,这个公共IP地址就会被释放,以供其他内部设备使用。
特点:
- 内部地址与外部地址的映射不是固定的,而是根据需要动态分配。
- 节省公共IP地址资源,适用于大量设备间歇性访问外部网络的情况。
- 提高了灵活性,但可能带来一定的管理复杂度。
03 PAT(Port Address Translation)
PAT,即端口地址转换,是最常见的一种NAT形式。
PAT允许多个内部主机共享同一个公共IP地址,通过附加不同的传输层端口号(TCP或UDP)来区分不同的内部主机。这种方法极大地提高了公共IP地址的利用率。
特点:
- 多个内部IP地址映射到单个外部IP地址,通过端口号区分不同的内部主机。
- 极大地节约了公网IP地址资源。
- 适用于用户数量庞大且每个用户可能只短暂连接外网的场景。
- 可能会对某些需要固定端口的应用程序造成兼容性问题。
03 NAT的工作流程
NAT的工作流程可以分为两个主要阶段:
地址转换和数据包处理。
下面我们将详细探讨这两个阶段是如何运作的。
01 地址转换
当内部网络中的设备试图与外部网络上的另一台设备建立通信时,NAT设备会执行以下操作:
- 内部设备发送请求:
- 内部设备向NAT设备发送数据包,数据包包含源IP地址(内部私有地址)和目标IP地址(外部公网地址)。
- 地址转换发生:
- NAT设备检查数据包的源IP地址,然后查找NAT表。如果不存在相应的条目,则创建一个新的条目,并将内部设备的私有IP地址替换为NAT设备的公共IP地址。同时,如果使用PAT,则还会将源端口号添加到NAT表中,以便后续的流量识别。
- 转发数据包:
- 修改后的数据包被发送到外部网络。
02 数据包处理
当响应数据包从外部网络返回到内部网络时,NAT设备执行反向转换过程:
- 接收响应数据包:
- NAT设备接收到从外部发来的响应数据包,数据包包含源IP地址(外部公网地址)和目标IP地址(NAT设备的公共IP地址)。
- 查找NAT表项:
- NAT设备根据数据包的目标IP地址(自己的公共IP地址)和源端口号(如果是PAT的话),查找NAT表中的对应条目。
- 恢复原始地址:
- 找到对应的条目后,NAT设备将数据包的目标IP地址恢复为内部设备的私有IP地址,并将数据包转发给正确的内部设备。
03 示例
假设内部网络中有一台计算机A(IP: 192.168.1.2),它尝试访问外部网络中的服务器B(IP: 8.8.8.8)。以下是地址转换的具体步骤:
- 计算机A发送请求:
- 数据包包含源IP地址192.168.1.2,目标IP地址8.8.8.8。
- NAT设备处理请求:
- NAT设备将源IP地址192.168.1.2替换为其自身的公共IP地址203.0.113.1,并记录转换信息。
- 数据包转发:
- 修改后的数据包被发送到外部网络中的服务器B。
当服务器B响应时:
- 响应到达NAT设备:
- 响应数据包包含源IP地址8.8.8.8,目标IP地址203.0.113.1。
- NAT设备恢复地址:
- NAT设备查找NAT表,恢复数据包的目标IP地址为192.168.1.2,并将数据包转发给计算机A。
原创:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
猜你喜欢
- 2025-01-18 防火墙NAT配置,配置NAT静态转换,配置NAT动态转换PAT及No-PAT模式
- 2025-01-18 四种网路类型外网穿透力与优化方法
- 2025-01-18 运维自动化之实用python代码汇总
- 2025-01-18 通过Python实现内网穿透的几种方式?
- 2025-01-18 小科普 | 联机游戏卡顿?改善你的NAT类型吧
- 2025-01-18 如何用Python实现神经网络(附完整代码)
- 2025-01-18 公司内网用户如何通过NAT地址访问外网,一文读懂!
- 2025-01-18 从联机游戏学习NAT类型
- 2025-01-18 python-网络编程总结
- 2025-01-18 工业路由器网关的网络协议之NAT技术
你 发表评论:
欢迎- 383℃用AI Agent治理微服务的复杂性问题|QCon
- 383℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 380℃IT全明星|IntelliJ IDEA学习笔记(四、idea中怎么创建maven项目)
- 370℃初次使用IntelliJ IDEA新建Maven项目
- 364℃Maven技术方案最全手册(mavena)
- 361℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 361℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 357℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)