网络层9——虚拟专用网VPN和网络地址转换NAT

目录

 一、为什么有虚拟专用网?

二、如何理解“虚拟专用网”?

三、IP隧道技术实现虚拟专用网

四、网络地址变换


 一、为什么有虚拟专用网?

第一,IPv4只有32位,最多有40亿个全球唯一的IP地址
数量不够,无法保证每一个用户都拥有一个全球唯一的IP地址
而没有IP地址,就意味着无法接入互联网
第二,很多情况下,一台主机主要和本机构内的其他主机进行通信
基于此,主机并没有必须连接互联网的必要

因此,仅在一个内部进行通信的主机,
可以在机构内部进行分配IP地址,该IP地址仅在该机构内有效
于是,一个机构内的主机就不需要申请全球唯一的IP地址
就可以让本机构内的所有主机进行互相通信

可是,有时机构内部的某些主机需要和连接互联网
此时内部分配的IP地址可能会和全球唯一的IP地址重复
引起歧义
如何解决这个问题?
使用专用地址

什么是专用地址?
专用地址只用于本地地址,而不能作为全球地址
对所有的路由器来说,接收到目的地址为网络为专用地址的任何数据一律丢弃
以下是三个专用地址块:
(只要目的地址属于这三个地址块范围内,就是专用地址)

于是,采用上述专用IP地址的互连网就叫做专用互联网 / 本地互联网
世界上可能会存在很多重复的专用IP地址
但是由于专用的IP地址只在本地使用,因此没有问题
因此,专用IP地址也叫做可重用地址

有时一个机构可能很大,分布在很远的不同地方(例如一个非洲,一个南极)
此时,如何通信?
第一,租用专用通道
多个分散的机构可以通过租用电信公司的专用通道,但是贵
第二,通过互联网进行通信
使用互联网作为一个专用网之间的两个不同场所的通信载体
于是,这样的专用网就叫做虚拟专用网VPN
如果数据通过互联网有保密需求,则可以进行加密

二、如何理解“虚拟专用网”?

虚拟专用网并不是一个整体的实际客体
因为多个机构在物理上是分散的
但是,因为对于机构的每一个主机来说,
他们可以对本机构内的所有主机进行畅通无阻的通信
而且无论主机在现实世界的位置
于是,一个机构内的所有主机就好像是在同一个网络内一样
因此,称之为“虚拟专用网”
但是实际上并不存在这样的网络,故名“虚拟”

在计算机网络中,存在很多“虚拟”的概念
例如“虚拟局域网”、“虚拟存储器”、“虚拟专用网”等等
要深刻理解这种逻辑上抽象的技术概念
这对整个计算机的体系认识是都好处的
学习这些知识不能只有知识点的堆砌和拼凑
不能零散,没有组织,不成体系
这样的认识,将很难在思维层次上帮助你构建起一个对计算机世界的整体观

三、IP隧道技术实现虚拟专用网

每一个场所必须保证至少有一个路由器具有全球唯一合法的IP地址
这个接口作为路由器与互联网连接的接口
如图所示:

于是,虚拟专用网的通信分为三种:
一、内部通信,不需要经过互联网
二、跨场所,需经过互联网(重点!!!)
三、外地员工的个人主机连接公司主机

对第二种情况:
第一、专用网内部主机将数据发送给连接的路由器
第二、路由器接到内部数据后发现需经过互联网,加密,加上首部,封装为互联网需要的IP数据报
第三、修改源地址为本路由器的IP地址目的地址为目的专用网连接的路由器的IP地址
第四、目的路由接收到数据后,解包,恢复内部数据报,根据目的地址发送给本路由器连接的网络中的对应主机

对第三种情况:
这种技术叫做远程VPN
感兴趣可自行了解

四、网络地址变换

为什么要进行网络地址转换?
因为考虑到这样一种情况:
一个在专用网内的主机
已经获取了专用玩的IP地址,但是还向和外部的互联网上的主机通信
此时,就需要进行网络地址转换

进行网络地址转换
需在专用网和互联网之间的路由器上安装NAT软件
安装NAT的软件叫做NAT路由器
NAT路由器至少有一个全球IP地址,但也可以有多个

