本测试主要验证远程用户carol以及dave和网关moon之间的IKE配置(configuration)功能,由两个远程用户发起配置请求,moon网关回复分配的虚拟IP地址和DNS服务器地址信息。在远程用户carol和dave主机的ipsec.conf配置文件中,将leftsourceip设置为%config开启此功能。测试拓扑如下:
主机配置
carol的连接配置文件:ikev2/config-payload/hosts/carol/etc/ipsec.conf,内容如下,主要关注home连接中的leftsourceip字段设置为%config,这正是本次测试的地址配置功能。dave主机的ipsec.conf配置与carol基本相同。
config setup
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev2
conn home
left=PH_IP_CAROL
leftsourceip=%config
leftcert=carolCert.pem
leftid=carol@strongswan.org
leftfirewall=yes
right=PH_IP_MOON
rightsubnet=10.1.0.0/16
rightid=@moon.strongswan.org
auto=add
网关moon配置
moon的配置文件:ikev2/config-payload/hosts/moon/etc/ipsec.conf,内容如下,主要关注rw-carol连接的rightsourceip字段设置为PH_IP_CAROL1,此为要分配给carol主机的虚拟IP,由全局配置文件strongswan-5.8.1/testing/testing.conf可知其值为10.3.0.1。对于连接rw-dave配置相似,分配给dave的虚拟IP地址为PH_IP_DAVE1,其值为10.3.0.2。
config setup
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev2
left=PH_IP_MOON
leftsubnet=10.1.0.0/16
leftcert=moonCert.pem
leftid=@moon.strongswan.org
leftfirewall=yes
conn rw-carol
right=%any
rightid=carol@strongswan.org
rightsourceip=PH_IP_CAROL1
auto=add
conn rw-dave
right=%any
rightid=dave@strongswan.org
rightsourceip=PH_IP_DAVE1
auto=add
在以下的ikev2/config-payload/hosts/moon/etc/strongswan.conf配置文件中,配置了两个dns域名,分别为vinnetou和venus,其值为:10.1.0.20和192.168.0.150。
charon {
load = random nonce aes sha1 sha2 pem pkcs1 curve25519 gmp x509 curl revocation hmac stroke kernel-netlink socket-default updown attr
dns1 = PH_IP_WINNETOU
dns2 = PH_IP_VENUS
}
测试准备阶段
配置文件:ikev2/config-payload/pretest.dat,主要是ipsec连接的启动,不再累述。
测试阶段
配置文件:ikev2/config-payload/evaltest.dat。以下测试语句检查carol主机上strongswan的运行日志,匹配安装虚拟ip地址:PH_IP_CAROL1的信息。接下来在carol的接口eth0上确认此IP地址,以及检查路由表220中的去往10.1.0.0/16网段的源地址为PH_IP_CAROL1的路由信息。
以及确认/etc/resolv.conf文件中配置的DNS服务器信息,此处配置了两个DNS:PH_IP_WINNETOU和PH_IP_VENUS,参见moon网关的strongswan.conf配置文件。使用ping命令检查carol到主机alice的连通性。
carol::cat /var/log/daemon.log::installing new virtual IP PH_IP_CAROL1::YES
carol::ip addr list dev eth0::PH_IP_CAROL1::YES
carol::ip route list table 220::10.1.0.0/16.*src PH_IP_CAROL1::YES
carol::cat /etc/resolv.conf::nameserver PH_IP_WINNETOU .*by strongSwan::YES
carol::cat /etc/resolv.conf::nameserver PH_IP_VENUS .*by strongSwan::YES
carol::ping -c 1 PH_IP_ALICE::64 bytes from PH_IP_ALICE: icmp_.eq=1::YES
以下为在主机dave上进行的测试语句,与以上主机carol上的测试类似。
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 PH_IP_DAVE1::YES
dave:: ip addr list dev eth0::PH_IP_DAVE1::YES
dave:: ip route list table 220::10.1.0.0/16.*src PH_IP_DAVE1::YES
dave:: ping -c 1 PH_IP_ALICE::64 bytes from PH_IP_ALICE: icmp_.eq=1::YES
以下为在carol主机上strongswan进程的日志文件的部分信息,显示了DNS和虚拟IP的安装日志。
carol charon: 13[IKE] installing DNS server 192.168.0.150 to /etc/resolv.conf
carol charon: 13[IKE] installing DNS server 10.1.0.20 to /etc/resolv.conf
carol charon: 13[IKE] installing new virtual IP 10.3.0.1
由下图tcpdump抓取的报文(已解密)可见,alice主机在IKE_AUTH Initiator Request报文中携带了Configuration(47)载荷,其中的类型为:CFG_REQUEST(1),这里有两个请求的配置属性:INTERNAL_IP4_ADDRESS和INTERNAL_IP4_DNS。
在moon网关的回复报文IKE_AUTH Responder Response中,携带了回复的Configuration载荷,其中类型为:CFG_REPLY(2),三个配置属性,分别为虚拟IP地址和两个DNS服务器地址。如下所示。
最后关于strongswan使用的默认路由表220,也可在编译配置strongswan代码时进行修改,如下为文件strongswan-5.8.1/configure中关于routing_table的内容,默认使用220。
--with-routing-table=arg
set routing table to use for IPsec routes (default:
220).
--with-routing-table-prio=arg
set priority for IPsec routing table (default: 220).
另外,还可在配置文件strongswan.conf中修改所使用的路由表。
# Options for the charon IKE daemon.
charon {
# Numerical routing table to install routes to.
# routing_table =
# Priority of the routing table.
# routing_table_prio =
}
以下为测试ping报文。
strongswan测试版本: 5.8.1
END