SWAN之ikev2协议dpd-restart配置测试

本测试主要验证远程用户carol和网关moon建立连接之后,由于链路问题,导致DPD(Dead Peer Detection)检测报文没有响应,之后链路恢复,自动重新建立连接的功能。本次测试拓扑如下:

在这里插入图片描述

carol主机配置

carol的配置文件:ikev2/dpd-restart/hosts/carol/etc/ipsec.conf,内容如下,keyexchange字段为ikev2,表示采用IKEv2协议。left字段的值为carol主机的IP地址。right字段指明对端为moon网关,但是rightid字段为moon的ID信息:moon@strongswan.org。rightsubnet字段指明对端的子网为:10.1.0.0/16。

需要注意的是此处指定了dpdaction的值为restart,即dpd检查失败之后,自动重新建立连接。字段dpddelay的值为10秒,指定dpd检测间隔。

config setup

conn %default
        ikelifetime=60m
        keylife=20m
        rekeymargin=3m
        keyingtries=1
        keyexchange=ikev2
        dpdaction=restart
        dpddelay=10

conn home
        left=PH_IP_CAROL
        leftcert=carolCert.pem
        leftid=carol@strongswan.org
        leftfirewall=yes
        right=PH_IP_MOON
        rightid=@moon.strongswan.org
        rightsubnet=10.1.0.0/16
        auto=add

moon网关的配置文件:ikev2/double-nat-net/hosts/moon/etc/ipsec.conf,内容如下,基本内容与alice主机相同。但是right字段的值为%any,表明接收任何主机发来的连接,此配置不能主动发起连接,需要等待carol的连接请求。需要注意的是此处指定了dpdaction的值为clear,即dpd检查失败之后,清除连接。字段dpddelay的值为10秒,指定dpd检测间隔。

config setup

conn %default
        ikelifetime=60m
        keylife=20m
        rekeymargin=3m
        keyingtries=1
        keyexchange=ikev2
        dpdaction=clear
        dpddelay=10

conn rw
        left=PH_IP_MOON
        leftcert=moonCert.pem
        leftid=@moon.strongswan.org
        leftsubnet=10.1.0.0/16
        right=%any
        rightid=carol@strongswan.org
        auto=add

测试准备阶段

配置文件:ikev2/dpd-restart/pretest.dat,内容为ipsec连接的启动语句。

moon::ipsec start
carol::ipsec start
moon::expect-connection rw
carol::expect-connection home
carol::ipsec up home

测试阶段

配置文件:ikev2/dpd-restart/evaltest.dat。以下测试语句检查在carol主机和moon网关上隧道建立成功。随后,在moon网关上丢弃所有carol的报文,并在carol主机上丢弃所有moon的所有报文,模拟链路断开的情况。之后,延时13秒(超出dpd配置的10秒间隔),在carol主机的strongswan进程日志中,确认DPD功能生效。

carol::ipsec status 2> /dev/null::home.*INSTALLED, TUNNEL::YES
moon:: ipsec status 2> /dev/null::rw.*INSTALLED, TUNNEL::YES
moon:: iptables -A INPUT -i eth0 -s PH_IP_CAROL -j DROP::no output expected::NO
carol::iptables -A INPUT -i eth0 -s PH_IP_MOON -j DROP::no output expected::NO
carol::sleep 13::no output expected::NO
carol::cat /var/log/daemon.log::sending DPD request::YES
carol::cat /var/log/daemon.log::retransmit.*of request::YES
carol::cat /var/log/daemon.log::giving up after.*retransmits::YES

以下测试语句,删除carol主机和moon网关上丢弃报文的iptables规则,即恢复链路。在carol主机上执行ping主机alice的操作,触发连接的再次建立。

carol::iptables -D INPUT -i eth0 -s PH_IP_MOON -j DROP::no output expected::NO
moon:: iptables -D INPUT -i eth0 -s PH_IP_CAROL -j DROP::no output expected::NO
carol::sleep 2::no output expected::NO
carol::ipsec status 2> /dev/null::home.*INSTALLED, TUNNEL::YES
moon:: ipsec status 2> /dev/null::rw.*INSTALLED, TUNNEL::YES

主机carol上strongswan进程的日志信息如下,在发送了3个DPD报文之后,strongswan开始重新建立home子连接。

carol charon: 07[IKE] sending DPD request
carol charon: 07[ENC] generating INFORMATIONAL request 2 [ ]
carol charon: 07[NET] sending packet: from 192.168.0.100[4500] to 192.168.0.1[4500] (80 bytes)
carol charon: 10[IKE] retransmit 1 of request with message ID 2
carol charon: 10[NET] sending packet: from 192.168.0.100[4500] to 192.168.0.1[4500] (80 bytes)
carol charon: 11[IKE] retransmit 2 of request with message ID 2
carol charon: 11[NET] sending packet: from 192.168.0.100[4500] to 192.168.0.1[4500] (80 bytes)
carol charon: 12[IKE] giving up after 2 retransmits
carol charon: 12[IKE] restarting CHILD_SA home
carol charon: 12[IKE] initiating IKE_SA home[2] to 192.168.0.1
carol charon: 12[ENC] generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]

如下图所示,moon网关传输了3个INFORMATIONAL报文,MID为0。carol主机也传输了3个INFORMATIONAL报文(重传两次),消息ID为2。此时连接断开,第一个DPD报文在最后一个报文发送10秒之后发出。DPD失效之后,carol主机发送IKE_SA_INIT报文开始重新建立连接。如果在ipsec.conf的配置中指定dpdaction的值为hold,strongswan在dpd失效后,不会主动建立连接,需要数据流的触发。参见测试用例dpd-hold:

在这里插入图片描述

strongswan测试版本: 5.8.1

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值