yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #38310
[Bug 1494003] [NEW] Floating IPs don't work with LBaaS V2 Loadbalancers
Public bug reported:
Summary:
With LBaaS V2, create a loadbalancer and two member instances. Assign
floating IPs to the instances, and to the loadbalancers. The instances
are accessible via their FIPS, but the loadbalancer is not. The
loadbalancer does work via the its fixed IP.
Reproduced in devstack on master as of Wed, Sept 9, 2015.
# ===== BEGIN local.conf =====
[[local|localrc]]
# The name of the RECLONE environment variable is a bit misleading. It doesn't actually
# reclone repositories, rather it uses git fetch to make sure the repos are current.
RECLONE=True
#RECLONE=False
# Load the external LBaaS plugin.
#enable_plugin neutron-lbaas https://git.openstack.org/openstack
/neutron-lbaas stable/kilo
enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-
lbaas
#enable_plugin neutron-lbaas /media/sf_SharedPyCharm/bug-1483100
/neutron-lbaas
DATABASE_PASSWORD=password
ADMIN_PASSWORD=password
SERVICE_PASSWORD=password
SERVICE_TOKEN=password
RABBIT_PASSWORD=password
# Enable Logging
LOGFILE=$DEST/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=$DEST/logs
# Pre-requisite
ENABLED_SERVICES=rabbit,mysql,key
# Horizon
#ENABLED_SERVICES+=,horizon
# Nova
ENABLED_SERVICES+=,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch
IMAGE_URLS+=",https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img"
ENABLED_SERVICES+=,g-api,g-reg
# Neutron
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta
# Enable LBaaS V2
ENABLED_SERVICES+=,q-lbaasv2
#ENABLED_SERVICES+=,q-vpn
# Cinder
ENABLED_SERVICES+=,c-api,c-vol,c-sch
# enable DVR
Q_PLUGIN=ml2
Q_ML2_TENANT_NETWORK_TYPE=vxlan
Q_DVR_MODE=dvr_snat
LOGFILE=$DEST/logs/stack.sh.log
# Old log files are automatically removed after 7 days to keep things neat. Change
# the number of days by setting ``LOGDAYS``.
LOGDAYS=2
# ===== END local.conf =====
# ===== BEGIN local.sh =====
#!/usr/bin/env bash
set -x
# Sample ``local.sh`` that configures two simple webserver instances and sets
# up a Neutron LBaaS Version 2 loadbalancer.
# Keep track of the DevStack directory
TOP_DIR=$(cd $(dirname "$0") && pwd)
BOOT_DELAY=60
# Import common functions
source ${TOP_DIR}/functions
# Use openrc + stackrc for settings
source ${TOP_DIR}/stackrc
# Destination path for installation ``DEST``
DEST=${DEST:-/opt/stack}
# Additional Variables
IMAGE_NAME="cirros"
SUBNET_NAME="private-subnet"
cat > ${TOP_DIR}/webserver.sh <<EOF
#!/bin/sh
MYIP=\$(/sbin/ifconfig eth0|grep 'inet addr'|awk -F: '{print \$2}'| awk '{print \$1}')
while true; do
echo -e "HTTP/1.0 200 OK\r\n\r\nWelcome to \$MYIP\r\n" | sudo nc -l -p 80
done
EOF
cat > ${TOP_DIR}/webserver-443.sh <<EOF
#!/bin/sh
MYIP=\$(/sbin/ifconfig eth0|grep 'inet addr'|awk -F: '{print \$2}'| awk '{print \$1}')
while true; do
echo -e "HTTP/1.0 200 OK\r\n\r\nWelcome to \$MYIP port 443" | sudo nc -l -p 443
done
EOF
chmod 755 ${TOP_DIR}/webserver.sh
chmod 755 ${TOP_DIR}/webserver-443.sh
if is_service_enabled nova; then
# Get OpenStack demo user auth
source ${TOP_DIR}/openrc demo demo
# Create an SSH key to use for the instances
HOST=$(echo $HOSTNAME | cut -d"." -f1)
DEVSTACK_LBAAS_SSH_KEY_NAME=${HOST}_DEVSTACK_LBAAS_SSH_KEY_RSA
DEVSTACK_LBAAS_SSH_KEY_DIR=${TOP_DIR}
DEVSTACK_LBAAS_SSH_KEY=${DEVSTACK_LBAAS_SSH_KEY_DIR}/${DEVSTACK_LBAAS_SSH_KEY_NAME}
rm -f ${DEVSTACK_LBAAS_SSH_KEY}.pub ${DEVSTACK_LBAAS_SSH_KEY}
ssh-keygen -b 2048 -t rsa -f ${DEVSTACK_LBAAS_SSH_KEY} -N ""
nova keypair-add --pub_key=${DEVSTACK_LBAAS_SSH_KEY}.pub ${DEVSTACK_LBAAS_SSH_KEY_NAME}
# Add tcp/22,80 and icmp to default security group
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
nova secgroup-add-rule default tcp 80 80 0.0.0.0/0
nova secgroup-add-rule default tcp 443 443 0.0.0.0/0
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
# Get Image id
IMAGE_ID=$(glance image-list | awk -v image=${IMAGE_NAME} '$0 ~ image {print $2}' | head -1)
# Get Network id
NET_ID=$(neutron subnet-show ${SUBNET_NAME} | awk '/network_id/ {print $4}')
SUBNET_ID=$(neutron subnet-show ${SUBNET_NAME} | awk '/ id / {print $4}')
FIP_ID_1=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
FIP_ID_2=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
# FIP_ID_3=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
# FIP_ID_4=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
FIP_1=$(neutron floatingip-show $FIP_ID_1 | grep "| floating_ip_address " | awk {'print $4 }')
FIP_2=$(neutron floatingip-show $FIP_ID_2 | grep "| floating_ip_address " | awk {'print $4 }')
# FIP_3=$(neutron floatingip-show $FIP_ID_3 | grep "| floating_ip_address " | awk {'print $4 }')
# FIP_4=$(neutron floatingip-show $FIP_ID_4 | grep "| floating_ip_address " | awk {'print $4 }')
PORT_ID_1=$(neutron port-create private | grep "| id " | awk '{print $4}')
PORT_ID_2=$(neutron port-create private | grep "| id " | awk '{print $4}')
# PORT_ID_3=$(neutron port-create private | grep "| id " | awk '{print $4}')
# PORT_ID_4=$(neutron port-create private | grep "| id " | awk '{print $4}')
neutron floatingip-associate $FIP_ID_1 $PORT_ID_1
neutron floatingip-associate $FIP_ID_2 $PORT_ID_2
# neutron floatingip-associate $FIP_ID_3 $PORT_ID_3
# neutron floatingip-associate $FIP_ID_4 $PORT_ID_4
IP_1=$(neutron floatingip-show $FIP_ID_1 | grep "| fixed_ip_address " | awk '{print $4}')
IP_2=$(neutron floatingip-show $FIP_ID_2 | grep "| fixed_ip_address " | awk '{print $4}')
# IP_3=$(neutron floatingip-show $FIP_ID_3 | grep "| fixed_ip_address " | awk '{print $4}')
# IP_4=$(neutron floatingip-show $FIP_ID_4 | grep "| fixed_ip_address " | awk '{print $4}')
# Boot some instances
# NOVA_BOOT_ARGS="--key-name ${DEVSTACK_LBAAS_SSH_KEY_NAME} --image ${IMAGE_ID} --flavor 1 --nic net-id=$NET_ID"
NOVA_BOOT_ARGS="--key-name ${DEVSTACK_LBAAS_SSH_KEY_NAME} --image ${IMAGE_ID} --flavor 1 --nic"
nova boot ${NOVA_BOOT_ARGS} port-id=$PORT_ID_1 node1 --poll
nova boot ${NOVA_BOOT_ARGS} port-id=$PORT_ID_2 node2 --poll
# nova boot ${NOVA_BOOT_ARGS} port-id=$PORT_ID_3 node3
# nova boot ${NOVA_BOOT_ARGS} port-id=$PORT_ID_4 node4
# echo "Waiting ${BOOT_DELAY} seconds for instances to boot"
# sleep ${BOOT_DELAY}
nova list
ssh-keygen -R ${FIP_1}
ssh-keygen -R ${FIP_2}
# ssh-keygen -R ${FIP_3}
# ssh-keygen -R ${FIP_4}
# Run a simple web server on the instances
sleep 20 # getting "connection refused", might not be fully running yet.
scp -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no ${TOP_DIR}/webserver.sh cirros@${FIP_1}:webserver.sh
scp -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no ${TOP_DIR}/webserver.sh cirros@${FIP_2}:webserver.sh
# scp -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no ${TOP_DIR}/webserver.sh cirros@${FIP_3}:webserver.sh
# scp -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no ${TOP_DIR}/webserver.sh cirros@${FIP_4}:webserver.sh
screen_process node1 "ssh -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no cirros@${FIP_1} ./webserver.sh"
screen_process node2 "ssh -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no cirros@${FIP_2} ./webserver.sh"
# screen_process node3 "ssh -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no cirros@${FIP_3} ./webserver.sh"
# screen_process node4 "ssh -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no cirros@${FIP_4} ./webserver.sh"
fi
if is_service_enabled q-lbaasv2; then
echo "AJM: beginning LB setup"
ip netns
neutron lbaas-loadbalancer-create --name lb1 ${SUBNET_NAME}
# neutron lbaas-loadbalancer-create --name lb2 ${SUBNET_NAME}
sleep 10
echo "AJM: after loadbalancer create"
ip netns
neutron lbaas-listener-create --loadbalancer lb1 --protocol HTTP --protocol-port 80 --name listener1
# neutron lbaas-listener-create --loadbalancer lb2 --protocol HTTP --protocol-port 80 --name listener2
sleep 10
echo "AJM: after listener-create"
ip netns
neutron lbaas-pool-create --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTP --name pool1
# neutron lbaas-pool-create --lb-algorithm ROUND_ROBIN --listener listener2 --protocol HTTP --name pool2
sleep 10
echo "AJM: after pool create"
ip netns
neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP_1} --protocol-port 80 pool1
neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP_2} --protocol-port 80 pool1
echo "AJM: after member create"
ip netns
# neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP_3} --protocol-port 80 pool2
# neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP_4} --protocol-port 80 pool2
FIP_ID_LB1=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
LB1_VIP_PORT=$(neutron lbaas-loadbalancer-show lb1 | grep "| vip_port_id " | awk '{print $4}')
echo "AJM: after fip create"
ip netns
# FIP_ID_LB2=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
# LB2_VIP_PORT=$(neutron lbaas-loadbalancer-show lb2 | grep "| vip_port_id " | awk '{print $4}')
neutron floatingip-associate $FIP_ID_LB1 $LB1_VIP_PORT
echo "AJM: at the end"
ip netns
# neutron floatingip-associate $FIP_ID_LB2 $LB2_VIP_PORT
# neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP1} --protocol-port 443 pool2
fi
# ===== END local.sh
ubuntu@devstack1:~/devstack$ neutron floatingip-list
+--------------------------------------+------------------+---------------------+--------------------------------------+
| id | fixed_ip_address | floating_ip_address | port_id |
+--------------------------------------+------------------+---------------------+--------------------------------------+
| 1192f5d0-f2a8-4abe-b0f2-68b7977f6334 | 10.0.0.5 | 172.24.4.4 | ac203959-db40-4709-8eea-639563dd4be6 |
| 67846392-e9dc-4f59-b47d-e25345c25dd1 | 10.0.0.4 | 172.24.4.3 | ba173e89-abc1-4b7b-a23c-55bc8808a6a6 |
| ca36b325-6d40-4747-89e6-67b2c7ffbf27 | 10.0.0.6 | 172.24.4.6 | f132d74c-270c-4bd3-abde-b567f01e3f5f |
+--------------------------------------+------------------+---------------------+--------------------------------------+
ubuntu@devstack1:~/devstack$ curl 10.0.0.6
Welcome to 10.0.0.5
ubuntu@devstack1:~/devstack$ curl 10.0.0.6
Welcome to 10.0.0.4
ubuntu@devstack1:~/devstack$ curl 10.0.0.6
Welcome to 10.0.0.5
ubuntu@devstack1:~/devstack$ curl 10.0.0.6
Welcome to 10.0.0.4
ubuntu@devstack1:~/devstack$ curl 172.24.4.3
Welcome to 10.0.0.4
ubuntu@devstack1:~/devstack$ curl 172.24.4.4
Welcome to 10.0.0.5
ubuntu@devstack1:~/devstack$ curl 172.24.4.6
curl: (7) Failed to connect to 172.24.4.6 port 80: No route to host
** Affects: neutron
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1494003
Title:
Floating IPs don't work with LBaaS V2 Loadbalancers
Status in neutron:
New
Bug description:
Summary:
With LBaaS V2, create a loadbalancer and two member instances. Assign
floating IPs to the instances, and to the loadbalancers. The
instances are accessible via their FIPS, but the loadbalancer is not.
The loadbalancer does work via the its fixed IP.
Reproduced in devstack on master as of Wed, Sept 9, 2015.
# ===== BEGIN local.conf =====
[[local|localrc]]
# The name of the RECLONE environment variable is a bit misleading. It doesn't actually
# reclone repositories, rather it uses git fetch to make sure the repos are current.
RECLONE=True
#RECLONE=False
# Load the external LBaaS plugin.
#enable_plugin neutron-lbaas https://git.openstack.org/openstack
/neutron-lbaas stable/kilo
enable_plugin neutron-lbaas https://git.openstack.org/openstack
/neutron-lbaas
#enable_plugin neutron-lbaas /media/sf_SharedPyCharm/bug-1483100
/neutron-lbaas
DATABASE_PASSWORD=password
ADMIN_PASSWORD=password
SERVICE_PASSWORD=password
SERVICE_TOKEN=password
RABBIT_PASSWORD=password
# Enable Logging
LOGFILE=$DEST/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=$DEST/logs
# Pre-requisite
ENABLED_SERVICES=rabbit,mysql,key
# Horizon
#ENABLED_SERVICES+=,horizon
# Nova
ENABLED_SERVICES+=,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch
IMAGE_URLS+=",https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img"
ENABLED_SERVICES+=,g-api,g-reg
# Neutron
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta
# Enable LBaaS V2
ENABLED_SERVICES+=,q-lbaasv2
#ENABLED_SERVICES+=,q-vpn
# Cinder
ENABLED_SERVICES+=,c-api,c-vol,c-sch
# enable DVR
Q_PLUGIN=ml2
Q_ML2_TENANT_NETWORK_TYPE=vxlan
Q_DVR_MODE=dvr_snat
LOGFILE=$DEST/logs/stack.sh.log
# Old log files are automatically removed after 7 days to keep things neat. Change
# the number of days by setting ``LOGDAYS``.
LOGDAYS=2
# ===== END local.conf =====
# ===== BEGIN local.sh =====
#!/usr/bin/env bash
set -x
# Sample ``local.sh`` that configures two simple webserver instances and sets
# up a Neutron LBaaS Version 2 loadbalancer.
# Keep track of the DevStack directory
TOP_DIR=$(cd $(dirname "$0") && pwd)
BOOT_DELAY=60
# Import common functions
source ${TOP_DIR}/functions
# Use openrc + stackrc for settings
source ${TOP_DIR}/stackrc
# Destination path for installation ``DEST``
DEST=${DEST:-/opt/stack}
# Additional Variables
IMAGE_NAME="cirros"
SUBNET_NAME="private-subnet"
cat > ${TOP_DIR}/webserver.sh <<EOF
#!/bin/sh
MYIP=\$(/sbin/ifconfig eth0|grep 'inet addr'|awk -F: '{print \$2}'| awk '{print \$1}')
while true; do
echo -e "HTTP/1.0 200 OK\r\n\r\nWelcome to \$MYIP\r\n" | sudo nc -l -p 80
done
EOF
cat > ${TOP_DIR}/webserver-443.sh <<EOF
#!/bin/sh
MYIP=\$(/sbin/ifconfig eth0|grep 'inet addr'|awk -F: '{print \$2}'| awk '{print \$1}')
while true; do
echo -e "HTTP/1.0 200 OK\r\n\r\nWelcome to \$MYIP port 443" | sudo nc -l -p 443
done
EOF
chmod 755 ${TOP_DIR}/webserver.sh
chmod 755 ${TOP_DIR}/webserver-443.sh
if is_service_enabled nova; then
# Get OpenStack demo user auth
source ${TOP_DIR}/openrc demo demo
# Create an SSH key to use for the instances
HOST=$(echo $HOSTNAME | cut -d"." -f1)
DEVSTACK_LBAAS_SSH_KEY_NAME=${HOST}_DEVSTACK_LBAAS_SSH_KEY_RSA
DEVSTACK_LBAAS_SSH_KEY_DIR=${TOP_DIR}
DEVSTACK_LBAAS_SSH_KEY=${DEVSTACK_LBAAS_SSH_KEY_DIR}/${DEVSTACK_LBAAS_SSH_KEY_NAME}
rm -f ${DEVSTACK_LBAAS_SSH_KEY}.pub ${DEVSTACK_LBAAS_SSH_KEY}
ssh-keygen -b 2048 -t rsa -f ${DEVSTACK_LBAAS_SSH_KEY} -N ""
nova keypair-add --pub_key=${DEVSTACK_LBAAS_SSH_KEY}.pub ${DEVSTACK_LBAAS_SSH_KEY_NAME}
# Add tcp/22,80 and icmp to default security group
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
nova secgroup-add-rule default tcp 80 80 0.0.0.0/0
nova secgroup-add-rule default tcp 443 443 0.0.0.0/0
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
# Get Image id
IMAGE_ID=$(glance image-list | awk -v image=${IMAGE_NAME} '$0 ~ image {print $2}' | head -1)
# Get Network id
NET_ID=$(neutron subnet-show ${SUBNET_NAME} | awk '/network_id/ {print $4}')
SUBNET_ID=$(neutron subnet-show ${SUBNET_NAME} | awk '/ id / {print $4}')
FIP_ID_1=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
FIP_ID_2=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
# FIP_ID_3=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
# FIP_ID_4=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
FIP_1=$(neutron floatingip-show $FIP_ID_1 | grep "| floating_ip_address " | awk {'print $4 }')
FIP_2=$(neutron floatingip-show $FIP_ID_2 | grep "| floating_ip_address " | awk {'print $4 }')
# FIP_3=$(neutron floatingip-show $FIP_ID_3 | grep "| floating_ip_address " | awk {'print $4 }')
# FIP_4=$(neutron floatingip-show $FIP_ID_4 | grep "| floating_ip_address " | awk {'print $4 }')
PORT_ID_1=$(neutron port-create private | grep "| id " | awk '{print $4}')
PORT_ID_2=$(neutron port-create private | grep "| id " | awk '{print $4}')
# PORT_ID_3=$(neutron port-create private | grep "| id " | awk '{print $4}')
# PORT_ID_4=$(neutron port-create private | grep "| id " | awk '{print $4}')
neutron floatingip-associate $FIP_ID_1 $PORT_ID_1
neutron floatingip-associate $FIP_ID_2 $PORT_ID_2
# neutron floatingip-associate $FIP_ID_3 $PORT_ID_3
# neutron floatingip-associate $FIP_ID_4 $PORT_ID_4
IP_1=$(neutron floatingip-show $FIP_ID_1 | grep "| fixed_ip_address " | awk '{print $4}')
IP_2=$(neutron floatingip-show $FIP_ID_2 | grep "| fixed_ip_address " | awk '{print $4}')
# IP_3=$(neutron floatingip-show $FIP_ID_3 | grep "| fixed_ip_address " | awk '{print $4}')
# IP_4=$(neutron floatingip-show $FIP_ID_4 | grep "| fixed_ip_address " | awk '{print $4}')
# Boot some instances
# NOVA_BOOT_ARGS="--key-name ${DEVSTACK_LBAAS_SSH_KEY_NAME} --image ${IMAGE_ID} --flavor 1 --nic net-id=$NET_ID"
NOVA_BOOT_ARGS="--key-name ${DEVSTACK_LBAAS_SSH_KEY_NAME} --image ${IMAGE_ID} --flavor 1 --nic"
nova boot ${NOVA_BOOT_ARGS} port-id=$PORT_ID_1 node1 --poll
nova boot ${NOVA_BOOT_ARGS} port-id=$PORT_ID_2 node2 --poll
# nova boot ${NOVA_BOOT_ARGS} port-id=$PORT_ID_3 node3
# nova boot ${NOVA_BOOT_ARGS} port-id=$PORT_ID_4 node4
# echo "Waiting ${BOOT_DELAY} seconds for instances to boot"
# sleep ${BOOT_DELAY}
nova list
ssh-keygen -R ${FIP_1}
ssh-keygen -R ${FIP_2}
# ssh-keygen -R ${FIP_3}
# ssh-keygen -R ${FIP_4}
# Run a simple web server on the instances
sleep 20 # getting "connection refused", might not be fully running yet.
scp -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no ${TOP_DIR}/webserver.sh cirros@${FIP_1}:webserver.sh
scp -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no ${TOP_DIR}/webserver.sh cirros@${FIP_2}:webserver.sh
# scp -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no ${TOP_DIR}/webserver.sh cirros@${FIP_3}:webserver.sh
# scp -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no ${TOP_DIR}/webserver.sh cirros@${FIP_4}:webserver.sh
screen_process node1 "ssh -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no cirros@${FIP_1} ./webserver.sh"
screen_process node2 "ssh -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no cirros@${FIP_2} ./webserver.sh"
# screen_process node3 "ssh -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no cirros@${FIP_3} ./webserver.sh"
# screen_process node4 "ssh -i ${DEVSTACK_LBAAS_SSH_KEY} -o StrictHostKeyChecking=no cirros@${FIP_4} ./webserver.sh"
fi
if is_service_enabled q-lbaasv2; then
echo "AJM: beginning LB setup"
ip netns
neutron lbaas-loadbalancer-create --name lb1 ${SUBNET_NAME}
# neutron lbaas-loadbalancer-create --name lb2 ${SUBNET_NAME}
sleep 10
echo "AJM: after loadbalancer create"
ip netns
neutron lbaas-listener-create --loadbalancer lb1 --protocol HTTP --protocol-port 80 --name listener1
# neutron lbaas-listener-create --loadbalancer lb2 --protocol HTTP --protocol-port 80 --name listener2
sleep 10
echo "AJM: after listener-create"
ip netns
neutron lbaas-pool-create --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTP --name pool1
# neutron lbaas-pool-create --lb-algorithm ROUND_ROBIN --listener listener2 --protocol HTTP --name pool2
sleep 10
echo "AJM: after pool create"
ip netns
neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP_1} --protocol-port 80 pool1
neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP_2} --protocol-port 80 pool1
echo "AJM: after member create"
ip netns
# neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP_3} --protocol-port 80 pool2
# neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP_4} --protocol-port 80 pool2
FIP_ID_LB1=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
LB1_VIP_PORT=$(neutron lbaas-loadbalancer-show lb1 | grep "| vip_port_id " | awk '{print $4}')
echo "AJM: after fip create"
ip netns
# FIP_ID_LB2=$(neutron floatingip-create public|grep "| id " |awk '{print $4}')
# LB2_VIP_PORT=$(neutron lbaas-loadbalancer-show lb2 | grep "| vip_port_id " | awk '{print $4}')
neutron floatingip-associate $FIP_ID_LB1 $LB1_VIP_PORT
echo "AJM: at the end"
ip netns
# neutron floatingip-associate $FIP_ID_LB2 $LB2_VIP_PORT
# neutron lbaas-member-create --subnet ${SUBNET_NAME} --address ${IP1} --protocol-port 443 pool2
fi
# ===== END local.sh
ubuntu@devstack1:~/devstack$ neutron floatingip-list
+--------------------------------------+------------------+---------------------+--------------------------------------+
| id | fixed_ip_address | floating_ip_address | port_id |
+--------------------------------------+------------------+---------------------+--------------------------------------+
| 1192f5d0-f2a8-4abe-b0f2-68b7977f6334 | 10.0.0.5 | 172.24.4.4 | ac203959-db40-4709-8eea-639563dd4be6 |
| 67846392-e9dc-4f59-b47d-e25345c25dd1 | 10.0.0.4 | 172.24.4.3 | ba173e89-abc1-4b7b-a23c-55bc8808a6a6 |
| ca36b325-6d40-4747-89e6-67b2c7ffbf27 | 10.0.0.6 | 172.24.4.6 | f132d74c-270c-4bd3-abde-b567f01e3f5f |
+--------------------------------------+------------------+---------------------+--------------------------------------+
ubuntu@devstack1:~/devstack$ curl 10.0.0.6
Welcome to 10.0.0.5
ubuntu@devstack1:~/devstack$ curl 10.0.0.6
Welcome to 10.0.0.4
ubuntu@devstack1:~/devstack$ curl 10.0.0.6
Welcome to 10.0.0.5
ubuntu@devstack1:~/devstack$ curl 10.0.0.6
Welcome to 10.0.0.4
ubuntu@devstack1:~/devstack$ curl 172.24.4.3
Welcome to 10.0.0.4
ubuntu@devstack1:~/devstack$ curl 172.24.4.4
Welcome to 10.0.0.5
ubuntu@devstack1:~/devstack$ curl 172.24.4.6
curl: (7) Failed to connect to 172.24.4.6 port 80: No route to host
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1494003/+subscriptions