NAT技术(公网、私网IP)

NAT技术(公网、私网IP)

NAT名字很准确,网络地址转换,就是替换IP报文头部的地址信息。NAT通常部署在一个组织的网络出口位置,通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力。那么我们首先肯定要知道 什么是公网IP和私网IP。

公网与私网IP

  • IP可以分为Public IP 和 Private IP,出现这种规划的原因在于IPv4所能表示的IP太少而电脑太多以至于不够用,然而只有Public IP才能直接连接上网络;
  • 对于那些公司,学校,政府机构等场所,就可以集中使用私有的IP进行管理,而大家可以共用一个IP去连接上公网,这样,就省下了许多宝贵的Public IP;
  • 每次使用ipconfig查到的地址,要么就是172.开头的,要么就是192.开头的,一般都是很多人共享一个IP,用ipconfig查询到的其实只是局域网IP;
    • 172.开头的意味着我们是B类型的局域网;
    • 以192.开头的意味着你是c类的局域网。

公网IP

经由 internet 所统一规划的 IP,有这种 IP 才可以连上 Internet ;

私网IP

  • 不能直接连上 Internet 的 IP ,主要用于局域网络内的主机联机规划;
  • 用本地ipconfig指令查到的就是局域网IP,也就是私网IP;
  • 下面表格中的私有地址范围是预留使用的,所以并不能直接作为Internet 上面的连接之用:
类别 IP范围 私有地址范围 保留地址
A 1.0.0.0~126.255.255.255 10.0.0.0~10.255.255.255 127.0.0.0~127.255.255.255
B 128.0.0.0~191.255.255.255 172.16.0.0~172.31.255.255 169.254.0.0~169.254.255.255
C 192.0.0.0~223.255.255.255 192.168.0.0~192.168.255.255

上网流程

  • 移动公司分给我们的公网IP是117.158.134.217,这是我们这一栋楼能连上网的公网IP;
  • 那么如何让这一个IP使学校里面的所有人都能使用呢,我们开始重新划分局域网。
  • 上文中,我们知B类私有地址范围是:172.16.0.0~172.31.255.255,我们学校采取的就是这种划分方法,所以我的私网IP地址就是172.18.251.129;
  • 那么怎么上网的呢:
    • 我们通过私网IP然后把我们的需求和要发送的数据发给路由器;
    • 路由器对接网络,再把数据发送给Internet;
    • 然后internet发送数据到我们学校的路由;
    • 然后路由在通过我的私网IP发送给我。

NAT

上面提到了我们上网都是先通过私网IP和公网IP以及之间的路由器来实现的,那么这里面有一项不得不提的技术就是NAT(网络地址转换)——帮助我们实现从私网IP到公网IP之间的联系。

工作原理

首先要知道,我们直接接触到的私网IP是无法直接访问外网的,所以需要有一个转换技术来帮助我们从私网IP切换到公网IP。

  • 对于有Internet访问需求而内部又使用私有地址的网络,就要在组织的出口位置部署NAT网关;
  • 在报文离开私网进入Internet时,将源IP替换为公网地址,通常是出口设备的接口地址;
  • 一个对外的访问请求在到达目标以后,表现为由本组织出口设备发起,因此被请求的服务端可将响应由Internet发回出口网关;
  • 出口网关再将目的地址替换为私网的源主机地址,发回内部;

这样一次由私网主机向公网服务端的请求和响应就在通信两端均无感知的情况下完成了。依据这种模型,数量庞大的内网主机就不再需要公有IP地址了。

  • 网络被分为私网和公网两个部分,NAT网关设置在私网到公网的路由出口位置,双向流量必须都要经过NAT网关;
  • 网络访问只能先由私网侧发起,公网无法主动访问私网主机;
  • NAT网关在两个访问方向上完成两次地址的转换或翻译,出方向做源信息替换,入方向做目的信息替换;
  • NAT网关的存在对通信双方是保持透明的;
  • NAT网关为了实现双向翻译的功能,需要维护一张关联表,把会话的信息保存下来。

静态NAT

如果一个内部主机唯一占用一个公网IP,这种方式被称为一对一模型。此种方式下,转换上层协议就是不必要的,因为一个公网IP就能唯一对应一个内部主机。显然,这种方式对节约公网IP没有太大意义,主要是为了实现一些特殊的组网需求。比如用户希望隐藏内部主机的真实IP,或者实现两个IP地址重叠网络的通信。

动态NAT

它能够将未注册的IP地址映射到注册IP地址池中的一个地址,一对多。不像使用静态NAT那样,你无需静态地配置路由器,使其将每个内部地址映射到一个外部地址,但必须有足够的公有因特网IP地址,让连接到因特网的主机都能够同时发送和接收分组。

NAT重载(如何实现从公网IP->私网IP)

它也被称为端口地址特换(PAT),其核心之处就在于利用端口号实现公网和私网的转换

举个例子:

  • 客户端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的数据包,然后把这个数据发送给客户端

也就是说,我们利用端口号的唯一性实现了公网IP转换为私网IP的这一步。PAT(NAT重载)能够使用传输层端口号来标识主机,因此,从理论上说,最多可让大约65000台主机共用一个公有IP地址。

参考

https://blog.csdn.net/gui951753/article/details/79593307

https://blog.csdn.net/gui951753/article/details/79210535

posted @ 2021-05-07 10:38  TRY0929  阅读(3126)  评论(0编辑  收藏  举报