私有ip(介绍,地址范围),私网和公网的关系(访问外部网站的过程,NAT技术)
目录
私有ip
引入
介绍
地址范围
两种网络的关系
图示
访问外部网络
问题
NAT技术
二者关系
过程
数据加密的必要性
国内墙的原理
私有ip
引入
为什么需要私有ip?
- 本质上是因为ip地址数量不够
所以,需要切换模式 -- 公网+私网=互联网
- 以运营商路由器为界限,划分出公网和私网
- 私有IP地址空间专门用于局域网内的通信,不在全球唯一注册,因此不同的局域网可以使用相同的私有IP地址,而不会发生冲突
介绍
虽然ip地址有2^32个,但不是所有的ip地址都在搭建公网,也有部分是用来组织私网的
- 私有IP地址是在局域网(LAN)内使用的IP地址,不在公共互联网中路由
- 公又/私有ip的划分是根据RFC 1918标准定义的,用于减少对全球唯一IP地址(也就是公网ip)的需求,并允许组织在不影响全球IP地址空间的情况下创建自己的私有网络
地址范围
其中,RFC 1918规定,用于组建局域网的私有ip满足以下:
它固定了不同长度的前半部分,可以让我们自主选择:
- 子网覆盖面积大,就选择前缀短的,可标识的主机数量更多
当我们重新回看ifconfig命令查出来的网络信息,会发现,云服务器上显示的ip地址,其实是华为云/腾讯云的内网ip(172.18.属于172.16~172.31之间):
两种网络的关系
图示
左边属于我们自身接触到的网络,私有网络
右上方是公网
访问外部网络
问题
如果我们想要访问的目的ip(比如baidu等网站)不在当前局域网内
- 路由器会转发到上一层,直到到达目标主机
- 到达并处理完数据,准备发回时,目的ip变成了私有ip(原先的源ip,也就是我们设备的ip地址)
但私有ip不能出现在公网中,只能在局域网内部使用,并且不同的局域网中,私有ip可能是一样的
- 所以报文没法传回来
如何解决?
NAT技术
(NAT, Network Address Translation)
路由器有多个ip地址
- LAN口ip地址(Local Area Network, LAN),用于内部使用的私有ip,是子网中的一部分,也可以被视为子集的一部分
- WAN口ip地址(Wide Area Network, WAN) -- 可供外部使用的公有ip,属于更大的广域网,连接着多个不同的局域网,作为路由器在互联网或外部网络中的标识。可以理解为路由器的WAN口IP地址是广域网的一部分,也就是所谓的“父集”
二者关系
过程
- 路由器会使用NAT技术,在数据包从局域网进入广域网时,将[源ip地址和源端口号]替换为[路由器的WAN口IP地址和一个临时的端口号]然后再进行转发
- 这样,从公网返回时,目的ip就变成了[设备所在局域网中路由器的WAN口地址]
- 经过一路转发,路由器收到后,会根据动态生成的NAT表中的映射关系找到原始请求的私有IP地址和端口号,这样就能成功转发到特定设备上了
数据加密的必要性
既然可以修改源ip字段
- 本质上是在修改ip报头,也就是我们发出去的报文
如果我们数据没有做加密,运营商也可以对我们的数据做修改
- 这也说明了在应用层做数据加密的必要性
国内墙的原理
原理就是,在运营商那里,会识别每一个请求报文的目的ip
- 如果是请求外国的网站,就直接丢弃,自然也就没法上外网了