dear all,
I am trying to compare OpenVPN and VPNaaS usage in OpenStack.

I want to be able to create a VPN between VMs deployed in a single Openstack 
cloud to ensure communication privacy and security.
I also want to be able to connect with my PC to the VPN.


To use OpenVPN, post install scripts  work well :
-A- I can see 2 interaces on each VM: the public one and the one associated to 
the VPN
-B- my own PC can easily join



I want to do the same using VPNaaS (the script is below)
But:
-1- VPN is created but its status is « DOWN »
-2- I don’t see any VPN interface inside VMs
-3- I don’t undersand how my PC could join the VPN



Any help welcome,
Oleg Lodygensky







usage() {
        echo "Usage: $0 [start | stop | status] <configName>"
        exit 1
}

writeVariable() {
        echo $* >> ${CONFIG_FILE}
}

start() {
        CONFIG_NAME=$2
        CONFIG_FILE=$2
        if [ -f ${CONFIG_FILE} ] ; then
                echo "VPNAAS error : config already exist. Cowardingly refusing 
to overwrite it"
                exit 1
        fi

        touch ${CONFIG_FILE}

        KEY="NET1"
        NET1="${CONFIG_NAME}_net1"
        VALUE="${NET1}"
        neutron net-create ${NET1} && writeVariable "${KEY}=${VALUE}"
        KEY="SUBNET1"
        SUBNET1="${CONFIG_NAME}_subnet1"
        VALUE="${SUBNET1}"
        neutron subnet-create --name ${SUBNET1} ${NET1} 10.100.0.0/24 --gateway 
10.100.0.1 && writeVariable "${KEY}=${VALUE}"
        KEY="ROUTER1"
        ROUTER1="${CONFIG_NAME}_router1"
        VALUE="${ROUTER1}"
        neutron router-create ${ROUTER1} && writeVariable "${KEY}=${VALUE}"
        neutron router-interface-add ${ROUTER1} ${SUBNET1}
        neutron router-gateway-set ${ROUTER1} public

        KEY="NET2"
        NET2="${CONFIG_NAME}_net2"
        VALUE="${NET2}"
        neutron net-create ${NET2} && writeVariable "${KEY}=${VALUE}"
        KEY="SUBNET2"
        SUBNET2="${CONFIG_NAME}_subnet2"
        VALUE="${SUBNET2}"
        neutron subnet-create --name ${SUBNET2} ${NET2} 20.200.0.0/24 --gateway 
20.200.0.2 && writeVariable "${KEY}=${VALUE}"
        KEY="ROUTER2"
        ROUTER2="${CONFIG_NAME}_router2"
        VALUE="${ROUTER2}"
        neutron router-create ${ROUTER2} && writeVariable "${KEY}=${VALUE}"
        neutron router-interface-add ${ROUTER2} ${SUBNET2}
        neutron router-gateway-set ${ROUTER2} public

        PRIVATE_NET1=`neutron net-list | grep "${NET1}" | cut -f 2 -d' '`
        KEY="VM1"
        VM1="${CONFIG_NAME}_vm1"
        VALUE="${VM1}"
        nova boot --key-name os-77345-demo --flavor 2 --image ubuntu14 --nic 
net-id=${PRIVATE_NET1} ${VM1}  && writeVariable "${KEY}=${VALUE}"
        FLOATINGIP1=`nova floating-ip-create | grep -vE 'Pool|--'| cut -d ' ' 
-f 4`
        KEY="FLOATINGIP1"
        VALUE="${FLOATINGIP1}"
        nova add-floating-ip ${VM1} $FLOATINGIP1 && writeVariable 
"${KEY}=${VALUE}"

        PRIVATE_NET2=`neutron net-list | grep "${NET2}" | cut -f 2 -d' '`
        KEY="VM2"
        VM2="${CONFIG_NAME}_vm2"
        VALUE="${VM2}"
        nova boot --key-name os-77345-demo --flavor 2 --image ubuntu14 --nic 
net-id=${PRIVATE_NET2} ${VM2} && writeVariable "${KEY}=${VALUE}"
        FLOATINGIP2=`nova floating-ip-create | grep -vE 'Pool|--'| cut -d ' ' 
-f 4`
        KEY="FLOATINGIP2"
        VALUE="${FLOATINGIP2}"
        nova add-floating-ip ${VM2} $FLOATINGIP2 && writeVariable 
"${KEY}=${VALUE}"

#Create VPN connections
        KEY="IKEPOLICY"
        IKEPOLICY="${CONFIG_NAME}_ikepolicy"
        VALUE="${IKEPOLICY}"
        neutron vpn-ikepolicy-create ${IKEPOLICY} && writeVariable 
"${KEY}=${VALUE}"
        KEY="IPSECPOLICY"
        IPSECPOLICY="${CONFIG_NAME}_ipsecpolicy"
        VALUE="${IPSECPOLICY}"
        neutron vpn-ipsecpolicy-create ${IPSECPOLICY} && writeVariable 
"${KEY}=${VALUE}"
        KEY="VPNSERVICE"
        VPNSERVICE="${CONFIG_NAME}_vpnservice"
        VALUE="${VPNSERVICE}"
        neutron vpn-service-create --name ${VPNSERVICE} --description "Mon 
service VPN1" ${ROUTER1} ${SUBNET1} && writeVariable "${KEY}=${VALUE}"

        KEY="CONNECTION"
        CONNECTION="${CONFIG_NAME}_connection"
        VALUE="${CONNECTION}"
#       neutron ipsec-site-connection-create --name ${CONNECTION} 
--vpnservice-id ${VPNSERVICE} \
#          --ikepolicy-id ${IKEPOLICY} --ipsecpolicy-id ${IPSECPOLICY} 
--peer-address 172.24.4.227 \
#          --peer-id 172.24.4.227 --peer-cidr 10.100.0.0/24 --psk secret && 
writeVariable "${KEY}=${VALUE}"

        [ ! -s ${CONFIG_FILE} ] && rm -f ${CONFIG_FILE}
}

