VPN隧道技术实战

任务一、使用IP命令搭建基于隧道的虚拟专有网络

【任务描述】

本实验任务基于真实企业网络环境,在两台不同网络环境的环境中,主要完成以下内容:

实现两不同网络内的内网通过ip隧道使之互通并检测。

【实验目标】

了解企业网络环境如何使不同网络之间内网互通。
掌握ip 命令的使用。
掌握虚拟私有网络实现方法。

【实验工具】

  • ip
  • modprobe

【操作步骤】

1. 双击桌面Xshell5图标,在弹出的界面登陆主机192.168.1.11和192.168.2.11这两台主机.密码为Simplexue123:

image-20230405233539460

分别修改主机名:

# hostnamectl set-hostname vpn1
# hostnamectl set-hostname vpn2

image-20230405233807905

image-20230405233840009

重新登陆两台主机后如下图:

image-20230405234132520

2.vpn1和vpn2主机分别加载gre内核模块并检查

加载ip_gre内核模块

[root@vpn1 ~]# modprobe ip_gre

查询ip_gre模块是否加载,如图所示已正常加载:

[root@vpn1 ~]# lsmod | grep gre

image-20230405234409113

vpn2也做同样设置

3.配置tunnel(GRE隧道)使它们互通

vpn1创建一个GRE类型隧道设备gre1, 并设置对端IP为192.168.2.11。隧道数据包将被从192.168.1.11也就是本地IP地址发起,其TTL字段被设置为255。隧道设备分配的IP地址为10.10.10.1,掩码为255.255.255.0。

3.1 创建GRE类型隧道设备gre1,并验证是否添加成功:
[root@vpn1 ~] ip tunnel add gre1 mode gre remote 192.168.2.11 local 192.168.1.11 ttl 255
[root@vpn1 ~] ip a | grep gre1

image-20230405234953389

3.2 启动gre1并分配ip地址10.10.10.1,检测是否添加并启动:
# ip link set gre1 up
# ip addr add 10.10.10.1/24 dev gre1
# ip a | grep gre1

image-20230405235300603

3.3 查看隧道状态,如图7所示:

image-20230405235454043

3.3 vpn2创建一个GRE类型隧道设备gre1, 并设置对端IP为192.168.1.11。隧道数据包将被从192.168.2.11也就是本地IP地址发起,其TTL字段被设置为255。隧道设备分配的IP地址为10.10.10.2,掩码为255.255.255.0。

操作步骤如下:

# ip tunnel add gre1 mode gre remote 192.168.1.11 local 192.168.2.11 ttl 255
# ip link set gre1 up
# ip addr add 10.10.10.2/24 dev gre1
# ip a | grep gre1

image-20230405235816556

3.4 测试隧道是否通:

ping检测

image-20230405235931606

4.卸载GRE模块
# () ip_gre

image-20230406000128198

任务二、使用加密工具OpenSSL创建加密密钥

【任务描述】

本实验主要是用来了解openssl 的使用及原理,通过本实验可以了解如何实现秘钥证书管理、对称加密和非对称加密。

【实验目标】

1.了解openssl加密解密原理。
2.掌握openssl如何生成公钥私钥,以及公私钥之间的相互转化。
3.掌握如何用openssl生成带密码的公钥私钥,以及之间的加密解密。
4.掌握如何生成带签名信息的证书。

【实验工具】

  • openssl

【操作步骤】

1.查看openssl命令的基本帮助
[root@vpn1 ~]# openssl genrsa -
//密钥位数,建议1024及以上
usage: genrsa [args] [numbits]
//生成的密钥使用des方式进行加密
 -des            encrypt the generated key with DES in cbc mode
//生成的密钥使用des3方式进行加密
 -des3           encrypt the generated key with DES in ede cbc mode (168 bit key)
 -idea           encrypt the generated key with IDEA in cbc mode
//生成的密钥还是要seed方式进行
 -seed           encrypt PEM output with cbc seed
//生成的密钥使用aes方式进行加密
 -aes128, -aes192, -aes256 encrypt PEM output with cbc aes
//生成的密钥使用camellia方式进行加密
 -camellia128, -camellia192, -camellia256
                 encrypt PEM output with cbc camellia
