5.4.1 虚拟专用网VPN
5.4.1 虚拟专用网VPN
我们已经学习了因特网的路由协议(5.3.1 因特网的路由协议(一)、5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议、5.3.3 因特网的路由协议(三)OSPF协议、5.3.4 因特网的路由协议(四)BGP协议)知道了路由器如何根据不同的路由协议来得到自己的路由表,这里我们要学习的是专用网络互连技术。
所谓的专用网一般指企事业单位内部的网络,随着经济全球化的发展越来越多的企业需要在全国乃至世界范围内建立多家分支机构,传统的专用网络中各个子公司或办事机构之间信息传送一般用租用专线的方式实现,这种连接方式最大的缺陷在于费用比较昂贵、不够灵活,随着因特网技术的发展现代企业越来越多的企业青睐于构建虚拟专用网(Virtual Private Network)简称VPN。
一、虚拟专用网
虚拟专用网摒弃了专线的连接方式,而是利用公共网络构建的私人专用网络。公共网络可以是因特网或者是各种类型的广域网比如帧中继网、ATM网络等,为了深入理解我们来举个例子。如图
假设一个企业有两个部门,部门A和B,分布在不同的地点,可能处于不同的城市也可能处在不同的国家,为了实现企业内部的专用网有效在两个部门之间进行通信和信息共享,我们可以直接将两个部门接入到公共网络中,利用公共网络平台来构建虚拟专用网。利用VPN技术使得部门A和B之间的通信对于互联网而言是不可见的,从而保证了专用要求的隐私性。
二、VPN的编址
在学习VPN工作原理之前我们先来学习一下VPN内的编址
-
VPN所提供的编址选择与专用网络一样,可以选择本地编址方案,也就是说它既可以分配全球的网络地址也可以使用私有地址(5.2.12 IP分组的转发(三))。前面我们已经说过本地地址无需向因特网管理机构申请,局限在内部网络中使用,由内部网络自行分配。而全球地址需要向因特网管理机构申请,在IPv4地址紧缺的情况下,VPN大多是采用本地编址的方法。
-
本地地址——仅在机构内部使用的IP地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。本地地址又被成为私有地址只能用于内部通信,也就是只能用于一个局域网内部主机之间的通信,因为每家单位都可以使用这些地址,
作为因特网专门负责地址分配的机构IANA明确规定了三块地址块空间只能用于专用互联网内部通信的IP地址空间也就是私有地址。(RFC1918)
前缀 最低地址 最高地址 10/8 10.0.0.0 10.255.255.255 172.16/12 172.16.0.0 172.31.255.255 192.168/16 192.168.0.0 192.168.255.255 -
全球地址——全球唯一的IP地址,必须向因特网的管理机构申请。
-
-
我们前面图片为例,
在两个部门网络组建的VPN中我们假设使用10.0.0.0进行编址,部门A中的一台主机X分配的地址是10.1.0.1,部门B主机Y分配的地址是10.2.0.3,因为这些地址都不属于全球地址,所以因特网的路由器在转发数据报的时候如果发现报文携带的目的地址是这些地址的话它会认为地址错误直接丢弃,不做其他处理,那么如何利用公共网络平台来构建专用网呢?
三、VPN工作原理
我们通过一个实例来介绍一下VPN的工作原理。如图
部门A通过R1路由器接入到因特网,部门B通过R2路由器接入到因特网,假设部门A网络中的一台主机X向部门B网络中的一台主机Y发送数据报,X产生的数据报必将流经因特网才能够到达B网络,这里会引发两个问题
- X产生的数据报的首部中源IP地址10.1.0.1和目的IP地址10.2.0.3都属于网络内部地址,数据报无法直接通过因特网传输。
- 专用网络注重通信的隐私性,希望专用网内任意用户之间的通信细节对于公网是不可见的,如何在开放的互联网平台上保护用户的隐私,确保通信的私密性,这也是需要解决的问题。
VPN是如何解决上述两个问题呢?
- 这里VPN的实现主要使用了两种基本技术:隧道传输和加密技术。
- 为了实现VPN两个网点之间的数据传输,需要在两个网点的路由器之间建立一个传输的隧道,当然隧道是一个比较形象的说法,它不代表路由器之间传输的专线,隧道传输仅仅是完成一个IP-in-IP协议再封装的过程,即**VPN定义了两个网络的路由器之间通过Internet的一个隧道,并使用IP-in-IP封装通过隧道转发数据报。
- 此外VPN将源端产生的数据报加密以后封装在外层数据报中来传输,即为了保证保密性,VPN把外发的数据报加密后,封装在另一个数据包中传输。
- 隧道接受路由器将数据报解密,还原出内层数据报,然后转发该数据报。
下面我们结合上面的例子来说明一下VPN采用隧道技术的传输过程。如图
主机X产生IP数据报,首部中的源地址和目的地址分别是10.1.0.1和10.2.0.3,数据报经过部门网络A的传输到达路由器R1,R1路由器将该IP数据报作为数据部分完整的封装到一个新的IP数据报的数据部分,新的IP数据报的首部中源IP地址就是路由器R1全球的IP地址,125.1.2.3目的地址填写的是R2的全球的IP地址194.4.5.6,这个经过再次封装之后的IP数据报就能够经过因特网顺利的传送到R2路由器,数据报到达R2以后,由路由器R2提取出内部的数据报,并根据内部数据报首部中的目的地址10.2.0.3,在部门B网络中完成最后的交付的任务。从整个的传输过程可以看出,VPN利用隧道的再封装过程来解决本地编址的专用网通过公共网络来进行通信的问题。
当然除了解决内部地址问题,隧道技术也有利于保护用户的隐私性。公网的路由器在对数据报进行解析、转发、处理的过程中它只查看外层数据报的首部信息,观测路由器R1和R2之间的通信细节,由于公网的路由器将内层的IP数据报视为数据部分,所以说对于专用网内所有主机之间的通信过程对外网的路由器是透明的,此外为了防止因特网上恶意用户截获篡改专用网内部的数据,加强专用网数据传输的安全性,由X产生的IP数据报在R1路由器上封装前还进行了加密处理。
相关文章:

