网络基础 - 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 依赖于自己的转换表,因此会有如下几点限制:

相关推荐
DianSan_ERP7 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅7 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
2501_946205527 天前
晶圆机器人双臂怎么选型?适配2-12寸晶圆的末端效应器有哪些?
服务器·网络·机器人
linux kernel7 天前
第七部分:高级IO
服务器·网络
数字护盾(和中)7 天前
BAS+ATT&CK:企业主动防御的黄金组合
服务器·网络·数据库
~远在太平洋~7 天前
Debian系统如何删除多余的kernel
linux·网络·debian
unfeeling_7 天前
Keepalived实验
linux·服务器·网络
坐吃山猪7 天前
OpenClaw04_Gateway常见问题
网络·gateway·openclaw
上海云盾商务经理杨杨7 天前
2025年重大网络安全事件回顾与趋势分析
网络·安全·web安全
kylezhao20197 天前
C# 的开闭原则(OCP)在工控上位机开发中的具体应用
网络·c#·开闭原则