//生成的密钥文件,可从中提取公钥
 -out file       output the key to 'file
//指定密钥文件的加密口令,可从文件、环境变量、终端等输入
 -passout arg    output file pass phrase source
//选择指数e的值,默认指定该项,e值为65537
 -f4             use F4 (0x10001) for the E value
//选择指数e的值,默认值为65537,使用该选项则指数指定为3
 -3              use 3 for the E value
//指定三方加密库或者硬件
 -engine e       use engine e, possibly a hardware device.
//产生随机数的种子文件
 -rand file:file:...
                 load the file (or the files in the directory) into
                 the random number generator

image-20230407210652320

2.生成私钥
2.1 生产RSA私钥(无加密) shell [root@vpn1 ~]# openssl genrsa -out rsa_private.key 2048 [root@vpn1 ~]# ll rsa_private.key

image-20230407210949797

2.2 生成rsa_private.key私钥对应的公钥 shell [root@vpn1 ~]# openssl rsa -in rsa_private.key -pubout -out rsa_public.key [root@vpn1 ~]# ll rsa_public.key

image-20230407211248466

3.生成RSA含密码(使用aes256加密)公私钥

# 其中 passout 代替shell 进行密码输入,否则会提示输入密码

[root@vpn1 ~]# openssl genrsa -aes256 -passout pass:simple -out rsa_aes_private.key 2048

# 生成其对应的公钥,需要输入密码,其中 pass 代替shell 进行密码输入,否则会提示输入密码;

[root@vpn1 ~]# openssl rsa -in rsa_aes_private.key -passin pass:simple -pubout -out rsa_aes_public.key
[root@vpn1 ~]# ll rsa_*

image-20230407211647176

4.加密与非加密之间的转换 shell # 私钥转非加密 openssl rsa -in rsa_aes_private.key -passin pass:simple -out rsa_private.key # 私钥转加密 openssl rsa -in rsa_private.key -aes256 -passout pass:simple -out rsa_aes_private.key

image-20230407213656477

5.生成自签名证书

# 生成 RSA 私钥和自签名证书
# req是证书请求的子命令,-newkey rsa:2048 -keyout private_key.pem 表示生成私钥(PKCS8格式),-nodes 表示私钥不加密,若不带参数将提示输入密码;-x509表示输出证书,-days365 为有效期,此后根据提示输入证书拥有者信息;

openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt

# 若执行自动输入,可使用-subj选项:

openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt -subj "/C=CN/ST=BJ/L=BJ/O=simpleedu/OU=edu/CN=simple/emailAddress=simple@simpleedu.com"

# 使用 已有RSA 私钥生成自签名证书
# -new 指生成证书请求,加上-x509 表示直接输出证书,-key 指定私钥文件,其余选项与上述命令相同

openssl req -new -x509 -days 365 -key rsa_private.key -out cert.crt

根据提示输入相应的信息即可

image-20230407214614273

6.生成签名请求及CA 签名 shell # 使用 RSA私钥生成 CSR 签名请求 openssl () -aes256 -passout pass:simpleedu -out server.key 2048 openssl req -new -key server.key -out server.csr * 此时生成的 csr签名请求文件可提交至 CA进行签发*

image-20230407215336805

任务三、SSL VPN之OpenVPN的安装配置

【任务描述】

本实验任务基于真实企业网络环境,在两台台服务器搭建的典型企业局域网环境中,主要完成以下内容:
(1)搭建openvpn服务端与客户端。
(2)实现客户端可访问服务端机器

【实验目标】

1.了解企业级别openvpn的使用场景。
2.掌握企业级别openvpn搭建和使用。
3.掌握openvpn客户端与服务端的搭建配置。

【实验工具】

  • openvpn

【操作步骤】

1.在vpn1机器安装openvpn并验证
[root@vpn1 ~]# yum clean all
[root@vpn1 ~]# yum install openvpn -y

image-20230407220501464

```shell [root@vpn1 ~]# rpm -qa | grep openvpn ```

image-20230407220612241

2.修改openvpn的配置文件server.conf配置文件的内容如下
2.1 拷贝模板文件到配置文件目录下 shell [root@vpn1 ~]# cp /usr/share/doc/openvpn-2.4.4/sample/sample-config-files/server.conf /etc/openvpn/ [root@vpn1 ~]# ls /etc/openvpn/server.conf

