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

IPSecurity 专栏收录该内容
89 篇文章 4 订阅

本测试主要验证远程用户carol通过设置ipsec.conf文件中的leftsourceip等于%config4和%config6,在与网关moon建立连接时,请求获取虚拟IPv4和IPv6地址的功能。测试中moon网关在rightsourceip字段定义了IPv4和IPv6类型的sqlite虚拟地址池。连接建立之后,IPv4和IPv6的流量都将被封装在隧道内。本次测试拓扑如下:

在这里插入图片描述

主机配置

carol的配置文件:ikev2/ip-two-pools-v4v6-db/hosts/carol/etc/ipsec.conf,内容如下,主要注意是这里的leftsourceip字段值%config4,%config6,意味值将向连接的对端请求虚拟IPv4和IPv6地址。

conn home
        left=PH_IP_CAROL
        leftsourceip=%config4,%config6
        leftcert=carolCert.pem
        leftid=carol@strongswan.org
        right=PH_IP_MOON
        rightid=@moon.strongswan.org
        rightsubnet=0.0.0.0/0,::/0
        auto=add

网关配置

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

conn rw
        left=PH_IP_MOON
        leftcert=moonCert.pem
        leftid=@moon.strongswan.org
        leftsubnet=10.1.0.0/16,fec1::0/16
        rightsourceip=%v4_pool,%v6_pool
        right=%any
        auto=add

moon的配置文件:ikev2/ip-two-pools-v4v6-db/hosts/moon/etc/strongswan.conf,内容如下,加载本次测试需要的sqlite,attr-sql等插件。attr-sql段定义使用的数据库地址。

pool段指定为ipsec pool命令工具加载sqlite插件。

charon {
  load = random nonce aes sha1 sha2 pem pkcs1 curve25519 gmp x509 curl revocation hmac stroke kernel-netlink socket-default updown sqlite attr-sql

  plugins {
    attr-sql {
      database = sqlite:///etc/db.d/ipsec.db
    }
  }
}

pool {
  load = sqlite
}

测试准备阶段

配置文件:ikev2/ip-two-pools-v4v6-db/pretest.dat,内容为通常的ipsec连接的启动语句。另外,需要注意的是创建sqlite3数据库文件/etc/db.d/ipsec.db。以及使用ipsec pool命令创建两个地址池v4_pool和v6_pool,分别设置IPv地址段:10.3.0.1到10.3.1.244,IPv6地址段:fec3::1 到 fec3::fe。

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 v4_pool --start 10.3.0.1 --end 10.3.1.244 --timeout 48 2> /dev/null
moon::ipsec pool --add v6_pool --start fec3:\:1 --end fec3:\:fe --timeout  48 2> /dev/null
alice::ip -6 route add default via fec1:\:1

测试阶段

配置文件:ikev2/ip-two-pools-v4v6-db/evaltest.dat内容如下。在确认alice主机和sun网关连接(nat-t)建立之后,在主机alice上检查strongswan进程日志中的强制UDP封装记录,然后使用ping命令测试到bob主机的连通性。

carol::cat /var/log/daemon.log::installing new virtual IP 10.3.0.1::YES
carol::cat /var/log/daemon.log::installing new virtual IP fec3:\:1::YES
carol::cat /var/log/daemon.log::TS 10.3.0.1/32 fec3:\:1/128 === 10.1.0.0/16 fec1:\:/16::YES
carol::ping -c 1 PH_IP_MOON::64 bytes from PH_IP_MOON: icmp_.eq=1::YES
carol::ping6 -c 1 ip6-alice.strongswan.org::64 bytes from ip6-alice.strongswan.org.*: icmp_seq=1::YES

如下为carol主机上strongswan进程的部分日志,可见获得的IPv4和IPv6虚拟地址以及安装的流量选择器。

carol charon: 13[IKE] installing new virtual IP 10.3.0.1
carol charon: 13[IKE] installing new virtual IP fec3::1
carol charon: 13[CFG] selected proposal: ESP:AES_CBC_128/HMAC_SHA2_256_128/NO_EXT_SEQ
carol charon: 13[IKE] CHILD_SA home{1} established with SPIs c58aec27_i c6e8f0dc_o and TS 10.3.0.1/32 fec3::1/128 === 10.1.0.0/16 fec1::/16

如下为moon网关上strongswan进程处理虚拟IP请求的日志:

moon charon: 11[IKE] peer requested virtual IP %any
moon charon: 11[CFG] acquired new lease for address 10.3.0.1 in pool 'v4_pool'
moon charon: 11[IKE] assigning virtual IP 10.3.0.1 to peer 'carol@strongswan.org'
moon charon: 11[IKE] peer requested virtual IP %any6
moon charon: 11[CFG] acquired new lease for address fec3::1 in pool 'v6_pool'
moon charon: 11[IKE] assigning virtual IP fec3::1 to peer 'carol@strongswan.org'

strongswan测试版本: 5.8.1

END

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值