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

网络层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.kler.cn/a/398680.html

相关文章:

  • 【Android】EventBus事件总线用法浅析
  • 【STL】set,multiset,map,multimap的介绍以及使用
  • c++调用 c# dll 通过 clr (详细避坑)
  • Chrome 浏览器开启打印模式
  • SpringMVC数据校验、数据格式化处理、国际化设置
  • 15分钟学 Go 第 56 天:架构设计基本原则
  • 多目标优化算法:多目标红嘴蓝鹊优化算法(MORBMO)求解UF1-UF10,提供完整MATLAB代码
  • 开源,一天200star,解锁视频字幕生成新方式——一款轻量级开源字幕工具,免费,支持花字,剪映最新会员模式吃相太难看了
  • 配置LVGL的WIN下vscode的仿真demo
  • (动画版)排序算法 -希尔排序
  • ubuntu-server-22.04上手指南
  • 前端—Cursor编辑器
  • 【Android compose原创组件】在Compose里面实现内容不满一屏也可以触发边界阻尼效果的一种可用方法
  • Python中的with语句
  • Node.js事件循环:解锁异步编程的奥秘
  • Linux系统:线程
  • nginx证书流式响应配置
  • NLP论文速读(微软出品)|使用GPT-4进行指令微调(Instruction Tuning with GPT-4)
  • 跨平台WPF框架Avalonia教程 七
  • 【更新中】《硬件架构的艺术》笔记(三):处理多个时钟
  • 分布式相关杂项
  • 消除样本输入顺序影响的BP网络学习改进算法详解
  • 结构化需求分析与设计
  • 【STM32】I2C通信协议
  • QT入门之下载、工程创建、学习方法
  • 详解八大排序(四)------(归并排序)