NAT地址转换访问web时内网和外网的变化如何理解

前言
 我们现在常使用的IP地址是IPv4地址,由四组0-255的十进制数字组成,中间以小数点分隔。Internet上的每一台主机或者路由器都至少有一个IP地址。IP地址(IPv4地址,下文IP地址默认指IPv4)的长度是32位,总数为2的32次方,大约43亿个。

  43亿这个数字是远远不够地球上70亿人的上网设备来分配的。为了快速解决IP地址匮乏的这个问题,NAT技术诞生了。


------------------------------------------------------------------

  NAT(Network Address Translation),中文名唤作网络地址转换,诞生于IP地址匮乏的时代。

  NAT的基本思想是ISP(Internet服务提供商)为每个家庭或者公司分配一个IP地址,这个IP地址用作Internet流量的传输,也就是大家常说的外网IP地址或者公网IP地址。在客户网络的内部,每台计算机有唯一一个IP地址,即内网IP地址,这些地址主要用于路由内部流量。当一个数据包离开客户网络发送至其他ISP时,需要进行地址转换,把唯一的内网IP地址转换成外网的IP地址。

  这种地址转化使用IP地址的三个范围,这些地址已被声明私有化,任何内网中的设备可以任意使用这些地址,但是在这三个范围内的IP地址不允许出现在Internet(外网)上,这三个保留的地址范围是:


    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

 

  他们分别可以容纳16777216、1048576、65536台主机。一般家里用无线路由器,就用到了网络地址转换技术,我们连上wifi后分配的IP地址一般是以172或192为开头。学校或者大企业里面的网络可能会用到10开头的地址范围。

  NAT将内网外网划分好之后,是如何使内网的设备访问外网的呢?

  如下图,当计算机A在内网(假设IP为10.0.0.1)想去访问一个Internet上的网站S(假设IP地址为54.223.189.245)时,A的数据包需要先经过一个NAT盒子(NAT box),这个盒子先将A的IP源地址转换成外网的真实IP地址(假设IP为121.0.0.2),然后将转换后的数据包发送至Internet。

  于是问题来了,当网站S收到这个数据包后,会处理请求,并发送响应的数据包,然而这个数据包的目标地址是121.0.0.2(外网IP),数据包如何返回内网中的A呢?

  

  这里要先介绍一下源端口(Source Port)和目标端口(Destination Port)的概念。当一个进程希望与另一个进程建立TCP连接时,它把自己绑定到一个本机尚未被占用的TCP端口上,这个端口称为源端口,该TCP连接中所有入境的数据包都要被发送至这个端口。同时进程还需要提供一个目标端口,指明数据包到达远程主机后送至哪一个端口处理。每一个出境的TCP数据包都包括一个源端口和目标端口。

  举例来说,如下图,网站服务器S(IP地址为54.223.189.245)的HTTP服务运行在80端口上,公网上的计算机D(IP地址为121.141.56.23)想去访问网站S,于是把自己绑定到本机的33121端口上,并发送请求的数据包,这个数据包中就包含了计算机D的源端口33121和目标端口80。网站S收到请求后,发送响应的数据包,这个数据包中包含了服务器S的源端口80和目标端口3312。


  上面的例子是外网中的一台计算机访问一个网站。在内网中计算机发送的数据包同样存在着源端口和目标端口。NAT盒子做的事情就是对出入境数据包的端口进行修改。

 

  回到最初举的例子,假设内网计算机A(IP地址为10.0.0.1)发送的请求包的源端口是45421,目标端口是80,请求访问网站服务器S(IP地址为54.223.189.245)。

  当这个出境数据包经过NAT盒子时,其源地址被修改成公网的真实IP(121.0.0.2),源端口被修改一个索引值(假设为50002),这个索引值指向NAT盒子的地址转化表中的某一项,这一表项保存了计算机A的内网源地址和源端口。最后NAT盒子将重新生成的数据包发送出去。

  当网站S响应的入境数据包到达NAT盒子时,数据包经过处理,目的地址由公网IP(121.0.0.2)还原为计算机A的内网IP(10.0.0.1),目标端口由索引值(50002)还原为计算机A的源端口(45421)。还原后数据包可以正常的在内网路由。

  这个过程基本如下图所示。

 

  如此一来,NAT解决了数据包在内网公网之间的地址和端口的转换问题,暂时缓解了IP地址的短缺,但是它却有着不少的缺点。

  NAT违背了IP的结构模型(每个IP地址唯一标识世界上的一台机器),采用NAT后可能有无数台主机使用10.0.0.1这个IP地址。NAT还打破了Internet的端-端的连接模型。内网中的主机可以通过NAT与一台公网上的服务建立连接,但是反过来却不行,公网上的主机无法与某一内网中的主机建立连接。举个简单的例子来说,你在内网某台计算机上搭建了一个网站,在外网是无法访问的。而且使用NAT后,Internet变得如电路交换网络一样脆弱。NAT盒子为每个经过它的连接维护必要的信息(即映射关系),若NAT盒子崩溃,并且所有映射表被摧毁,所有TCP连接将被摧毁。

  目前的IP地址匮乏,归根结底是IPv4设计者的锅,NAT只是权宜之策。既然NAT这么复杂,有人要问了,在IPv6普及后,NAT是否就会被取缔了呢?答案是不会的。因为NAT已被广泛使用,尤其是家庭和小型企业的网络,即使IPv6普及了,NAT在短时间内也很难被取代。