5.4.1 虚拟专用网VPN
5.4.1 虚拟专用网VPN 我们已经学习了因特网的路由协议(5.3.1 因特网的路由协议(一)、5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议、5.3.3 因特网的路由协议(三)OSPF协议、5.3.4 因特…...

第42节:cesium 火焰效果(含源码+视频)
结果示例: 完整源码: <template><div class="viewer"><!-- :shouldAnimate="true" 添加动画 --><vc-viewer @ready...

MySQL基础篇第5章(排序与分页)
文章目录 1、排序1.1 排序规则1.2 单列排序1.3 多列排序 2、分页2.1 背景2.2 实现规则2.3 拓展 1、排序 1.1 排序规则 使用 ORDER BY 子句排序 ASC(ascend): 升序DESC(descend):降序 ORDER BY 子句在SELECT语句的结尾。 1.2 …...
LeetCode解法汇总2679. 矩阵中的和
目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 给你一个下标从 0 开始的二维整数数组 nums 。一开始你的分数为 0 。你需要执行…...
flask-apscheduler实现定时任务
秋风阁-北溪入江流 flask-apscheduler是一个支持apscheduler的flask插件,通过flask-apscheduler可以很方便的定义定时任务。 安装flask-apscheduler pip install flask-apschedulerflask-apscheduler组件 apscheduler库包含有组件: triggers…...

FPGA纯verilog实现UDP协议栈,sgmii接口SFP光口收发,提供工程源码和技术支持
目录 1、前言2、我这里已有的UDP方案3、该UDP协议栈性能4、详细设计方案SFPGMII AXIS接口模块AXIS FIFOUDP协议栈1G/2.5G Ethernet PCS/PMA or SGMII 5、vivado工程详解6、上板调试验证并演示准备工作查看ARPUDP数据回环测试 7、福利:工程代码的获取 1、前言 目前网…...
【Python入门系列】第十五篇:Python数据可视化和图表绘制
文章目录 前言一、可视化与绘图常用库二、Matplotlib1、折线图2、散点图3、柱状图: 三、Seaborn1、散点图2、箱线图3、小提琴图4、热力图 四、Plotly1、折线图2、散点图3、条形图 总结 前言 数据可视化是数据分析和数据科学中非常重要的一部分。通过可视化…...
isBlank函数和isEmpty函数的区别
StrUtil.isBlank(CharSequence):该方法用于判断字符串是否为空或仅包含空白字符。如果传入的字符串为null、空字符串(“”)或仅包含空白字符(如空格、制表符、换行符等),则返回true;否则返回false。 StrUtil.isEmpty(…...
「SQL面试题库」 No_121 The Most Recent Three Orders
🍅 1、专栏介绍 「SQL面试题库」是由 不是西红柿 发起,全员免费参与的SQL学习活动。我每天发布1道SQL面试真题,从简单到困难,涵盖所有SQL知识点,我敢保证只要做完这100道题,不仅能轻松搞定面试࿰…...

【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(7 月 7 日论文合集)
文章目录 一、检测相关(5篇)1.1 Contextual Affinity Distillation for Image Anomaly Detection1.2 Noise-to-Norm Reconstruction for Industrial Anomaly Detection and Localization1.3 MMNet: Multi-Collaboration and Multi-Supervision Network for Sequential Deepfake…...

直流运算放大器-----仪表放大器(三)
详见 模拟电子技术基础 6.4.1 电路图 计算公式 仿真 电流流向...

【Zookeeper】终端操作常用命令
文章目录 服务端常用命令客户端常用命令 zookeeper版本3.7.1 Zookeeper是一个开源的分布式协调服务。 Zookeeper是Apache软件基金会的一个项目,它提供了分布式应用程序协调的通用服务,如分布式同步、命名服务、集群维护等,以简化分布式应用协…...
leetcode 1110. 删点成林
给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。 返回森林中的每棵树。你可以按任意顺序组织答案…...

华为Harmony应用开发初探
HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体…...

电脑应用程序发生异常怎么办?
有时候我们打开电脑上面的某个软件时,会打不开,并且会弹出如下的错误提示“应用程序发生异常 未知的软件异常(xxx),位置为xx”。相信大多数的人在使用电脑的时…...

【JAVA】准备工作------Java开发环境搭建,IDEA的基础设置与操作
🍉内容专栏:【JAVA】 🍉本文脉络:JAVA的准备工作,IDEA的安装以及基础设置和快捷操作 🍉本文作者:Melon西西 🍉发布时间 :2023.7.11 目录 1. 概述JDK、JRE 2. 第一个程序——创建…...

操作系统真象还原——第5章 保护模式进阶,向内核迈进
第5章 保护模式进阶,向内核迈进 BIOS中断利用0x15子功能0xe802获取内存 汇编语言子功能的调用 填写调用前相关寄存器进行int中断调用获取返回结果输出到对应寄存器的值 80286 拥有24 位地址线,其寻址空间是16MB 。有一些ISA 只使用15MB,剩下…...
设计一款助听器可能需要用到以下音频算法
设计一款助听器可能需要用到以下音频算法: 1 响度补偿算法:助听器可能需要根据用户的听力损失情况调整不同频率范围内的增益,以提供个性化的听力补偿。这可以通过基于用户配置或自适应算法的频率响应调整来实现。 2 噪声抑制:用于…...
【端午节】用Vue3写粽子——从零开始
前言 在端午节即将到来之际,我们来一起写一个粽子组件来庆祝这个传统节日。 准备工作 首先,我们需要安装Vue3及其相关依赖,这里使用Vue CLI来创建项目。 # 安装Vue CLI npm install -g vue/cli # 创建Vue3项目 vue create zongzi接下来&a…...

大象机器人人工智能套装2023版深度学习协作机器人、先进机器视觉与应用场景
引言: 介绍当前的版本 今天我们要介绍的是aikit2023,aikit2023是aikit的全新升级版。 AIkit 2023 是一套集视觉,定位抓取、自动分拣模块为一体的入门级人工智能套装。 该套装基于python平台,可通过开发软件实现机械臂的控制&am…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...