VPP配置指南:基于IKEv2的IPsec VPN

a7798ed48c1f94153221272e05d15606.gif

正文共:1024 字 13 图,预估阅读时间:1 分钟

现在,我们已经能够熟练地部署VPP了不用半小时,最快8分钟即可在CentOS上完成VPP的部署,而且已经能够满足基本的转发要求,那今天我们就来介绍一下VPP如何配置IPsec VPN。

前面,我们已经讲了几十篇和VPN相关的文章了,有需要的小伙伴请参考合集VPN合集

简单回顾一下,IPsec(IP Security,IP安全)是IETF制定的三层(网络层)隧道加密协议,也是一种三层VPN(Virtual Private Network,虚拟专用网络),它可以为互联网上传输的数据提供了高质量的、基于密码学的安全保证。

IPsec通过在特定通信方之间(例如两个安全网关之间)建立“通道”,来保护通信方之间传输的用户数据,该通道通常称为IPsec隧道。

在IPsec隧道中提供安全服务的是安全联盟(Security Association,SA),安全联盟是一个单一的“连接”,为其承载的流量提供安全服务。为了保护两个主机之间或两个安全网关之间的典型双向通信,一般需要两个安全联盟(每个方向一个)。

安全联盟通常有两种建立方式:手工方式和IKE自动协商方式

手工方式即手工配置IPsec SA的所有信息。该方式的配置比较复杂,主要适用于需要安全通信的对等体数量较少,或小型静态的组网环境中。

IKE自动协商方式即对等体之间通过IKE协议自动协商生成SA,并由IKE协议维护该SA。与手工方式不同的是,IKE自动协商方式支持野蛮模式和NAT穿越,即建立SA的对等体中不需要所有对等体均具备静态IP地址,只要其中一方有静态IP地址,即可建立对等体连接。该方式适用于中、大型的动态网络环境,或没有静态IP地址,需要穿越NAT建立SA的场景。

在VPP中,主要使用IKEv2协议来实现自动协商生成SA。并且自17.04版本开始,发起方已经支持使用IKEv2来发起协商。

在正常情况下,IKEv2只需要进行两次交互,使用4条消息就可以完成一个IKEv2 SA和一对IPsec SA的协商建立,即第一阶段的交互生成IKEv2 SA,第二阶段的交互生成IPsec SA。

cf2dfc1aec3eaec00e04c8971eaa5ad1.png

在穿越NAT的场景下,没有静态IP地址的一端无法使用IP地址来标识自己,但是可以通过FQDN(Fully Qualified Domain Name,完全合格域名)RFC822来进行标识。

今天,我们来简单配置一下通过IP地址和IKEv2来建立IPsec隧道。

6b1ea4148e3ecfdceaf47224077dee64.png

我们首先完成两台VPP的接口IP地址配置,保证两台VPP可以互通。

VPP72配置。

vppctl set int state eth1 up
vppctl set int ip address eth1 11.1.1.1/24
vppctl set int state eth2 up
vppctl set int ip address eth2 12.1.1.1/24

8d75fbb3226534d653d5a2177a002488.png

VPP73配置。

vppctl set int state eth1 up
vppctl set int ip address eth1 22.1.1.1/24
vppctl set int state eth2 up
vppctl set int ip address eth2 12.1.1.2/24

445fccbef345ca5c30f0519dc59ecb4a.png

然后我们配置IKEv2 profile。

vppctl ikev2 profile add vppipsec

配置认证鉴权方式为PSK,密码设置为vppipsec。

vppctl ikev2 profile set vppipsec auth shared-key-mic string vppipsec

在VPP73上将本端和对端的ID信息均配置为IP地址。

vppctl ikev2 profile set vppipsec id local ip4-addr 12.1.1.1
vppctl ikev2 profile set vppipsec id remote ip4-addr 12.1.1.2

配置流量选择器,指定本端和对端的IP地址网段、端口、协议等信息。

