虚拟专用网络详解

VPN的概念

虚拟专用网络(Virtual Private Network,VPN)是利用Internet等公共网络的基础设施,通过隧道技术,为用户提供的与专用网络具有相同通信功能的安全数据通道。其中,“虚拟”是指用户不需要建立各自专用的物理线路,而是利用Internet等公共网络资源和设备建立一条逻辑上的专用数据通道,并实现与专用数据通道相同的通信功能。“专用网络”是指虚拟出来的网络并非任何连接在公共网络上的用户都能使用,只有经过授权的用户才可以使用。该通道内传输的数据经过加密和认证,可保证传输内容的完整性和机密性。

VPN的实现技术

隧道技术

概念

隧道是一种封装技术,它利用一种网络协议来传输另一种网络协议,即利用一种网络传输协议,将其他协议产生的数据报文封装在它自己的报文中,然后在网络中传输。隧道(Tunnel)是一个虚拟的点对点的连接。在实际应用中仅支持点对点连接的虚拟接口为Tunnel接口。一个Tunnel提供了一条使封装的数据报文能够传输的通路,并且在一个Tunnel的两端可以分别对数据报文进行封装及解封装。隧道技术就是指包括数据封装、传输和解封装在内的全过程。

隧道协议

要创建隧道,隧道的客户机和服务器双方必须使用相同的隧道技术,隧道协议有二层隧道协议与三层隧道协议两类。

二层隧道协议对应OSI模型中数据链路层,使用帧作为数据交换单位,PPTP(Point to Point Tunneling Protocol)、L2TP(Layer 2 Tunneling Protocol)、L2F(Layer 2 Forwarding)都属于二层隧道协议。是将数据封装在点对点协议的帧中通过互联网络发送,主要应用于构建远程访问虚拟专网(Access VPN)

三层隧道协议对应OSI模型中网络层,使用包作为数据交换单位,GRE(Generic Routing Encapsulation)、IPSec(Internet Protocol Security)都属于三层隧道协议。都是数据包封装在附加的IP包头中通过IP网络传送,主要应用于构建企业内部虚拟专网(Intranet VPN)和扩展的企业内部虚拟专网(Extranet VPN)

GRE协议

隧道协议_GRE
面试官:GRE 和 IPsec 隧道有什么区别?

概念

GRE(General Routing Encapsulation ,通用路由封装)由 RFC(Request for Comments)2784 定义并由 RFC 2890 更新,是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的报文能够在另一网络层协议(如IP)中传输。GRE 最好在受信任的网络路径上使用,因为数据包未加密,但如果需要加密,它可以与 IPsec 隧道结合使用。

在这里插入图片描述

封装过程

系统接收到一个需要封装和路由的数据报文,我们称之为有效负载(Payload)。这个有效负载首先被GRE封装然后被称之为GRE报文,这个报文接着被封装在IP报文中,然后完全由IP层负责此报文的转发(Forwarding)。我们也称这个负责向前传输的IP 协议为传递(Delivery)协议或传输(Transport)协议。

GRE实际上是第三层隧道的一种运载协议(Carrier Protocol)。GRE的协议号47。
在这里插入图片描述

解封装过程

当IP层接收到GRE报文,检查到外层IP报文头部中的协议号是47时(UDP为17,TCP为6,ICMP为1),那么,IP层输入入口函数会根据协议开关表,直接调用GRE的解封装处理函数,对GRE解封装。解封装完成后,再将原始数据报文送入IP输入队列中,以便进行进一步的传输。

IPSec协议

ipsec 详解
什么是IPsec?(工作方式、协议)

概念

IPSec总结在 RFC 6071 中,是一组基于网络层的,应用密码学的安全通信协议族。IPSec不是具体指哪个协议,而是一个开放的协议簇。IPSec可在 IP 网络上创建加密隧道。它的加密和身份验证机制可防止窃听和数据修改,这解释了虚拟专用网络( VPN ) 一词。

IPSec协议的设计目标:是在IPV4和IPV6环境中为网络层流量提供灵活的安全服务。

IPsec 隧道经常用于在组织的分支机构或移动用户与家庭办公室或数据中心之间提供安全的数据路径,VPN 隧道终端可以是分支机构或家庭设备的网络网关。

在这里插入图片描述

加解密技术、 密钥管理技术、 身份认证技术

身份认证、数据加密、数据验证可以有效保证VPN网络和数据的安全性
身份认证:VPN网关对接入VPN的用户进行身份认证,保证接入的用户都是合法用户。
在这里插入图片描述

