VPNAAS 连通两个子网

匿名 (未验证) 提交于 2019-12-03 00:27:02
一、环境准备:
为了测试 VPN 的功能,我搭建了两套 OpenStack 的环境,实现两套环境(A,B)的私网互通。
其中 192.168.3.99 和 192.168.3.110 两个IP始终是能互相 ping 通的。


下面我们开始准备环境A:

A-1 修改网络配置文件
vim /etc/network/interfaces

配置文件中约定了启动ens33这块物理网卡但是没有IP地址(这块网卡一定要启用)
配置文件中约定了启动br-ens33这块虚拟网卡,并制定一个外网IP-192.168.3.99,在我的环境中这个IP是能访问外网的。这里你可能会疑惑这块虚拟网卡我没有啊,不用担心,后面有步骤会创建这块网卡。

A-2 创建虚拟网卡
ovs-vsctl add-br br-ens33
把物理网卡作为端口加入到新增的这块虚拟网卡
ovs-vscrl add-port br-ens33 ens33

到此环境A的网络基础环境就配好了,重启A机器,重启完成后
登录 ssh root@192.168.3.99, 如果不能登录检查 A-1 步骤的 ens33 网卡是否启用


下面我们开始准备环境B:

B-1 修改网络配置文件
vim /etc/network/interfaces

配置文件中约定了启动ens33这块物理网卡但是没有IP地址(这块网卡一定要启用)
配置文件中约定了启动br-ens33这块虚拟网卡,并制定一个外网IP-192.168.3.110,在我的环境中这个IP是能访问外网的。这里你可能会疑惑这块虚拟网卡我没有啊,不用担心,后面有步骤会创建这块网卡。

A-2 创建虚拟网卡
ovs-vsctl add-br br-ens33
把物理网卡作为端口加入到新增的这块虚拟网卡
ovs-vscrl add-port br-ens33 ens33

到此环境A的网络基础环境就配好了,重启A机器,重启完成后
登录 ssh root@192.168.3.110, 如果不能登录检查 B-1 步骤的 ens33 网卡是否启用



二、A环境的OpenStack创建网络如下:

external 网络类型是 flat,
子网为 192.168.3.0/24 地址范围为192.168.3.120-192.168.3.125. 网桥bt-ens33的IP和这个子网在同一网络。
创建flat网络的时候需要指定【物理网络】,【物理网络】需要填写你配置里面对应写的,下面是我的配置文件:
文件 【/etc/neutron/plugins/ml2/openvswitch_agent.ini】的

文件 【/etc/neutron/plugins/ml2/ml2_conf.ini】 的

从上面可以看到我有三块网桥, 其中
physnet_ens33 绑定的是网桥 bt-ens33, 用于创建 flat 网络
physnet_ens39 绑定的是网桥 bt-ens39, 用于创建 vlan 网络
physnet_ens40 绑定的是网桥 bt-ens40, 用于创建 vxlan 网络
所以我的 【物理网络】应该写 physnet_ens33。


三、B环境的OpenStack创建网络如下:

external 网络类型是 flat,
子网为 192.168.3.0/24 地址范围为192.168.3.126-192.168.3.130. 网桥bt-ens33的IP和这个子网在同一网络。
创建flat网络的时候需要指定【物理网络】,【物理网络】需要填写你配置里面对应写的,下面是我的配置文件:
文件 【/etc/neutron/plugins/ml2/openvswitch_agent.ini】的

文件 【/etc/neutron/plugins/ml2/ml2_conf.ini】 的

从上面可以看到我有三块网桥, 其中
physnet_ens33 绑定的是网桥 bt-ens33, 用于创建 flat 网络
physnet_ens39 绑定的是网桥 bt-ens39, 用于创建 vlan 网络
physnet_ens40 绑定的是网桥 bt-ens40, 用于创建 vxlan 网络
所以我的 【物理网络】应该写 physnet_ens33。


四、创建路由:
到这一步,A和B两套环境的Openstack网络环境为:

A B
external: 192.168.3.0/24 external: 192.168.3.0/24
private: 172.168.1.0/24 private: 172.168.2.0/24

如果没有配置VPN, A-172.168.1.0/24 和 B-172.168.2.0/24 是不通的。


在A环境中创建路由,external网络作为网关,private作为接口,A的路由外部网关地址为: 192.168.3.128,这个地址后面需要用到配置VPN。


在B环境中创建路由,external网络作为网关,private作为接口,A的路由外部网关地址为: 192.168.3.124,这个地址后面需要用到配置VPN。


五、创建VPN
A环境配置VPN:

A-1 创建 ike policies
只需要设置一个名称,其他都默认就好了。


A-2 创建 ipsec policies
只需要设置一个名称,其他都默认就好了。


A-3 创建 vpn service
创建 vpn service 可以指定子网,也可以不指定.
因为在创建 ipsec site connnection的时候可以指定
vpn service(不指定子网) + endpoint group 或 vpn service(指定子网) 两种方式。
我这里测试的时候采用的是 vpn service(不指定子网) + endpoint group 这种方式



A-4 创建 endpoint group
这里创建了两个endpoint group(172.16.1.0/24,172.16.2.0/24) .我们的目的就是实现这两个endpoint group互通
创建本地子网 172.16.1.0/24 为 endpoint group


创建远程网络 172.16.2.0/24 为 endpoint group



A-5 创建ipsec site connnection
PSK只是个密码,两边约定好就行。







B环境配置VPN:

B-1 创建 ike policies
只需要设置一个名称,其他都默认就好了。


B-2 创建 ipsec policies
只需要设置一个名称,其他都默认就好了。


B-3 创建 vpn service
创建 vpn service 可以指定子网,也可以不指定.
因为在创建 ipsec site connnection的时候可以指定
vpn service(不指定子网) + endpoint group 或 vpn service(指定子网) 两种方式。
我这里测试的时候采用的是 vpn service(不指定子网) + endpoint group 这种方式




B-4 创建 endpoint group
这里创建了两个endpoint group(172.16.1.0/24,172.16.2.0/24) .我们的目的就是实现这两个endpoint group互通
创建本地子网 172.16.2.0/24 为 endpoint group

创建远程网络 172.16.1.0/24 为 endpoint group




B-5 创建ipsec site connnection
PSK只是个密码,两边约定好就行。







六、到这里整套vpn配置就全部完成了,下面我们在

A环境创建一个实例绑定私网172.16.1.0/24


B环境创建一个实例绑定私网172.16.2.0/24



两台实例之间互相 ping 测试




测试通过。









易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!