vppctl ikev2 profile set vppipsec traffic-selector local ip-range 11.1.1.1 - 11.1.1.254 port-range 0 - 65535 protocol 0
vppctl ikev2 profile set vppipsec traffic-selector remote ip-range 22.1.1.1 - 22.1.1.254 port-range 0 - 65535 protocol 0

在VPP中,IKEv2角色区分为发起者和响应者,我们将VPP72配置为发起者,将VPP73配置为响应者。我们需要在发起者上配置响应者的IP地址信息,并提供可用于IKEv2和IPsec协商的密码套件信息,还可以设置生命周期等参数。

vppctl ikev2 profile set vppipsec responder eth2 12.1.1.2
vppctl ikev2 profile set vppipsec ike-crypto-alg aes-cbc 256  ike-integ-alg sha1-96  ike-dh modp-2048
vppctl ikev2 profile set vppipsec esp-crypto-alg aes-cbc 256  esp-integ-alg sha1-96  esp-dh ecp-256
vppctl ikev2 profile set vppipsec sa-lifetime 3600 10 5 0

6d4c1f73c8dc981579cbc9d74a8e6a3a.png

对应的,我们配置一下响应者VPP73的相关配置。

vppctl ikev2 profile add vppipsec
vppctl ikev2 profile set vppipsec auth shared-key-mic string vppipsec
vppctl ikev2 profile set vppipsec id local ip4-addr 12.1.1.2
vppctl ikev2 profile set vppipsec id remote ip4-addr 12.1.1.1
vppctl ikev2 profile set vppipsec traffic-selector local ip-range 22.1.1.1 - 22.1.1.254 port-range 0 - 65535 protocol 0
vppctl ikev2 profile set vppipsec traffic-selector remote ip-range 11.1.1.1 - 11.1.1.254 port-range 0 - 65535 protocol 0

在发起者和响应者网络可达且配好了IKEv2策略之后,配置VPP72发起协商。

vppctl ikev2 initiate sa-init vppipsec

然后我们查看接口,发现多了一个ipip0的接口,这就是IPsec的隧道接口。

8ba1118e8c68633c28953844029398ac.png

然后我们在VPP72上为该接口配置IP地址。

vppctl set interface state ipip0 up
vppctl set interface ip address ipip0 120.1.1.1/24

添加去往对端22.1.1.0/24的路由,指定下一跳出口为ipip0接口。

vppctl ip route add 22.1.1.0/24 via 120.1.1.2 ipip0

同理,在VPP73上配置IP地址和路由信息。

vppctl set interface state ipip0 up
vppctl set interface ip address ipip0 120.1.1.2/24
vppctl ip route add 11.1.1.0/24 via 120.1.1.1 ipip0

3e52565ff115275ad9c8eba6d20becaa.png

测试一下两个IPsec隧道接口的互通情况。

c59ca2969fdfa05cb65c599fe40b5011.png

测试一下两端主机的互通情况。

734fd15d9bd7e515b4ef617b99778134.png

抓包查看,报文已经全部是加密状态。

06a5732405b1a077e79fe62e45b5d36d.png

且外层报文头是两端隧道接口的IP地址,属于GRE over IPsec类型。

在VPP73上查看IKEv2的SA信息。

002b8a933d7b29769fa49b842492e7fb.png

在VPP73上查看IPsec的SA信息。

670fd6266eef6f6849bb18bffee197ec.png

还可以用show ipsec all命令,不过也没有什么其他信息可以展示了。

97f4d5cd9d06f5d331f4fcb4e8ab4308.png

be69047b2da1ffc38a943189c318996f.gif

长按二维码
关注我们吧

bb63028f81730bf4174fd7783a387d83.jpeg

d77816d21ca20c153d9df98529b14f1c.png

从零开始安装一个VPP要多久?半小时,不能再多了!

不用半小时,最快8分钟即可在CentOS上完成VPP的部署

NVMe硬盘大降价,给你的服务器提提速吧!

