0585b53530
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead. Highlighted texts are now emphasized by "emphasize-lines" option of the code-block directive. Co-Authored-By: Akihiro Motoki <amotoki@gmail.com> Change-Id: I552171fe3e22290580e2cdff20adccf655573d03
60 lines
2.0 KiB
Bash
Executable File
60 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
EXT_NW_ID=`openstack network show public -c id -f value`
|
|
EXTERNAL_SUBNET_IP_VERSION='v4'
|
|
WEST_SUBNET='192.168.1.0/24'
|
|
EAST_SUBNET='192.168.2.0/24'
|
|
|
|
function setup_site(){
|
|
local site_name=$1
|
|
local cidr=$2
|
|
openstack network create net_$site_name
|
|
openstack subnet create --network net_$site_name --subnet-range $2 subnet_$site_name
|
|
openstack router create router_$site_name
|
|
openstack router add subnet router_$site_name subnet_$site_name
|
|
openstack router set --external-gateway $EXT_NW_ID router_$site_name
|
|
openstack vpn service create --subnet subnet_$site_name --router router_$site_name vpn_$site_name
|
|
}
|
|
|
|
function get_external_ip(){
|
|
echo `openstack vpn service show $1 -c external_${EXTERNAL_SUBNET_IP_VERSION}_ip -f value`
|
|
}
|
|
|
|
function clean_site(){
|
|
local site_name=$1
|
|
openstack vpn ipsec site connection delete conn_$site_name
|
|
openstack vpn service delete vpn_$site_name
|
|
openstack router unset --external-gateway router_$site_name
|
|
openstack router remove subnet router_$site_name subnet_$site_name
|
|
openstack router delete router_$site_name
|
|
openstack subnet delete subnet_$site_name
|
|
openstack network delete net_$site_name
|
|
}
|
|
|
|
function setup(){
|
|
openstack vpn ike policy create ikepolicy1
|
|
openstack vpn ipsec policy create ipsecpolicy1
|
|
setup_site west $WEST_SUBNET
|
|
WEST_IP=$(get_external_ip vpn_west)
|
|
setup_site east $EAST_SUBNET
|
|
EAST_IP=$(get_external_ip vpn_east)
|
|
openstack vpn ipsec site connection create \
|
|
--vpnservice vpn_east --ikepolicy ikepolicy1 --ipsecpolicy ipsecpolicy1 \
|
|
--peer-address $WEST_IP --peer-id $WEST_IP --peer-cidr $WEST_SUBNET \
|
|
--psk secret conn_east
|
|
openstack vpn ipsec site connection create \
|
|
--vpnservice vpn_west --ikepolicy ikepolicy1 --ipsecpolicy ipsecpolicy1 \
|
|
--peer-address $EAST_IP --peer-id $EAST_IP --peer-cidr $EAST_SUBNET \
|
|
--psk secret conn_west
|
|
}
|
|
|
|
function cleanup(){
|
|
clean_site west
|
|
clean_site east
|
|
openstack vpn ike policy delete ikepolicy1
|
|
openstack vpn ipsec policy delete ipsecpolicy1
|
|
}
|
|
|
|
cleanup
|
|
setup
|