数据加密:将明文通过加密技术成密文,哪怕信息被获取了,也无法识别。
在这里插入图片描述

数据验证:通过数据验证技术验证报文的完整性和真伪进行检查,防止数据被篡改。
在这里插入图片描述

VPN的分类

按VPN的协议分类

VPN的隧道协议主要有三种, PPTP,L2TP和IPSec。其中PPTP和L2TP协议工作在OSI模型的第二层,又称为二层隧道协议; IPSec是第三层隧道协议,也是最常见的协议。L2TP和IPSec配合使用是目前性能最好,应用最广泛的一种。

按VPN的应用分类

  • Access VPN(远程接入VPN,Client-LAN类型):它提供了一种安全的远程访问手段,使用公网作为骨干网在设备之间传输VPN数据流量。例如,出差在外的员工,有远程办公需要的分支机构,都可以利用这种类型的VPN,实现对企业内部网络资源进行安全的远程访问。

  • Intranet VPN(内联网VPN,LAN-LAN类型):为了在不同局域网之间建立安全的数据传输通道,例如在企业内部各分支机构之间或者企业与其合作者之间的网络进行互联,可以采用LAN-LAN类型的VPN。而采用LAN-LAN类型的VPN,可以利用基本的Internet和Intranet网络建立起全球范围内物理的连接,再利用VPN的隧道协议实现安全保密需要,就可以满足公司总部与分支机构以及合作企业间的安全网络连接。

  • Extranet VPN(外联网VPN,ExtranetVPN类型):即与合作伙伴企业网构成Extranet,将一个公司与另一个公司的资源进行连接,这和第一种VPN类似。

按所用的设备类型进行分类:

  • 路由器式VPN:路由器式VPN部署较容易,只要在路由器上添加VPN服务即可;
  • 交换机式VPN:主要应用于连接用户较少的VPN网络;
  • 防火墙式VPN:防火墙式VPN是最常见的一种VPN的实现方式,许多厂商都提供这种配置类型

VPN的作用

  1. 加密传输:此作用是VPN的最为原始的作用,也是国外使用vpn的原因,加密传输功能,使的网络更加安全,保密。