从专用网内部的主机A发送到互联网上的主机B的发送过程:(内网A->外网B)
此时源地址为专用网的主机地址,目的地址为互联网的主机地址
1、路由器C根据NAT路由表,修改数据报的源地址为本路由器的全球唯一IP地址
2、目的主机B收到后,发送回应报文IP数据报
3、回应IP数据报的源地址为B的IP地址,目的地址为路由器C的IP地址
4、路由器C收到回应报文,根据NAT路由表修改目的地址,将路由器IP地址修改为主机A的专用网地址
5、地址转换后,从IP数据报变为数据报,发送给主机A

当NAT路由器有n个全球唯一IP地址时,最多有n台主机接入互联网
一个NAT项目对应一个专用网主机和接口IP地址(这样才可以转换)
同时,通过NAT路由器的通信只能由专用网内部的主机发起
如果外部互联网主机发起的通信,即使能够到达NAT路由器,
但是接下来不知道该发给哪个专用网主机
因此,专用网的主机不能用做服务器
因为服务器需要对请求进行回应

思考:为什么不能由互联网的主机发起通信?
外部主机发送到专用网的请求需要通过NAT路由器的端口映射或者端口转发机制进行处理。
NAT表中的条目只有在内网主机先发起通信时才会建立并允许响应,因为外部主机无法直接访问私有IP。

思考:既然不能由互联网的主机发起通信,可是为什么互联网到内网的回应报文却可以通信呢?
NAT路由器之所以能够将回应报文正确转换并转发,是因为在大多数情况下,NAT操作是“状态感知的”。
也就是说,NAT路由器知道哪些内网主机发起了哪些外部请求,因此它能基于已有的连接和转换记录来正确处理回应报文。
这些记录是基于连接的状态而创建的,因此外部的回应数据包可以通过NAT路由器的地址转换规则,正确地转发给发起请求的内网主机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/61054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序如何完成订阅

小程序如何完成订阅 参考相关文档实践问题处理授权弹窗不再触发引导用户重新授权 参考相关文档 微信小程序实现订阅消息推送的实现步骤 发送订阅消息 小程序订阅消息(用户通过弹窗订阅)开发指南 实践 我们需要先选这一个模板,具体流程参考…

Oracle OCP认证考试考点详解082系列19

题记: 本系列主要讲解Oracle OCP认证考试考点(题目),适用于19C/21C,跟着学OCP考试必过。 91. 第91题: 题目 解析及答案: 关于 Oracle 数据库中的索引及其管理,以下哪三个陈述是正确的&#x…

HuggingFace:基于YOLOv8的人脸检测模型

个人操作经验总结 1、YOLO的环境配置 github 不论base环境版本如何,建议在conda的虚拟环境中安装 1.1、创建虚拟环境 conda create -n yolov8-face python3.9conda create :创建conda虚拟环境, -n :给虚拟环境命名的…

Linux core转储文件排查及命令整理

在Linux系统中,当进程因各种原因异常终止时,操作系统会将进程当时的内存映像保存到磁盘上,生成一个名为core的文件,这个过程称为核心转储(core dump)。core文件是调试程序错误的重要工具,它记录…

2024-11-15 Element-ui的tab切换中table自适应宽度无法立即100%的问题

前言 今天在写一个统计图表的时候,将所有的table表格和echarts图表放到一个页面中,这样会在纵向上出现滚动条,上下滑动对用户体验不好,于是改成tab切换的形式 遇到的问题 正如标题所述,elementui在tab中使用table时&…

Android Studio更新成2024.1.2版本后旧项目Gradle配置问题

Android Studio更新成2024.1.2版本后旧项目需要配置Gradle才能继续在Android studio正常编译、运行。这个版本的studio和之前版本的studio在gradle配置上差别很大,导致我搞了好久,说久是因为我看见就不想弄,今天抽时间弄了一下,在…

智能化运维与AI/ML辅助决策:实现自动化与预测优化

智能化运维与AI/ML辅助决策:实现自动化与预测优化 目录 🤖 人工智能在运维中的应用场景与价值📊 基于机器学习的异常检测与预测性维护💡 运维自动化中的决策支持系统🧠 使用Python进行机器学习模型的运维应用&#x…

