SWAN之ikev2协议ip-split-pools-db配置测试

2023-12-19 09:58

本文主要是介绍SWAN之ikev2协议ip-split-pools-db配置测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本测试主要验证远程用户carol和dave,通过设置ipsec.conf文件中的leftsourceip等于%config,在与网关moon建立连接时,请求获取虚拟IP地址的功能。测试中moon定义了两个地址池,在第一个地址池地址耗尽之后,使用第二个地址池分配IP地址。本次测试拓扑如下:

在这里插入图片描述

主机配置

carol的配置文件:ikev2/ip-split-pools-db/hosts/carol/etc/ipsec.conf,内容如下,主要注意是这里的leftsourceip字段值%config,表示carol主机希望获得的虚拟IP地址。将在IKE_AUTH消息中包含Configuration载荷。dave主机的配置与此类似,其leftsourceip字段也配置为%config。

conn homeleft=PH_IP_CAROLleftsourceip=%configleftcert=carolCert.pemleftid=carol@strongswan.orgleftfirewall=yesright=PH_IP_MOONrightsubnet=10.1.0.0/16rightid=@moon.strongswan.orgauto=add

网关配置

moon的配置文件:ikev2/ip-split-pools-db/hosts/moon/etc/ipsec.conf,内容如下,rightsourceip字段指定了两个地址池:%pool0和%pool1。

conn rwleft=PH_IP_MOONleftsubnet=10.1.0.0/16leftcert=moonCert.pemleftid=@moon.strongswan.orgleftfirewall=yesright=%anyrightsourceip=%pool0,%pool1auto=add

moon的配置文件:ikev2/ip-split-pools-db/hosts/moon/etc/ipsec.conf,内容如下,charon加载了和本次测试相关的插件sqlite和attr-sql。attr-sql插件使用的数据库地址由database的值定义。

pool段定义了ipsec pool命令加载sqlite插件。

charon {load = random nonce aes sha1 sha2 pem pkcs1 curve25519 gmp x509 curl revocation hmac stroke kernel-netlink socket-default sqlite attr-sql updownplugins {attr-sql {database = sqlite:///etc/db.d/ipsec.db}}
}pool {load = sqlite
}

测试准备阶段

配置文件:ikev2/ip-split-pools-db/pretest.dat,内容为通常的ipsec连接的启动语句。另外,使用ipsec pool工具创建了两个地址池,其中地址池pool0仅添加了一个IP地址10.3.0.1;地址池pool1中也添加了一个IP地址10.3.1.1。当第一个地址池中的IP发配完之后,将使用第二个地址池。

moon::cat /usr/local/share/strongswan/templates/database/sql/sqlite.sql > /etc/db.d/ipsec.sql
moon::cat /etc/db.d/ipsec.sql | sqlite3 /etc/db.d/ipsec.db
moon::ipsec pool --add pool0 --start 10.3.0.1 --end 10.3.0.1 --timeout 48 2> /dev/null
moon::ipsec pool --add pool1 --start 10.3.1.1 --end 10.3.1.1 --timeout 48 2> /dev/null

测试阶段

配置文件:ikev2/ip-split-pools-db/evaltest.dat内容如下。首先确认carol和dave主机的隧道连接的建立,之后,在两个主机上的strongswan进程记录中检查各自虚拟IP地址的安装信息,carol主机得到了pool0地址池中的IP:10.3.0.1。dave得到了pool1地址池中的IP:10.3.1.1。

carol::ipsec status 2> /dev/null::home.*ESTABLISHED.*carol@strongswan.org.*moon.strongswan.org::YES
carol::ipsec status 2> /dev/null::home.*INSTALLED, TUNNEL::YES
carol::cat /var/log/daemon.log::installing new virtual IP 10.3.0.1::YES
dave:: ipsec status 2> /dev/null::home.*ESTABLISHED.*dave@strongswan.org.*moon.strongswan.org::YES
dave:: ipsec status 2> /dev/null::home.*INSTALLED, TUNNEL::YES
dave:: cat /var/log/daemon.log::installing new virtual IP 10.3.1.1::YES

以下为moon网关的相关测试语句,在其strongswan进程日志中应检测到pool0地址池的耗尽。之后,使用ipsec pool命令查看虚拟地址的分配和租约情况。

moon:: cat /var/log/daemon.log::acquired new lease for address 10.3.0.1 in pool.*pool0::YES
moon:: cat /var/log/daemon.log::assigning virtual IP 10.3.0.1 to peer::YES
moon:: cat /var/log/daemon.log::no available address found in pool.*pool0::YES
moon:: cat /var/log/daemon.log::acquired new lease for address 10.3.1.1 in pool.*pool1::YES
moon:: cat /var/log/daemon.log::assigning virtual IP 10.3.1.1 to peer::YES
moon:: ipsec pool --status 2> /dev/null::pool0.*10.3.0.1.*10.3.0.1.*48h.*1 .*1 .*1 ::YES
moon:: ipsec pool --status 2> /dev/null::pool1.*10.3.1.1.*10.3.1.1.*48h.*1 .*1 .*1 ::YES
moon:: ipsec pool --leases --filter pool=pool0,addr=10.3.0.1,id=carol@strongswan.org 2> /dev/null::online::YES
moon:: ipsec pool --leases --filter pool=pool1,addr=10.3.1.1,id=dave@strongswan.org 2> /dev/null::online::YES

strongswan测试版本: 5.8.1

END

这篇关于SWAN之ikev2协议ip-split-pools-db配置测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/511766

相关文章

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析