惠普HPE服务器升级iLO4固件版本

我来帮着更新一下Linux连接SSL VPN的操作指导,官网手册过时了!

还能这么玩?Windows通过netsh命令配置IPsec

使用MMC和netsh两种方式配置Windows Server传输模式IPsec

成了!基于VPN虚链路的负载均衡测试成功!

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

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

相关文章

非科班,培训出身,怎么进大厂?

今天分享一下我是怎么进大厂的经历,希望能给大家带来一点点启发! 阿七毕业于上海一所大学的管理学院,在读期间没写过一行 Java 代码。毕业之后二战考研失利。 回过头来看,也很庆幸这次考研失利,因为这个时候对社会一…

【Vue2+3入门到实战】(22)VUE3之组合式API - setup、reactive和ref函数、computed、watch、生命周期函数详细讲解

目录 一、组合式API - setup选项1. setup选项的写法和执行时机2. setup中写代码的特点3. <script setup>语法糖 二、组合式API - reactive和ref函数1. reactive2. ref3. reactive 对比 ref 三、组合式API - computed四、组合式API - watch1. 侦听单个数据2. 侦听多个数据…

基于Kettle开发的web版数据集成开源工具(data-integration)-部署篇

目录 &#x1f4da;第一章 前言&#x1f4d7;背景&#x1f4d7;目的&#x1f4d7;总体方向 &#x1f4da;第二章 下载编译&#x1f4d7;下载&#x1f4d7;编译 &#x1f4da;第三章 部署&#x1f4d7;准备工作&#x1f4d5; 安装数据库&redis&consul&#x1f4d5; 修改…

wy的leetcode刷题记录_Day71

wy的leetcode刷题记录_Day71 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间&#xff1a;2024-1-3&#xff08;补&#xff09; 前言 目录 wy的leetcode刷题记录_Day71声明前言2487. 从链表中移除节点题目介绍思路代码收获 509. 斐波那契数题目介绍思…

为即将到来的量子攻击做好准备的 4 个步骤

当谈到网络和技术领域时&#xff0c;一场风暴正在酝酿——这场风暴有可能摧毁我们数字安全的根本结构。这场风暴被称为 Q-Day&#xff0c;是即将到来的量子计算时代的简写&#xff0c;届时量子计算机的功能将使最复杂的加密算法变得过时。 这场量子革命正以惊人的速度到来&am…

golang 图片加水印

需求&#xff1a; 1&#xff0c;员工签到图片加水印 2&#xff0c;水印文字需要有半透明的底色&#xff0c;避免水印看不清 3&#xff0c;图片宽设置在600&#xff0c;小于600或者大于600都需要等比例修改图片的高度&#xff0c;保持水印在图片中的大小和位置 4&#xff0c;处理…

【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现

【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现 更新时间&#xff1a;2023-12-29 1 题目 赛题 B DNA 存储中的序列聚类与比对 近年来&#xff0c;随着新互联网设备的大量涌入和对其服务需求的指数级增长&#xff0c;越来越多的数据信息被产…

【日积月累】Java Lambda 表达式

目录 【日积月累】Java Lambda 表达式 1.前言2.语法3.应用场景3.1简化匿名内部类的编写3.1简化匿名内部类的编写3.2简化集合类中的操作3.3实现函数式接口3.4简化多个方法的调用3.5简化异步编程 4.总结5.参考 文章所属专区 日积月累 1.前言 Lambda表达式是一个匿名函数&#…

快速打通 Vue 3(二):响应式对象基础

很激动进入了 Vue 3 的学习&#xff0c;作为一个已经上线了三年多的框架&#xff0c;很多项目都开始使用 Vue 3 来编写了 这一组文章主要聚焦于 Vue 3 的新技术和新特性 如果想要学习基础的 Vue 语法可以看我专栏中的其他博客 Vue&#xff08;一&#xff09;&#xff1a;Vue 入…

2023年.AI域名销售额达550万美元 2024还要继续涨

