【Linux 网络】NAT技术——缓解IPv4地址不足

NAT技术

  • [NAT 技术背景](#NAT 技术背景)
  • [NAT IP转换过程](#NAT IP转换过程)
  • NAPT
  • [NAT 技术的缺陷](#NAT 技术的缺陷)

NAT(Network Address Translation,网络地址转换)技术,是解决IP地址不足的主要手段,并且能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

NAT 技术背景

在IPv4协议中,IP地址数量不足是一个大问题,而NAT技术就是当前解决IP地址不够用的主要手段,是路由器的一个重要功能。

  • 在进行对外通信时,NAT能够将私有IP经过一系列替换操作最终转为全局IP,也就是说,NAT是一种将私有IP和全局IP相互转化的技术方法。
  • 装有NAT软件的路由器叫做NAT路由器,所有使用私有IP的主机在和外界通信时,都要在NAT路由器上将其私有IP转换成全局IP。
  • 很多学校、家庭、公司内部每个终端设置的IP都是私有IP,而只在路由器或必要的服务器上设置全局IP。
  • 全局IP要求唯一,但是私有IP不需要,在不同的局域网中出现相同的私有IP是完全不影响的。

NAT IP转换过程

假设某个局域网当中有三个客户端,在公网中有一台服务器,以客户端A访问服务器为例,让我们看一下IP地址的变换过程。

注意: 这里仅考虑的是只有一台客户端给服务器发报文的情况。

数据包从局域网到公网过程

  • 首先 数据包当中的源IP地址就是主机A的IP地址,目标地址为服务器的地址。
  • 然后数据包经过NAT路由器器时,其中的源IP地址会被转换。也就是由LAN口IP地址转换为WAN口IP地址,此时源IP地址和目的IP地址都是公网的IP地址。
  • 最后该数据包可能经过各种路由转发,最终到达服务器主机

Lan口的IP地址是你本地的(局域网)的IP地址,一般由路由器自动分配

wan口的 IP 地址是你的服务运营商在你联通Internet后,分配给你的IP地址
数据包从公网到局域网的过程

服务器向主机A进行响应的过程也要进行相应的IP地址转换,不过这次转换的是目的IP地址。

  • 首先,数据包当中包含了源IP地址和目的IP地址,目的IP地址是WAN口IP地址
  • 然后,可能经过互联网中的各种路由转发,到达主机A所在局域网的NAT路由器时,目的IP地址被转换,由WAN口IP转换成了LAN口IP,也就是主机A的私有IP地址。
  • 最后,路由器就会将该数据包转发给局域网当中的主机A

NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;

NAT路由器收到外部的数据时, 又会把目标IP从202.244.174.37替换回10.0.0.10;

在NAT路由器内部, 有一张自动生成的, 用于地址转换的表;

当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

NAPT

NAPT(Network Address Port Translation),即网络地址端口转换,可以将多个内部地址映射为一个合法公网地址。

上面的情况都是局域网内只有一台主机访问外网的服务器,如果局域网内, 有多个主机都访问同一个外网服务器, 那么对于服务器返回的数据中, 目的IP都是相同的. 那么NAT路由器如何判定将这个数据包转发给哪个局域网的主机?

这时候NAPT来解决这个问题了. 使用IP+port来建立这个关联关系

比如局域网中主机A和主机B都在访问同一个服务器,并且它们访问服务器时采用的端口号都是1025.

  • 假设主机A发送的数据包先到达路由器,此时路由器将数据包的源IP地址转化成WAN口IP地址,由于端口号1025没有被使用,所以在转换表中,维护了源IP地址和端口号所对应的映射关系。
  • 当主机B发送的数据包也到达路由器后,路由器将数据包的源IP地址转化成WAN口IP地址,由于端口号1025被主机A使用了,所以端口号使用1026,转换表中,维护了源IP地址和端口号所对应的映射关系。

这张转换表每一个元素从左到右,从右到左的映射关系都是唯一的。

  • 当服务器接收到主机A报文和主机B的报文时,虽然源IP地址都是一样的,但是转换表中的映射的端口号不一样,服务器就能区分哪一个报文是主机A发的,哪一个是主机B发的。
  • 当服务器要给客户端进行响应时,虽然再经过路由器转换后,IP地址都是一样的,但是路由器可以端口号的不同,来决定这次响应该转发给谁。

这种关联关系也是由NAT路由器自动维护的. 例如在TCP的情况下, 建立连接时, 就会生成这个表项; 在断开连接后, 就会删除这个表项

NAT 技术的缺陷

由于NAT依赖这个转换表, 所以有诸多限制:

  • 无法从NAT外部向内部服务器建立连接(NAT穿透技术可以做到);

  • 装换表的生成和销毁都需要额外开销;

  • 通信过程中一旦NAT设备异常, 即使存在热备, 所有的TCP连接也都会断开;

相关推荐
阳光普照世界和平4 小时前
网络安全与信息安全防护措施
网络·安全
学不完的4 小时前
ospf综合实验
网络·智能路由器
-曾牛4 小时前
Git完全指南:从入门到精通版本控制 ------- Git仓库创建 (5)
大数据·网络·git·学习·elasticsearch·个人开发
vvilkim4 小时前
深入解析TCP Keep-Alive机制:原理、作用与最佳实践
网络·网络协议·tcp/ip
清风~徐~来5 小时前
【Linux】环境变量
linux·运维·chrome
维C泡泡5 小时前
网络编程 套接字
网络
耕耘虫6 小时前
解决 .Net 6.0 项目发布到IIS报错:HTTP Error 500.30
网络·网络协议·http·iis·net·静态文件·.net 6.0
鸡鸭扣7 小时前
系统设计面试总结:高性能相关:CDN(内容分发网络)、什么是静态资源、负载均衡(Nginx)、canal、主从复制
网络·面试·负载均衡
christine-rr7 小时前
【25软考网工笔记】第二章 数据通信基础(2) 信道延迟计算
网络·笔记·网络工程师·软考
科技小E7 小时前
5G时代,视频分析设备平台EasyCVR实现通信基站远程安全便捷管控
大数据·网络·人工智能·音视频·安防监控