image-20230407221039229

2.2 修改openvpn服务端的配置文件 /etc/openvpn/server.conf shell [root@vpn1 ~]# vim /etc/openvpn/server.conf
2.2.1 指定TCP协议(使用TCP协议如果连接上VPN后网络很慢,可以更改成使用UDP协议)

image-20230407221241445

2.2.2 打开这三行注释,配置DNS(实验环境无法连通外网,可不配置)

img

2.2.3 设置启动用户

image-20230407221534514

2.2.4 注释掉 explicit-exit-notify 1

image-20230407221720959

3.安装密钥生成软件 shell [root@vpn1 ~]# yum install easy-rsa -y

image-20230407221841040

4.准备配置证书文件
4.1 拷贝文件到/etc/openvpn shell [root@vpn1 ~]# cp -r /usr/share/easy-rsa/ /etc/openvpn/ [root@vpn1 ~]# ls /etc/openvpn/easy-rsa/

image-20230407222117681

4.2 配置生成证书的环境变量.并使之生效 shell [root@vpn1 ~]# vim /etc/openvpn/easy-rsa/2.0/vars # 现只修改如下几条,可根据自己情况进行修改 shell export KEY_COUNTRY="CN" export KEY_PROVINCE="BJ" export KEY_CITY="BEIJING" export KEY_ORG="SimpleEdu" export KEY_EMAIL="simpleedu@simple.com" export KEY_OU="MyOrganizationalUnit"

image-20230407223624814

使配置的环境变量生效 shell [root@vpn1 ~]# cd /etc/openvpn/easy-rsa/2.0/ [root@vpn1 2.0]# source vars

image-20230407223825097

4.3 根据提示先删除所有,再根据自己情况进行修改(默认回车即可)
[root@vpn1 2.0]# cd /etc/openvpn/easy-rsa/2.0/
[root@vpn1 2.0]# source vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys
[root@vpn1 2.0]# ./clean-all
[root@vpn1 2.0]# ./build-ca

image-20230407224154347

5.建服务端的证书 创建通用名(common name)为”server”的证书文件,交互输入自己的值,回车键进行,在提示输入密码的地方,设置一个密码如simple123 shell [root@vpn1 2.0]# ./build-key-server server

image-20230410143141764

image-20230410143224148

生成防攻击的key文件(防DDos攻击、UDP淹没等恶意攻击) shell [root@vpn1 2.0]# openvpn --genkey --secret keys/ta.key [root@vpn1 2.0]# ll keys/ta.key

image-20230410143355745

6.建客户端证书
6.1.创建密钥文件,耗时间一分钟左右 shell [root@vpn1 2.0]# ./build-dh

image-20230410143528304

可以看到有一个dh2048.pem的文件产生

image-20230410143642554

6.2 拷贝密钥认证文件到配置文件目录下 shell [root@vpn1 2.0]# cd /etc/openvpn/easy-rsa/2.0/keys/ [root@vpn1 keys]# cp dh2048.pem ca.crt server.crt server.key ta.key /etc/openvpn

image-20230410143920847

6.3 创建一个通用名(common name)为 client的客户端证书,交互输入自己的值,默认回车键进行 shell [root@vpn1 keys]# cd .. [root@vpn1 2.0]# ./build-key client [root@vpn1 2.0]# ll keys/client.*

image-20230410144218661

image-20230410144249486

image-20230410144336391

7.启动并检查 7.1 启动openvpn服务并设置为开机自启动

# 启动openvpn服务

[root@vpn1 ~]# systemctl start openvpn@server.service

# 设置开机自启动

[root@vpn1 ~]# systemctl (  ) openvpn@server.service

# 查看状态

[root@vpn1 ~]# systemctl status openvpn@server.service

image-20230410144703860

# 检查是否启动

[root@vpn1 ~]# netstat -lntup | grep openvpn

image-20230410144852256

# 如下所示表示正常启动

