其实NAT协议(网络地址转换协议)详解的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享NAT协议(网络地址转换协议)详解的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
1. 为什么需要NAT
随着用户的增加,IPv4地址的压力不断增大,但每个路由器的IP地址下都存在很多私有地址。外部消息只需要找到这个路由器,这个路由器就会找到真正的目的主机,并将消息传递给它。
每个路由器可以分配多个私有地址,不同路由器的私有地址可以重复。通过这种地址转换,可以大大增加地址容量。
私有地址分为三种类型:
10.0.0.0~10.255.255.255/8
172.16.0.0~172.31.255.255/12
192.168.0.0~192.168.255.255/16
这些地址可以在任何组织或企业内使用。与其他Internet地址的区别在于,它们只能在内部使用,不能用作全局路由地址。
对于需要访问Internet并在内部使用私有地址的网络,有必要在组织的出口位置部署NAT网关。当报文离开私网进入Internet时,源IP会被替换为公网地址,通常是出口设备的接口。地址。
外部访问请求到达目标后,似乎是由组织的出口设备发起的,因此请求的服务器可以将响应从Internet 发送回出口网关。
然后,网关将目标地址替换为专用网络的源主机地址,并在内部发回。这样,私网主机向公网服务器的请求和响应就在通信双方不知不觉中完成了。
根据这种模型,大量的内网主机不再需要公网IP地址。 NAT转换示意图如下:
2.如何实现NAT
NAT的实现方式有静态NAT、动态NAT和NAPT三种。
1、静态NAT
如果一台内部主机只占用一个公网IP地址,这种方式称为一对一模型。这样就不需要转换上层协议,因为一个公网IP可以唯一对应一个内部主机。
显然,这种方法对于节省公网IP来说并没有太大的意义。主要用于满足一些特殊的组网需求。例如,用户希望隐藏内部主机的真实IP,或者实现两个IP地址重叠的网络之间的通信。
2.动态NAT
它能够将未注册的IP 地址映射到已注册IP 地址池中的地址。与静态NAT 不同,您不需要静态配置路由器将每个内部地址映射到外部地址,但必须有足够的公共Internet IP 地址,以便所有连接到Internet 的主机都可以同时发送和接收数据包。
3.NAPT
通过使用NAPT,数以千计的用户可以仅使用一个公共IP 地址连接到Internet。其核心是利用端口号实现公网和私网之间的转换。
此时,NAT设备需要根据传输层信息或其他上层协议来区分不同的会话,并且可能需要转换上层协议的标识,例如TCP或UDP端口号。
这样NAT网关就可以将不同的内部连接访问映射到同一公网IP的不同传输层端口。这样就可以实现公网IP的复用和解复用。
这种方法也称为端口转换PAT、NAPT或IP伪装,但更多时候直接称为NAT,因为它是最典型的应用模式。
例如:
客户端172.18.250.6与百度服务器202.108.22.5通信。 172.18.250.6发送数据时,首先转换为219.155.6.240:1723(1024的任意随机端口);
然后用这个身份向百度服务器发送数据;然后百度服务器响应数据并将其发送到219.155.6.240:1723。 NAT网关查看自己的关联表,发现这是自己私网的172.18.250.6的数据包;然后将这个Data发送给客户端。
也就是说,我们利用端口号的唯一性来实现将公网IP转换为私网IP的步骤。 NAPT可以使用传输层端口号来识别主机,因此理论上最多大约65,000台主机可以共享一个公共IP地址。
三、NAT技术的优缺点
一、优点
保存合法的公共IP地址。当地址重叠时提供解决方案。
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/103815.html
用户评论
你的眸中有星辰
终于看到一个细致地讲解 NAT 的文章!我一直对这个概念感到困惑,这篇博文解释的很清楚,尤其是部分对实际应用场景的解析,让我对 NAT 现在在网络安全方面的作用有了更深的理解。
有8位网友表示赞同!
莫失莫忘
写得真不错啊,以前只知道 NAT 用于解决 IP 地址的问题,但没想到它还有这么多细节!我现在才知道,原来 NAT 不仅仅是简单的映射,还有那么多复杂的机制和优缺点。
有8位网友表示赞同!
百合的盛世恋
这篇博文太棒了!虽然我学计算机多年,对 NAT 还是有很多地方没深入了解,这次阅读后收获满满,受益良多!希望以后能写更多关于网络协议的解析文章!
有6位网友表示赞同!
病态的妖孽
说白了,就是让多个电脑共用一个 IP 地址呗。以前我也听说过这个概念,但看完这篇文章我感觉真的学到了很多。原来 NAT 还有这么多的机制和应用场景啊!
有13位网友表示赞同!
←极§速
这篇博文讲的太复杂了,我一脸蒙圈……我学习计算机只是为了写代码,对于这些深度协议不太感兴趣吧?
有11位网友表示赞同!
你tm的滚
说的太难懂了吧,我作为一个刚开始接触计算机的学生,完全听不懂… 能简化一点解释吗?
有20位网友表示赞同!
素婉纤尘
我认为这篇文章的重点有点偏移了,篇幅偏长,对 NAT 的核心功能描述不够详细,很多辅助内容占据了过多篇幅,希望能更加聚焦要点。
有17位网友表示赞同!
把孤独喂饱
这种讲解方式很有逻辑感觉,一步步深入介绍NAT运作机制,很适合用来学习和复习该协议。我以前自己尝试研究过NAT,这篇博文解开了很多困惑!
有19位网友表示赞同!
浮殇年华
虽然 NAT 的原理其实很简单,但是这个博文解释的非常清楚,特别是把一些复杂的场景都举例说明,让我对NAT的应用有了更深刻的理解。
有9位网友表示赞同!
入骨相思
我倒是觉得这篇博文不太够详细啊,很多高级功能比如动态IP分配和服务类型映射都没有提及,对想深入了解 NAT 的人来说可能有点逊色。
有14位网友表示赞同!
裸睡の鱼
这篇文章真是太棒了!终于有人把NAT讲解的这么通俗易懂了,感觉自己一下子把知识点都掌握了!
有8位网友表示赞同!
疯人疯语疯人愿
我之前一直搞不太明白NAT的作用,看了这篇博文后恍然大悟!原来它是这样运作的啊!感谢作者!
有10位网友表示赞同!
余温散尽ぺ
我觉得这篇文章对刚学习网络技术的人来说很实用,可以快速上手了解NAT的基本概念和应用场景。可惜的是没有涉及到一些更高级的主题,比如 NAT 的安全性问题。
有6位网友表示赞同!
北染陌人
我之前在网上看了一些关于NAT的文章,但是很多内容太过于复杂化,让人很难理解。这篇博文写的非常清晰易懂,很容易让我接受。
有5位网友表示赞同!
蹂躏少女
如果能把文章中的一些概念用图表或者图片来辅助说明,相信会更加直观易懂!
有20位网友表示赞同!
鹿先森,教魔方
这篇文章对我学习网络协议很有帮助!我想了解更多关于NAT的应用案例,比如在游戏服务器和VoIP系统中的使用场景。希望能看到后续更深入的文章介绍。
有17位网友表示赞同!
颜洛殇
写的真棒,让我对NAT有了更多的理解,以前只是知道它可以解决IP地址问题,现在才知道它是如何工作的!
有9位网友表示赞同!