根据域名投资专家Elliot Silver的最新文章&#xff0c;2023年公开报道的.AI域名销售额已经达到了550万美元&#xff0c;而2022年和2021年分别为90万美元和120万美元。 Silver观察到过去几年.AI域名销售额呈现逐年增长的趋势&#xff0c;尤其是2023年的销售额相较前两年有了显著…

【计算机毕业设计】SSM二手交易网站

项目介绍 该项目分为前后台&#xff0c;前台普通用户角色&#xff0c;后台管理员角色。 管理员主要功能如下&#xff1a; 登陆,商品分类管理,商品管理,商品订单管理,用户管理等功能。 用户角色主要功能如下&#xff1a; 包含以下功能&#xff1a;查看所有商品,用户登陆注册…

骨传导耳机不踩坑推荐指南,南卡/韶音/墨觉实测告诉你答案!

你知道怎么选骨传导耳机吗&#xff1f;作为一个音响测评博主&#xff0c;我用过不下10款骨传导耳机&#xff0c;有的是普通款式&#xff0c;有的是专业运动款式&#xff0c;甚至为了维修也拆过一些骨传导耳机。可以说&#xff0c;骨传导耳机的选购绝不是表面看起来那么简单&…

单位转换工具类

单位转换工具类 1. 工具类转换- 定义装换枚举转换类型- 创建转换工具类,1. 通过反射去除字段,2.对照传入map标记的字段需要转换的类型转换3. 重新赋值 2. 注解转换- 定义注解- 解析注解 1. 工具类转换 - 定义装换枚举转换类型 public enum UnitConvertType {/*** 精确度*/ACC…

break,continue跳出指定循环小案例

某一天&#xff0c;你犯了一个错误&#xff0c;你老婆罚你做5天家务&#xff0c;每天去洗碗&#xff0c;洗碗到第三天心软了&#xff0c;原谅你了只有第三太不用洗碗 public class BreakDemo {public static void main(String[] args) {//某一天&#xff0c;你犯了一个错误&am…

视频监控可视化云平台EasyCVR智能视频技术优势分析

TSINGSEE青犀视频安防视频管理系统EasyCVR视频智能融合共享平台&#xff0c;是一个支持Windows/Linux(CentOS ubuntu)/国产化系统的视频管理平台。平台可以支持多协议接入&#xff0c;通过视频应用引擎将多种格式的视频数据转换为统一的视频流数据&#xff0c;支持无插件H5直播…

现在的人们如何看待数据隐私?

PrimiHub一款由密码学专家团队打造的开源隐私计算平台&#xff0c;专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。 在当前时代&#xff0c;每一次点击、触摸或按键都留下了数字痕迹。但是我们对自己的个人数据几乎没有控制的权限&#xff0c;这让…

主流桌面浏览器Chrome,FireFox和Edge等如何禁用弹出式窗口阻止程序,这里有详细步骤

为什么你想知道如何禁用浏览器中的弹出式窗口阻止程序?毕竟,弹出式窗口是网络的祸害:显示烦人的广告、虚假的安全消息和其他刺激,会分散你的浏览注意力,甚至可能包含恶意代码。 所有主要的桌面浏览器现在都默认阻止弹出式窗口,那么你到底为什么要取消阻止这些害虫呢?事…

c++的三大特性之关于继承

目录 继承的概念及定义 基类和派生类对象赋值转换 继承中的作用域 派生类的默认成员函数 继承与友元&#xff0c;静态成员 继承的概念及定义 概念&#xff1a; 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类…

gitee创建仓库

描述 本文章记录了怎么在gitee上创建项目&#xff0c;以及使用vscode提代码到远程呢个仓库&#xff0c;如何创建一个新分支&#xff0c;并将新分支提交到远程仓库。 1、创建远程仓库 在创建远程仓库之前要先进行ssh密钥的设置 &#xff08;1&#xff09;打开黑窗口&#xff…