tcp        0      0 0.0.0.0:1194            0.0.0.0:*               LISTEN      8870/openvpn
8.客户端(vpn2)登录测试
8.1 在客户端安装openvpn shell [root@vpn2 ~]# yum install openvpn -y
8.2 在vpn1端把生产文件拷贝到客户端 shell [root@vpn1 keys]# cd /etc/openvpn/easy-rsa/2.0/keys/ # 密码为Simplexue123 shell [root@vpn1 keys]# scp ca.crt client.crt client.key ta.key 192.168.2.11:/etc/openvpn/client/

image-20230410145551830

8.3 编辑客户端配置文件 shell [root@vpn2 ~]# vim /etc/openvpn/client/client.conf client dev tun proto tcp remote 192.168.1.11 1194 resolv-retry infinite nobind persist-key persist-tun ca /etc/openvpn/client/ca.crt cert /etc/openvpn/client/client.crt key /etc/openvpn/client/client.key tls-auth /etc/openvpn/client/ta.key 1 cipher AES-256-CBC verb 3 mute 20

image-20230410150623183

8.4 启动openvpn客户端并挂后台运行,并可实时查看其日志。 shell [root@vpn2 client]# cd /etc/openvpn/client/ [root@vpn2 client]# openvpn /etc/openvpn/client/client.conf &

image-20230410150800738

8.5 查看网卡信息,得知已获取到ip shell [root@vpn2 ~]# ip addr show tun0

image-20230410150854028

8.6 测试是否可使用 shell [root@vpn2 client]# ping 10.8.0.1

image-20230410150949597

8.7 openvpn nat配置 shell [root@vpn1 ~]# iptables -t nat -A POSTROUTING -s 10.8.0.1/24 -j MASQUERADE

image-20230410151344597

在vpn2上测试 shell [root@vpn2 ~]# ping -c 1 www.baidu.com

image-20230410151445873

注:实验环境不能外网, 访问百度只是为了验证策略 vpn1上验证策略

8.8 关闭服务 shell [root@vpn1 ~]# pkill openvpn [root@vpn2 ~]# pkill openvpn

image-20230410151553359

任务四、IPsecVPN原理及安装配置

【任务描述】

本实验任务基于真实企业网络环境,在两台台服务器搭建的典型企业局域网环境中,主要完成以下内容:
(1)搭建ipsec服务端与客户端。
(2)实现客户端可访问服务端机器

【实验目标】

1.了解企业级别ipsec的使用场景。
2.掌握企业级别ipsec搭建和使用。
3.掌握ipsec客户端与服务端的搭建配置。
4.掌握ipsec多种验证方式的实现

【实验工具】

  • ipsec
  • openssl

【操作步骤】

1.调整内核参数,开启数据转发,关闭icmp重定向并使之生效。(VPN1和VPN2机器都要做)

# 将下面配置文件加入/etc/sysctl.conf

[root@vpn1 ~]# vim  /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.eth1.accept_redirects = 0
net.ipv4.conf.eth1.send_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.lo.send_redirects = 0

image-20230410152648066

# 使配置生效

[root@vpn1 ~]# sysctl -p

image-20230410152800418

在VPN2上也做以上操作

image-20230410153000952

2.安装openswan、libreswan并验证安装。(VPN1和VPN2机器都要做)
2.1 安装并验证,两台机器都做
[root@vpn1 ~]# yum install openswan libreswan  -y
[root@vpn1 ~]# ipsec --version
Linux Libreswan U3.20/K(no kernel code presently loaded) on 3.10.0-693.5.2.el7.x86_64

image-20230410153140370

image-20230410153155349

VPN2上也进行相同的操作

2.2 启动服务看是否正常,显示如图测正常,若不是请检查内核配置文件,两台机器都验证。
[root@vpn1 ~]# systemctl start ipsec.service
[root@vpn1 ~]# ipsec verify

image-20230410153450545

```shell [root@vpn1 ~]# netstat -lntup | grep pluto ```openswan监听在UDP的500和4500两个端口,其中500是用来IKE密钥交换协商,4500的NAT-T是nat穿透的

image-20230410154833727

