网络基础 - NAT 篇

一、全局 IP 地址(公网 IP 地址)和私有 IP 地址

RFC 1918 规定了用于组建局域网的私有 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 地址都属于私有 IP 地址,而在此之外的 IP 地址称为全局 IP 地址

全局 IP 地址要在整个互联网范围内保持唯一,但私有 IP 地址不需要,只要在同一个域里保证唯一即可,在不同的域里即便出现相同的私有 IP 地址也不会影响使用

  • 一个路由器可以配置两个 IP 地址,一个是 WAN 口 IP,一个是 LAN 口 IP(子网 IP)
  • 路由器 LAN 口连接的,都从属于当前这个路由器的子网中
  • 子网内的 IP 地址不能重复,但是子网间的 IP 地址无所谓重复与否
  • 每一个家用路由器,其实又作为运营商路由器的子网中的一个节点,这样的运营商路由器可能会有很多级,而最外层的运营商路由器的 WAN 口 IP 是一个公网 IP
  • 子网内的主机需要和外网进行通信时,路由器将 IP 首部中的 IP 地址替换成 WAN 口 IP,这样逐级替换,最终将数据包中的 IP 地址替换成一个公网 IP,这种技术称为 NAT
  • 如果我们希望自己实现的服务器程序能够在互联网上被访问到,就需要把程序部署在一台具有公网 IP 的服务器上,这样的服务器可以在阿里云、腾讯云等上进行购买

二、NAT(Network Address Translator)

NAT 是用于在本地网络中使用私有 IP 地址,在连接互联网时转而使用全局 IP 地址,也就是一种将私有 IP 和全局 IP 相互转换的技术方法

反之,当包从源地址 163.221.120.9 发过来时,目标地址 202.244.174.37 先被转换成私有 IP 地址 10.0.0.10 以后再被转发,在 NA[P]T 路由器的内部,有一张自动生成的用来转换地址的表,当 10.0.0.10 向 163.221.120.9 发送第一个包时生成对应表项,并按照表中的映射关系进行处理

三、NAPT(Network Address Ports Translator)

如果一个局域网内,有多台主机都访问同一个公网服务器,那么对于服务器返回的数据中,目标 IP 地址都是相同的,NAT 路由器该如何判定将这个数据包转发给局域网内的哪台主机?除转换 IP 地址外,还出现了可以转换 TCP、UDP 端口号的 NAPT 技术

这种关联关系也是由 NAPT 路由器自动维护的,例如,在 TCP 的情况下,建立 TCP 连接首次握手时的 SYN 包一经发出,就会生成对应表项,而后又随着收到关闭连接时发出 FIN 包的确认应答从表中被删除

四、NA[P]T-PT

NA[P]T-PT 是将 IPv6 的首部与 IPv4 的首部相互转换的一种技术,有了这种技术,那些只有 IPv6 地址的主机也就能够与 IPv4 地址的其他主机进行通信了

五、NAT 的潜在问题

由于 NA[P]T 依赖于自己的转换表,因此会有如下几点限制:

相关推荐
清 晨6 小时前
剖析 Web3 与传统网络模型的安全框架
网络·安全·web3·facebook·tiktok·instagram·clonbrowser
国科安芯6 小时前
抗辐照芯片在低轨卫星星座CAN总线通讯及供电系统的应用探讨
运维·网络·人工智能·单片机·自动化
gx23487 小时前
HCLP--MGER综合实验
运维·服务器·网络
VB5947 小时前
[N1盒子] 斐讯盒子N1 T1通用刷机包(可救砖)
网络
-XWB-7 小时前
【安全漏洞】防范未然:如何有效关闭不必要的HTTP请求方法,保护你的Web应用
服务器·网络·http
画中鸦8 小时前
VRRP的概念及应用场景
网络
MQ_SOFTWARE8 小时前
文件权限标记机制在知识安全共享中的应用实践
大数据·网络
一个网络学徒8 小时前
MGRE综合实验
运维·服务器·网络
白鹭9 小时前
基于LNMP架构的分布式个人博客搭建
linux·运维·服务器·网络·分布式·apache
sx2436949 小时前
day33:零基础学嵌入式之网络——TCP并发服务器
网络·网络协议·http