【汇编】c++游戏开发

由一起学编程创作的‘C/C项目实战:2D射击游戏开发(简易版), 440 行源码分享来啦~’: C/C项目实战:2D射击游戏开发(简易版), 440 行源码分享来啦~_射击c-CSDN博客文章浏览…

比较TCP/IP和OSI/RM的区别

一、结构不同 1、OSI:OSI划分为7层结构:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 2、TCP/IP:TCP/IP划分为4层结构:应用层、传输层、互联网络层和主机-网络层。 二、性质不同 1、OSI:OSI是制定…

由播客转向个人定制的音频频道(1)平台搭建

项目的背景 最近开始听喜马拉雅播客的内容,但是发现许多不方便的地方。 休息的时候收听喜马拉雅,但是还需要不断地选择喜马拉雅的内容,比较麻烦,而且黑灯操作反而伤眼睛。 喜马拉雅为代表的播客平台都是VOD 形式的&#xff0…

k-近邻算法(K-Nearest Neighbors, KNN)详解:机器学习中的经典算法

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

pycharm分支提交操作

一、Pycharm拉取Git远程仓库代码 1、点击VCS > Get from Version Control 2、输入git的url,选择自己的项目路径 3、点击Clone,就拉取成功了 默认签出分支为main 选择develop签出即可进行开发工作 二、创建分支(非必要可以不使用&#xf…

PySpark——Python与大数据

一、Spark 与 PySpark Apache Spark 是用于大规模数据( large-scala data )处理的统一( unified )分析引擎。简单来说, Spark 是一款分布式的计算框架,用于调度成百上千的服务器集群,计算 TB 、…

算法日记 26-27day 贪心算法

接下来的题目有些地方比较相似。需要注意多个条件。 题目:分发糖果 135. 分发糖果 - 力扣(LeetCode) n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每…

Python绘制雪花

文章目录 系列目录写在前面技术需求完整代码代码分析1. 代码初始化部分分析2. 雪花绘制核心逻辑分析3. 窗口保持部分分析4. 美学与几何特点总结 写在后面 系列目录 序号直达链接爱心系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4…

InfluxDB时序数据库笔记(一)

InfluxDB笔记一汇总 1、时间序列数据库概述2、时间序列数据库特点3、时间序列数据库应用场景4、InfluxDB数据生命周期5、InfluxDB历史数据需要另外归档吗?6、InfluxDB历史数据如何归档?7、太麻烦了,允许的话选择设施完备的InfluxDB云产品吧8、…

【一键整合包及教程】AI照片数字人工具EchoMimic技术解析

在数字化时代,人工智能(AI)正以前所未有的速度改变着我们的生活。EchoMimic,作为蚂蚁集团旗下支付宝推出的开源项目,不仅为数字人技术的发展掀开了新的一页,更为娱乐、教育、虚拟现实、在线会议等多个领域带…

STM32中断系统

目录 一、中断的基本概念 二、NVIC 1.NVIC的概念 2、NVIC的组成 3、NVIC的应用 4.NVIC的结构 三、外部中断EXTI 1.外部中断的概念 2.EXTI基本结构 四、EXTI外部中断的配置流程 1.开启APB2中的GPIO口/AFIO时钟 2.GPIO配置成输入模式 3.AFIO选择中断引脚 4.EXTI初始…

【大模型】prompt实践总结

文章目录 怎么才算是好的prompt设计准则基本原则精炼原则(奥卡姆剃刀准则)具体原则真实操作技巧指定角色增加fewshots列表化代码化强调需求真实迭代大模型优化情形任务的定义和评估标准似乎可以再明确一下出现了一些之前没有考虑过的特殊情况,可以重新组织语言优化Prompt来处…

4.2 Android NDK 基础概念

1 JavaVM和JNIEnv JNI 定义了两个关键数据结构,JavaVM和JNIEnv。这两者本质上都是指向函数表指针的指针。(在 C 版本中,它们是具有指向函数表的指针的类,以及指向该表的每个 JNI 函数的成员函数。)JavaVM提供了“调用接…