stop() {
        CONFIG_FILE=$2
        if [ ! -f ${CONFIG_FILE} ] ; then
                echo "VPNAAS \"${CONFIG_FILE}\" error : config not found"
                exit 1
        fi

        . ${CONFIG_FILE}

        nova delete ${VM1}
        nova delete ${VM2}

        nova floating-ip-delete ${FLOATINGIP1}
        nova floating-ip-delete ${FLOATINGIP2}

        neutron ipsec-site-connection-delete ${CONNECTION}
        neutron vpn-service-delete ${VPNSERVICE}

        neutron vpn-ipsecpolicy-delete ${IPSECPOLICY}
        neutron vpn-ikepolicy-delete ${IKEPOLICY}

        for i in `neutron port-list | grep -vE 'fixed_ips|--' | cut -f 2 -d' '` 
; do neutron port-delete $i  ; done

        neutron router-interface-delete ${ROUTER2} ${SUBNET2}
        neutron router-delete ${ROUTER2}
        neutron net-delete ${NET2}

        neutron router-interface-delete ${ROUTER1} ${SUBNET1}
        neutron router-delete ${ROUTER1}
        neutron net-delete ${NET1}

        rm -f ${CONFIG_FILE}
}

status() {
        CONFIG_FILE=$2
        if [ ! -f ${CONFIG_FILE} ] ; then
                echo "VPNAAS \"${CONFIG_FILE}\" error : config not found"
                exit 1
        fi

        echo "VNPAAS \"${CONFIG_FILE}\": started"
        cat ${CONFIG_FILE}
}

[ $# -ne 2 ] && usage

case $1 in
        "start" )
                start $*
                ;;
        "stop" )
                stop $*
                ;;
        "status" )
                status $*
                ;;
esac


Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to     : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack

Reply via email to