StrongSwan虚拟测试环境搭建

隧道XFRM 专栏收录该内容
32 篇文章 2 订阅

全新安装的Ubuntu系统,版本:

$ cat /etc/issue
Ubuntu 18.04.3 LTS \n \l

$ 

StrongSwan的版本为: 5.8.1。

在搭建环境之前,更新一个apt系统,将sources.list文件中的如下行增加universe,以防在安装过程中找不到包。

$ sudo vi /etc/apt/sources.list
 
deb http://archive.ubuntu.com/ubuntu bionic main universe
deb http://archive.ubuntu.com/ubuntu bionic-security main universe
deb http://archive.ubuntu.com/ubuntu bionic-updates main universe 
 
$ sudo apt update

获取StrongSwan源码包:

$ wget https://download.strongswan.org/strongswan-5.8.1.tar.bz2
$ tar -xf strongswan-5.8.1.tar.bz2 

测试拓扑图如下:

在这里插入图片描述

编译安装StrongSwan:

$ sudo apt  install  gcc make
$ sudo apt  install  libgmp3-dev   // configure操作需要gmp库 
$
$ cd strongswan-5.8.1
$ ./configure
$ make
$ sudo make install

之后,安装测试环境所需的依赖包:

$ sudo apt-get install libssl-dev git
$ sudo apt-get install debootstrap  parted qemu-kvm e2fsprogs libvirt-bin
$ sudo apt-get install flex bison   // 编译内核使用
$ sudo apt-get install libelf-dev git

安装python相关包:

$ sudo apt-get install python python-pip libqt5organizer5 libnss-myhostname  unity-schemas virtualenv

升级pip,遇到以下问题:

$ pip install --upgrade pip
$
$ pip install --upgrade wheel     
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

修改/usr/bin/pip文件:

from pip import main
if __name__ == '__main__':
    sys.exit(main())
	
修改为:

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

再次安装wheel和setuptools:

$ sudo apt install wheel  python-setuptools

运行测试环境搭建脚本make-testing:

$ cd testing/
$ sudo ./make-testing

在运行make-testing脚本时,一直遇到找不到bdist_wheel的问题,安装了以上的python相关包之后,问题得以解决:

$ python
Python 2.7.15+ (default, Jul  9 2019, 16:51:35) 
[GCC 7.4.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>  
>>> 
>>> from wheel import bdist_wheel
>>> 
>>> bdist_wheel
<module 'wheel.bdist_wheel' from '/home/kai/.local/lib/python2.7/site-packages/wheel/bdist_wheel.pyc'>
>>> 

之后遇到找不到StrongSwan证书的问题,手动执行testing/scripts目录下build-certs脚本:

$ sudo apt install bindfs 
$
$ sudo ./scripts/build-certs

最后,运行testing目录下的脚本start-testing,启动测试环境:

$ sudo ./start-testing

一开始运行时遇到moon和sun虚拟机不能启动的问题,日志信息如下:

virsh create /home/unknown/work/strongswan-5.8.1/testing/config/kvm/sun.xml
error: Failed to create domain from /home/unknown/work/strongswan-5.8.1/testing/config/kvm/sun.xml
error: the CPU is incompatible with host CPU: Host CPU does not provide required features: monitor

将这两个虚拟机的配置与alice虚拟机配置比较,发现前两者多出了以下的cpu相关配置:

$ vi testing/config/kvm/sun.xml 

  <cpu>
    <model fallback='allow'>core2duo</model>
    <feature policy='optional' name='aes'/>
    <feature policy='optional' name='pclmuldq'/>
  </cpu>

删除了以上的几行之后,moon和sun可正常启动,但是还不知道由什么影响,后续进行测试。 另外,在启动测试虚拟环境时,遇到以下的警告信息,但是不影响正常启动,也就没有去解决:

$ sudo vi  /var/log/libvirt/qemu/alice.log 
  
2019-09-16T10:37:06.897218Z qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit 2]

虚拟测试环境编译脚本make-testing,分为四个阶段。testing.conf文件可配置四个阶段的开启和关闭,如下配置,如果baseimage和rootimage阶段已经编译完成,在guestkernel阶段出现问题,可使用如下配置重新执行make-testing脚本,而不被重新执行前两个阶段的构建,节省时间:

# Enable particular steps in the make-testing
#
: ${ENABLE_BUILD_BASEIMAGE=no}
: ${ENABLE_BUILD_ROOTIMAGE=no}
: ${ENABLE_BUILD_GUESTKERNEL=yes}
: ${ENABLE_BUILD_GUESTIMAGES=yes}

测试环境中的虚拟机的IP地址也在testing.conf中配置,默认如下:

: ${HOSTNAMEIPV4="\
alice,10.1.0.10,192.168.0.50 \
venus,10.1.0.20 \
moon,192.168.0.1,10.1.0.1 \
carol,192.168.0.100,10.3.0.1 \
winnetou,192.168.0.150 \
dave,192.168.0.200,10.3.0.2 \
sun,192.168.0.2,10.2.0.1 \
bob,10.2.0.10"}

可通过SSH登录各个虚拟机,root用户无密码, 如登录carol虚拟机:

$ ssh root@192.168.0.100
The authenticity of host '192.168.0.100 (192.168.0.100)' can't be established.
ECDSA key fingerprint is SHA256:t1b5dEQjOrAZ7GWTFJx1S1+VxqDfPYSFW93zFI3RcaU.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.100' (ECDSA) to the list of known hosts.
carol:~#

END

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

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

抵扣说明:

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

余额充值