当前位置: 首页 > article >正文

私有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

  • 如果是请求外国的网站,就直接丢弃,自然也就没法上外网了


http://www.kler.cn/news/284600.html

相关文章:

  • 三种评估金融风险的方法的具体Python实现:Stress Testing、Scenario Analysis和Sensitivity Analysis
  • 乐凡三防:工业界的硬核产品——重新定义三防平板的极限
  • Scrcpy手机投屏投屏到电脑上(windows/mac)
  • Python实现t-分布随机邻域嵌入(t-SNE)降维算法
  • 手机FM LNA方案设计
  • 【IEEE独立出版 | 往届快至会后2个月检索】2024年第四届电子信息工程与计算机科学国际会议(EIECS 2024,9月27-29)
  • vue-echarts :知识图谱可视化,动态更新 动态赋值series,更新options
  • GESP C++ 四级 编程题 洛谷习题集
  • 【JavaScript】JavaScript模块化开发:ES6模块与CommonJs的对比与应用
  • macos 10.15 Catalina 可用docker最新版本 Docker Desktop 4.15.0 (93002) 下载地址与安装方法
  • 5W爆了,建议紧盯这个方向!!
  • OWOD环境配置和训练细节
  • 「OC」初识MVC —— 简单学习UITableView的解耦
  • opencv之阈值处理
  • 网优学习干货:2.6G仿真操作(2)
  • 信息安全--(四)网络安全体系与安全模型(二)
  • Linux系统安装nginx
  • 如何申请 Midjourney API ,看这篇文章就够了
  • Web自动化测试实战--博客系统
  • css中 display block属性的用法
  • docker里装mysql
  • 使用控制台与键盘进行输入输出
  • 服务器数据恢复—光纤共享存储互斥设置不当导致数据丢失的数据恢复案例
  • NC 二分查找-II
  • SQL 中 LIKE 和 REGEXP 的相同点与不同点解析
  • 关于前端布局的基础知识
  • AI绘画【Stable Diffusion】抽卡必备!时间管理大师Agent Scheduler插件,一键设置任务,让你的休息时间充分利用起来!
  • 如何判断请求是否为跨域请求?——详细教程
  • Godot vscode c# 调试方法
  • Linux——用户和权限