————————————————
版权声明:本文为CSDN博主「TaQini852」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/smalosnail/article/details/53018236

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
此扩展由10.0.0.0.1联盟创建 10.0.0.1是IP地址的专有类。 该地址用于专用网络。 在所有情况下,都使用10.0.0.1 IP地址登录服务器并连接到服务器。 该地址由网络硬件发布给客户端,作为访问各种网关的默认地址。 这是属于IPV4的特殊IP地址类别,已被大型商业电信品牌使用。 您可能已经看到其他IP地址,例如192.168.1.1和192.168.0.1,它们都作为默认网关登录名服务于不同的路由器。 您可以找到最好的应用程序,当您刚购买了新路由器并想登录并更改一些设置。 网关登录地址可以做很多事情。 诸如固定路由器地址,设置家长控制支持之类的事情。 如果您使用的是10.0.0.1管理员登录名的设备将您带到默认网关登录名,那么请记住,如果其余设备也使用相同的路由器,那么即使对于它们,默认网关登录名也应为10.0.0.0.1,在这里,您需要确保1也可以用其他任何数字替换。 我们可以举一个非常简单的例子。 如果您在家中,并且家里有多个设备,则可以将它们视为备用设备。 10.0.0.x可以被认为是第一个设备,然后您看到的X可以是任何取决于设备的东西。 之所以称为网关地址,是因为这是您登录的方式,并且因为它为用户访问登录页面铺平了道路。 这是A类地址。 10.0.0.1的子网掩码是255.0.0.0。如何找出路由器是否使用10.0.0.1的登录地址? 当涉及到Windows:1.在搜索栏中查找并输入“ CMD”。2.在看到命令提示符选项单击结果。3.在看到命令提示符窗口,首先输入“ ipconfig // all”,然后按下回车键4。您可以通过检查默认网关部分5查找路由器的本地IP地址。现在您可以清楚地看到默认网关的IP地址。对于MAC OS:1.首先单击Apple图标2.请参阅(系统首选项),然后继续。3.单击“ Internet&wireless”(互联网和无线)下方的“ Network”(网络)图标。 4.一旦看到,您将注意到路由器的IP地址,子网掩码和MAC计算机的IP地址将显示在网络窗口中。 如何设置路由器? 当我们得到一个新的路由器。 我们必须借助平台或媒介来控制一切,从而使我们能够控制很多事情,例如路由器设置,可以使用IP地址来调整配置。 您要做的基本上是打开您的Web浏览器,然后使用该地址滚动许多chrome或safari。 让我们看看使用10.0.0.0.1的目的。 1.设置代理服务器设置2.设置DNS(也称为域名服务器)3.设置DHCP客户端:动态主机配置协议4.用户可以访问以更改无线功能设置5.用户甚至可以访问MAC地址步骤登录到10.0.0.1,以便访问并查看路由器设置,请执行以下步骤:打开任何Web浏览器,然后输入https://10.0.0.1,即使您输入的是IP地址,也请确保输入正确的IP地址。错误的关键字(如10.0.0.0.1),可能会给您带来麻烦。 输入正确的地址后,按Enter键,您将受到网关登录的欢迎。 您只需浏览各种功能和设置,即可访问控制并根据需要进行更改。 现在输入默认的10.0.0.1用户名和密码,然后按登录按钮。 注意:确保在输入IP地址10.0.0.0.1管理员用户名和密码更改和设置DNS。 我的路由器的10.0.0.1管理工具是什么? 任何路由的管理工具都是使用适合我们互联网使用情况的设置来配置路由器的最佳方法。 遍布全球的路由器数量如此之多,黑客们总是在寻找机会闯入您的路由器,这使安全性成为当务之急。 无论您多么努力,都无法确保路由器的安全。 对于路由器的默认网关工具,请打开Web浏览器,然后在地址栏中输入http://10.0.0.1,这是网关IP地址。 确保输入正确的零和一,因为输入10.0.0.0.1可能会将您带到其他地方。 您已经自定义了几个设置:SSID(服务集标识符):这是您的wifi网络的名称Wifi密码:默认情况下进行更改或设置一个新的 支持语言:English

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值