网络基础 - 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 以后再被转发,在 NAPT 路由器的内部,有一张自动生成的用来转换地址的表,当 10.0.0.10 向 163.221.120.9 发送第一个包时生成对应表项,并按照表中的映射关系进行处理

三、NAPT(Network Address Ports Translator)

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

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

四、NAPT-PT

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

五、NAT 的潜在问题

由于 NAPT 依赖于自己的转换表,因此会有如下几点限制:

相关推荐
4A广告文案4 小时前
名创优品在成都开了家“乐园”,顺便造了个新IP
网络·网络协议·tcp/ip
Fnetlink15 小时前
Fnet 云网安 260904
网络·人工智能·安全·web安全·网络安全
天远数科5 小时前
风险治理实战:基于天远车信盟出险构建自动化理赔核保流水线
java·网络·人工智能·自动化
志栋智能6 小时前
安全超自动化如何支持大规模安全运营?
网络·安全·自动化
星恒讯工业路由器6 小时前
农村宽带覆盖难?无线专网方案正在改写“最后一公里”规则
网络·物联网·网桥·无线网桥·农村宽带覆盖·无线专网·户外网络
tang777897 小时前
反爬虫场景下代理IP池的动态扩容与失效IP自动清理方案实现
linux·服务器·网络·爬虫代理·住宅代理ip
yuewell_ai7 小时前
机器人调度通讯怎么设计才不会被网络抖动瘫痪
网络·机器人·php
TechWayfarer7 小时前
Cloudflare 9·15新政倒计时:用IP风险画像识别AI爬虫,防止误伤Googlebot
网络·人工智能·爬虫·python·tcp/ip·网络安全
嵌入式学习菌7 小时前
ESP32 智能插座调试软件功能测试
网络·物联网
醇氧7 小时前
OSI 七层网络模型总结
网络