网络基础 - 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 依赖于自己的转换表,因此会有如下几点限制:
原文地址:https://blog.csdn.net/chirrupy_hamal/article/details/143764171
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!