3.配置ipsecVPN配置(模式为network-to-network),下面介绍两种认证方式
3.1基于pre-shared keys认证方式(PSK) 配置/etc/ipsec.conf配置文件末尾增加如下(VPN1和VPN2的配置问件相同)
conn net-to-net
	ike=aes256-sha2_256;modp2048
    phase2alg=aes256-sha2_256;modp2048
    # 使用预共享密钥方式进行认证
    authby=secret
    type=tunnel
    # 一端IP地址
    left=192.168.1.11
    # 一端内网网段地址
    leftsubnet=10.0.0.0/24
    # 一端的标识符,可以任意填写,如果多个连接需要区分
    leftid=@vpn1
    leftnexthop=%defaultroute
    right=192.168.2.11
    rightsubnet=10.0.1.0/24
    rightid=@vpn2
    rightnexthop=%defaultroute
    # add代表只是添加,但并不会连接,如果为start则代表着启动自动连接
    auto=add

image-20230410155810755

3.2 两台机器是基于密码来配置的,修改VPN1和VPN2的密码配置文件,分别如下

# VPN1如下

[root@vpn1 ~]# cat /etc/ipsec.secrets 
include /etc/ipsec.d/*.secrets
192.168.1.11 %any 0.0.0.0 : PSK "123"

image-20230410160357272

# VPN2如下

[root@vpn2 ~]# cat /etc/ipsec.secrets 
include /etc/ipsec.d/*.secrets
192.168.2.11 %any 0.0.0.0 : PSK "123"

image-20230410160523117

3.3 两端重新启动服务,并验证。

VPN1

[root@vpn1 ~]# systemctl restart   ipsec.service
[root@vpn1 ~]# ipsec auto --up net-to-net

VPN2

[root@vpn2 ~]# systemctl restart   ipsec.service
[root@vpn2 ~]# ipsec auto --up net-to-net

必须两台都执行,否则不能成功。
显示IPsec SA established tunnel mode 表示连接成功

image-20230410161002251

3.4 测试是否可用 由于只有两台机器,我们搭建虚拟内网网络来测试。 在VPN1上搭建虚拟网络10.0.0.1/24 (步骤了解即可) shelll [root@vpn1 ~]# ip link add left1 type veth peer name left2 [root@vpn1 ~]# ip netns add left [root@vpn1 ~]# ip link set left1 netns left [root@vpn1 ~]# ip link set left2 up [root@vpn1 ~]# ip addr add dev left2 10.0.0.1/24 [root@vpn1 ~]# ip netns exec left ip link set lo up [root@vpn1 ~]# ip netns exec left ip link set left1 up [root@vpn1 ~]# ip netns exec left ip addr add dev left1 10.0.0.2/24 [root@vpn1 ~]# ip netns exec left ip route add default via 10.0.0.1 查看虚拟网络,可知绑定IP为10.0.0.2 shell [root@vpn1 ~]# ip netns exec left ip a

image-20230410161952061

在VPN2上搭建虚拟网络10.0.1.1/24 (步骤了解即可) shell [root@vpn2 ~]# ip link add left1 type veth peer name left2 [root@vpn2 ~]# ip netns add left [root@vpn2 ~]# ip link set left1 netns left [root@vpn2 ~]# ip link set left2 up [root@vpn2 ~]# ip addr add dev left2 10.0.1.1/24 [root@vpn2 ~]# ip netns exec left ip link set lo up [root@vpn2 ~]# ip netns exec left ip link set left1 up [root@vpn2 ~]# ip netns exec left ip addr add dev left1 10.0.1.2/24 [root@vpn2 ~]# ip netns exec left ip route add default via 10.0.1.1 查看虚拟网络,可知绑定IP为10.0.1.2 shell [root@vpn2 ~]# ip netns exec left ip a

image-20230410162751441

在VPN1上PING测试,可见可以ping通 shell [root@vpn1 ~]# ip netns exec left ping 10.0.1.2

image-20230410162817108

4.基于RSA Signature认证方式(RSA数字签名) 上面的认证方式是基于密码,现对不安全,现介绍如何使用数字签名模式认证
4.1 在VPN1和VPN2上分别生成一个新的RSA密钥对,记住后面的key,后面会用到 shell [root@vpn1 ~]# rm -f /dev/random [root@vpn1 ~]# ln -s /dev/urandom /dev/random [root@vpn1 ~]# ipsec () --output /etc/ipsec.secrets /usr/libexec/ipsec/newhostkey: WARNING: file "/etc/ipsec.secrets" exists, appending to it Generated RSA key pair with CKAID 040654194d738b0fc942ec2bb8aa9abb7624149c was stored in the NSS database
[root@vpn1 ~]# ipsec ()--left --ckaid 040654194d738b0fc942ec2bb8aa9abb7624149c
leftrsasigkey=0sAwEAAbUpvs46MbqUxc8bzuU58C0H+tMdYj+JrexW8O3f6WmAIhfNXraG6RBuEchvUePABQGH4eCIlxFj6xRLWnndE4HGOEGFds/ogtG6jmUaE93FXiSby2Ucefm/1DldzNHfneQONo0grR86XWisKgxeV7YjUaqJUFTbYa2iDrivPNqkGqykP6aNpRXk4Kv49mKRKEgGFDpC/82qa45hh6ItL0Itq9QkTDqUQxzcA9fp8rz1adfUAOCKZaXMNfaD7zeaI+gJKyX3D7lb0h/7Nb8qwloaK1kE3BHvrUDZflqlE26NG/+Qfki8a/cp1sfphySmrtSaORKraDwspFZPF3jgeZO98rpiv43sNL1oUOBLwMzRWkZ6K4moMSKcrc32JKXu54klWxjVzVYnR+VOLpB4mPW+gPG9Rbi79VzfAsy2aTTKB73mOqHM6LrkMPo09OFTlfRTwKdG5nz1gjilYvYdi+uLQAdHZvYA2BhoSG2UC5mPC2sHwjLt39dcnq7+I2yyiePYECRGXtCveymJfOBlP1oA1LmkXq5HabgCgqRXDFK7IqkQzkaik+pox8xGrBYNBkrJeokjJ7+QkkFsl3eAKQS5ITp0XGmg6y1ltU7QcRbhKkLndJ9ZcaIWJw==

image-20230410163209735

VPN2 操作同VPN1

image-20230410163403733

4.2 修改VPN1和VPN2的配置文件如下图(两机器配置文件相同) vim /etc/ipsec.conf
conn net-to-net
    # 一端IP地址
    left=192.168.1.11
    # 一端内网网段地址
    leftsubnet=10.0.0.0/24
    # 一端的标识符,可以任意填写,如果多个连接需要区分
    leftid=@vpn1
    leftnexthop=%defaultroute
    leftrsasigkey=0sAwEAAbUpvs46MbqUxc8bzuU58C0H+tMdYj+JrexW8O3f6WmAIhfNXraG6RBuEchvUePABQGH4eCIlxFj6xRLWnndE4HGOEGFds/ogtG6jmUaE93FXiSby2Ucefm/1DldzNHfneQONo0grR86XWisKgxeV7YjUaqJUFTbYa2iDrivPNqkGqykP6aNpRXk4Kv49mKRKEgGFDpC/82qa45hh6ItL0Itq9QkTDqUQxzcA9fp8rz1adfUAOCKZaXMNfaD7zeaI+gJKyX3D7lb0h/7Nb8qwloaK1kE3BHvrUDZflqlE26NG/+Qfki8a/cp1sfphySmrtSaORKraDwspFZPF3jgeZO98rpiv43sNL1oUOBLwMzRWkZ6K4moMSKcrc32JKXu54klWxjVzVYnR+VOLpB4mPW+gPG9Rbi79VzfAsy2aTTKB73mOqHM6LrkMPo09OFTlfRTwKdG5nz1gjilYvYdi+uLQAdHZvYA2BhoSG2UC5mPC2sHwjLt39dcnq7+I2yyiePYECRGXtCveymJfOBlP1oA1LmkXq5HabgCgqRXDFK7IqkQzkaik+pox8xGrBYNBkrJeokjJ7+QkkFsl3eAKQS5ITp0XGmg6y1ltU7QcRbhKkLndJ9ZcaIWJw==
    right=192.168.2.11
    rightsubnet=10.0.1.0/24
    rightid=@vpn2
    rightnexthop=%defaultroute
    rightrsasigkey=0sAwEAAa8cMIBatj+qSxIv+fg75elY9Vbw2lKNnap4rDsVXrS/gRb65I/IQpbjLswePCOllJ1jF5Y3HDOBTBR4wDGWpVlhY5laKnxQnFPeFMeqdCY6p7NWqN4Khf2Pl6YRo5zPe3P0PXuykv0Ns3ga11EEe/NNmwzL8J/9rd3yxbOIH9/lEaKh6pds0ys6aFZH0V0pwNnc7yg0ESKJ9i+uSDVEeDa+OubQv7+lBGuvCxVjhd/bHaqhGTw2UTw001q+zW4T9qGYuctOn5MWAHZsFXAnKu3wwPGMdHpsVbnZjtIPvsKuuD339H42mGAZ6NM2MLSLbZEaVMnaSv3bdVMBjMCe7ur4/N8suJqmZOofPGBCfV0AkLS5Z6J45eERdHxzmweaeprkamfS8nyMxwJeI7ovHiRfh1+jAufCGdeJ9YgMj4mmeVijLqepsmf0WVhga4XOXiLzRcUtE/DKOvHrE9x9QrWeFQwoQ/fOCLvh40iIn80ggZibeuROqhhU8ms4uers4IRhrhAF4ZUCqcxuHm/viNT0nJ6nN3tKfgp0Yc87S4+xA7S5920iQ/YKGMFF58k1TDQOes8la3yWnPBo4O+WegJDtbvyEXk=
    # add代表只是添加,但并不会连接,如果为start则代表着启动自动连接
    auto=add

img

image-20230410164058970

image-20230410164333147

4.3 重新启动服务

VPN1和VPN2都执行下列操作

[root@vpn1 ~]# systemctl restart  ipsec.service
[root@vpn1 ~]# ipsec auto --up net-to-net

image-20230410161002251

注:必须两台都执行,否则不能成功。
显示IPsec SA established tunnel mode 表示连接成功

4.4 检测

在VPN1上PING测试,可见可以ping通

[root@vpn1 ~]# ip netns exec left ping 10.0.1.2

image-20230410165036750

5.在VPN1和VPN2上清除虚拟内网,停止服务。两台机器都执行。 shell [root@vpn1 ~]# ip netns del left [root@vpn1 ~]# systemctl stop ipsec

image-20230410165231585

image-20230410165242110

任务五、云计算中基于Overlay技术的隧道网络实现

【任务描述】

本实验任务基于真实企业网络环境,在两台台服务器搭建的典型企业局域网环境中,主要完成以下内容:
(1)搭建overlay网络实现不同宿主机之间同网段机器相通。
(2)检测网络联通性。

【实验目标】

1.了解overlay网络的使用场景。
2.掌握overlay搭建和使用。
3.掌握openvswitch的使用。

【实验工具】

  • openvswitch

【操作步骤】

1.在VPN1和VPN2分别安装openvswitch并启动服务

# 安装openvswitch

[root@vpn1 ~]# yum install openvswitch -y

image-20230410192913897

# 启动服务

[root@vpn1 ~]# systemctl start openvswitch.service

# 查看服务状态

[root@vpn1 ~]# systemctl status openvswitch.service

image-20230410193147281

VPN2同理

2.配置VPN1

# 在VPN1上添加名为br0的网桥:

ovs-vsctl add-br br0

# 给br0网桥分配一个ip

ifconfig br0 10.1.0.1/24 up

image-20230410193536690

3.配置VPN2

# 在VPN1上添加名为br0的网桥:

ovs-vsctl add-br br0

# 给br0网桥分配一个ip

ifconfig br0 10.1.0.2/24 up

image-20230410193603628

4.搭建VXLAN隧道

# 在VPN1上设置VXLAN,远端ip设置为VPN2能对外通信的br0的ip。

ovs-vsctl () br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=192.168.2.11

# 查看

ovs-vsctl show

image-20230410194016611

在Host2上设置VXLAN,远端ip设置为Host1能对外通信的br0的ip。

ovs-vsctl add-port br0 vx1 -- set interface vx1 type=vxlan options:remote_ip=192.168.1.11

# 查看

ovs-vsctl show

image-20230410194227293

5.验证VxLAN隧道 在VPN1上ping 10.1.0.2 发现可以通

image-20230410194332363

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值