VPN的用途

  1. 互联网远程访问:
    近年来,许多企业机构的一些员工的办公地点流动性越来越大,比如,员工到不同的城市出差时需要访问企业的内部网络,若没有vpn是访问不了的。

  2. 局域网互联:
    除了使用虚拟专用网络进行远程访问, VPN也可以两个局域网联系在一起。在这种工作模式下,整个远程网络可以加入到一个不同的公司网络,以形成一个扩展的企业内部网。该解决方案是采用一台VPN服务器, 实现两个局域网的互联。

  3. 内部网络的vpn使用:
    比如,在每一个公司,由于每个人的职位与职责不一样,内部网络也可以利用VPN技术来实现一个私有网络内的受控访问单个子网。在这种操作模式下,VPN客户端连接到一个VPN服务器作为网络网关。
    这种类型的VPN使用不会影响互联网服务提供商(ISP)或公共网络布线。但是,它允许组织内部署VPN的安全利益。作为企业保护他们的无线本地网络的一种方式,这种方法目前比较受欢迎。

  • 5
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
目录 译者序 前言 第1章 概述 1.1 引言 1.2 源代码表示 1.2.1 将拥塞窗口设置为1 1.2.2 印刷约定 1.3 历史 1.4 应用编程接口 1.5 程序示例 1.6 系统调用和库函数 1.7 网络实现概述 1.8 描述符 1.9 mbuf与输出处理 1.9.1 包含插口地址结构的mbuf 1.9.2 包含数据的mbuf 1.9.3 添加IP和UDP首部 1.9.4 IP输出 1.9.5 以太网输出 1.9.6 UDP输出小结 1.10 输入处理 1.10.1 以太网输入 1.10.2 IP输入 1.10.3 UDP输入 1.10.4 进程输入 1.11 网络实现概述(续) 1.12 中断级别与并发 1.13 源代码组织 1.14 测试网络 1.15 小结 第2章 mbuf:存储器缓存 2.1 引言 2.2 代码介绍 2.2.1 全局变量 2.2.2 统计 2.2.3 内核统计 2.3 mbufl的定义 2.4 mbuf结构 2.5 简单的mbuf宏和函数 2.5.1 m-get函数 2.5.2 MGET宏 2.5.3 m-etry函数 2.5.4 mbuf锁 2.6 m-devget和m-pullup函数 2.6.1 m-devget函数 2.6.2 mtod和dtom宏 2.6.3 pullup函数和连续的协议首部 2.6.4 m-pullup和IP的分片与重组 2.6.5 TCP重组避免调用m-pullup 2.6.6 m-pullup使用总结 2.7 mbuf宏和函数的小结 2.8 Neff3联网数据结构小结 2.9 m-Copy和簇引用计数 2.10 其他选择 2.11 小结 第3章 接口层 3.1 引言 3.2 代码介绍 3.2.1 全局变量 3.2.2 SNMP变量 3.3 ifnet结构 3.4 ifadck结构, 3.5 sockaddr结构 3.6 ifnet与土faddr的专用化 3.7 网络初始化概述 3.8 以太网初始化 3.9 suP初始化 3.10 环回初始化 3.11 if_attach函数 3.12 ifinit函数 3.13 小结 第4章 接口:以太网 4.1 引言 4.2 代码介绍 4.2.1 全局变量 4.2.2 统计量 4.2.3 SNMP变量 4.3 以太网接口 4.3.1 leintr函数 4.3.2 leread函数 4.3.3 ether_input函数 4.3.4 ether_output函数 4.3.5 lestart函数 4.4 ioctl系统调用 4.4.1 ifioctl函数 4.4.2 ifconf函数 4.4.3 举例 4.4.4 通用接口ioctl命令 4.4.5 if_down和if_up函数 4.4.6 以太网、SLIP和环回 4.5 小结 第5章 接口:SLIP和环回 5.1 引言 5.2 代码介绍 5.2.1 全局变量 5.2.2 统计量 5.3 SLIP接口 5.3.1 SLIP线路规程:SLIPDISC 5.3.2 SLIP初始化:slopen slinit 5.3.3 SLIP输入处理:slinput 5.3.4 SLIP输出处理:sloutput 5.3.5 slstart函数 5.3.6 SLIP分组丢失 5.3.7 SLIP性能考虑 5.3.8 slclose函数 5.3.9 sltioctl函数 5.4 环回接口 5.5 小结 第6章 IP编址 6.1 引言 6.1.IIP地址 6.I.2 IP地址的印刷规定 6.1.3 主机和路由器 6.2 代码介绍 6.3 接口和地址小结 6.4 sockaddr_in结构 6.5 in_ifaddr结构 6.6 地址指派 6.6.1 ifioctl函数 6.6.2 in_control函数 6.6.3 前提条件:SIOCSIFADDR、SIOCSIFNETMASK和SIOCSIFDSFADDR 6.6.4 地址指派:SIOCSIFADDR 6.6.5 in_ifinit函数 6.6.6 网络掩码指派:SIOCSIFNETMASK 6.6.7 目的地址指派:SIOCSIFDSTADDR 6.6.8 获取接口信息 6.6.9 每个接口多个IP地址 6.6.10 附加IP地址:SIOCAIFADDR 6.6.11 删除IP地址:SIOCDIFADDR 6.7 接口ioctl处理 6.7.1 leioctl函数 6.7.2 slioctl函数 6.7.3 loioctl函数 6.8 Internet实用函数 6.9 ifnet实用函数 6.10 小结 第7章 域和协议 7.1 引言 7.2 代码介绍 7.2.1 全局变量 7.2.2 统计量 7.3 domain结构 7.4 protosw结构 7.5 IP的domain和protosw结构 7.6 pffindproto~Hpffindtype函数 7.7 pfctlinput函数 7.8 IP初始化 7.8.1 Intemet传输分用 7.8.2 ip_init函数 7.9 sysctl系统调用 7.10 小结 第8章 IP:网际协议 8.1 引言 8.2 代码介绍 8.2.1 全局变量 8.2.2 统计量 8.2.3 SNMP变量 8.3 IP分组 8.4 输入处理:ipintr函数 8.4.1 ipintr概观 8.4.2 验证 8.4.3 转发或不转发 8.4.4 重装和分用 8.5 转发:ip_forward函数 8.6 输出处理:ip_output函数 8.6.1 首部初始化 8.6.2 路由选择 8.6.3 源地址选择和分片 8.7 Internet检验和:in_cksum函数 8.8 setsockopt和getsockopt系统调用 8.8.1 PRCO_SETOPT的处理 8.8.2 PRCO_GETOPT的处理 8.9 ip_sysctl函数 8.10 小结 第9章 IP选项处理 9.1 引言 9.2 代码介绍 9.2.1 全局变量 9.2.2 统计量 9.3 选项格式 9.4 ip_dooptions函数 9.5 记录路由选项 9.6 源站和记录路由选项 9.6.1 save_rte函数 9.6.2 ip_srcroute函数 9.7 时间戳选项: 9.8 ip_insertoptions函数 9.9 ip_pcbopts函数 9.10 一些限制 9.11 小结 笫10章 IP的分片与重装 10.1 引言 10.2 代码介绍 10.2.1 全局变量 10.2.2 统计量 10.3 分片 10.4 ip_optcopy函数 10.5 重装 10.6 ip_reass函数 10.7 ip_slowtimo函数 10.8 小结 第11章 ICMP:Internet控制报文协议 11.1 引言 11.2 代码介绍 11.2.1 全局变量 11.2.2 统计量 11.2.3 SNMP变量 11.3 icmp结构 11.4 ICMP的protosw结构 11.5 输入处理:icmp_input函数 11.6 差错处理 11.7 请求处理 11.7.1 回显询问:ICMP_ECHO和ICMLHCHOREPLY 11.7.2 时间戳询问:ICMP_TSTAMP和 ICMPTSTAMPREPLY 11.7.3 地址掩码询问:ICMP_MASKREQ和ICMP_MASKREPLY 11.7.4 信息询问:ICMP_IREQ和ICMP_IREQREPLY 11.7.5 路由器发现:ICMP_ROUTERADVERy和ICMP_ROUTERSOLICIF 11.8 重定向处理 11.9 回答处理 11.10 输出处理 11.11 icmp_error函数 11.12 icmpreflect函数 11.13 icmp_send函数 11.14 icmp_sysctl函数 11.15 小结 第12章 IP多播 12.1 引言 12.2 代码介绍 12.2.1 全局变量 12.2.2 统计量 12.3 以太网多播地址 12.4 ether_multi结构 12.5 以太网多播接收 12.6 inmulti结构 12.7 ip_moptions结构 12.8 多播的插口选项 12.9 多播的TTL值 12.9.1 MBONE 12.9.2 扩展环搜索 12.10 ip_setmoptions函数 12.10.1 选择一个明确的多播接口:IP_MULTICAS%_IF 12.10.2 选择明确的多播TTL:IP_MULTICASTTTL 12.10.3 选择多播环回:IPMULTICAST_LOOP 12.11 加入一个IP多播组 12.11.1 in_addmulti函数 12.11.2 slioctl和loioctl函数:SIOCADDMULTT和SIOCDRLTI 12.11.3 Leioctl函数:SIOCADDMULTI和SIOCDELMULTI 12.11.4 etheraddmulti函数 12.12 离开一个IP多播组 12.12.1 in_delmulti函数 12.12.2 ether_delmulti函数 12.13 ip_getmoptions函数 12.14 多播输入处理:ipintr函数 12.15 多播输出处理:ip_output函数 12.16 性能的考虑 12.17 小结 第13章 IGMP:Intemet组管理协议 13.1 引言 13.2 代码介绍 13.2.1 全局变量 13.2.2 统计量 13.2.3 SNMP变量 13.3 igrmp结构 13.4 IGMP的protosw的结构 13.5 加入一个组:igmp_joingroup函数 13.6 igmp_fasttimo函数 ]3.7 输入处理:igmp_input函数 13.7.1 成员关系查询:IGMP_HOST_M194BERSHIPQUERY 13.7.2 成员关系报告:IGMP_HOST_MEMBERSHIPREPORT 13.8 离开一个组:ignlo_leavegroup函数 13.9 小结 第14章 IP多播选路 14.1 引言 14.2 代码介绍 14.2.1 全局变量 14.2.2 统计量 14.2.3 SNMP变量 14.3 多播输出处理(续) 14.4 mrouted守护程序 14.5 虚拟接口 14.5.1 虚拟接口表 14.5.2 add_vif函数 14.5.3 del_vif函数 14.6 IGMP(续) 14.6.1 add_igrp函数 14.6.2 del_igrp函数 14.6.3 grplst_member函数 14.7 多播选路 …… 第15章 插口层 第16章 插口I/O 第17章 插口选项 第18章 Radix树路由表 第19章 选路请求和选路消息 第20章 选路插口

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值