mirror of
https://github.com/apache/cloudstack.git
synced 2025-12-16 10:32:34 +01:00
bug 6981: restore ipassoc behaviour
This commit is contained in:
parent
898990a11d
commit
542a6da0d7
@ -3,7 +3,7 @@
|
|||||||
# ipassoc.sh -- associate/disassociate a public ip with an instance
|
# ipassoc.sh -- associate/disassociate a public ip with an instance
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# @VERSION@
|
# 2.1.4
|
||||||
usage() {
|
usage() {
|
||||||
printf "Usage:\n %s -A -i <domR eth1 ip> -l <public-ip-address> -r <domr name> [-f] \n" $(basename $0) >&2
|
printf "Usage:\n %s -A -i <domR eth1 ip> -l <public-ip-address> -r <domr name> [-f] \n" $(basename $0) >&2
|
||||||
printf " %s -D -i <domR eth1 ip> -l <public-ip-address> -r <domr name> [-f] \n" $(basename $0) >&2
|
printf " %s -D -i <domR eth1 ip> -l <public-ip-address> -r <domr name> [-f] \n" $(basename $0) >&2
|
||||||
@ -70,10 +70,11 @@ add_one_to_one_nat_entry() {
|
|||||||
add_nat_entry() {
|
add_nat_entry() {
|
||||||
local dRIp=$1
|
local dRIp=$1
|
||||||
local pubIp=$2
|
local pubIp=$2
|
||||||
|
local ipNoMask=$(echo $2 | awk -F'/' '{print $1}')
|
||||||
ssh -p 3922 -o StrictHostKeyChecking=no -i $cert root@$dRIp "\
|
ssh -p 3922 -o StrictHostKeyChecking=no -i $cert root@$dRIp "\
|
||||||
ip addr add dev $correctVif $pubIp
|
ip addr add dev $correctVif $pubIp
|
||||||
iptables -t nat -I POSTROUTING -j SNAT -o $correctVif --to-source $pubIp ;
|
iptables -t nat -I POSTROUTING -j SNAT -o $correctVif --to-source $ipNoMask ;
|
||||||
arping -c 3 -I $correctVif -A -U -s $pubIp $pubIp;
|
/sbin/arping -c 3 -I $correctVif -A -U -s $ipNoMask $ipNoMask;
|
||||||
"
|
"
|
||||||
if [ $? -gt 0 -a $? -ne 2 ]
|
if [ $? -gt 0 -a $? -ne 2 ]
|
||||||
then
|
then
|
||||||
@ -87,9 +88,12 @@ add_nat_entry() {
|
|||||||
del_nat_entry() {
|
del_nat_entry() {
|
||||||
local dRIp=$1
|
local dRIp=$1
|
||||||
local pubIp=$2
|
local pubIp=$2
|
||||||
|
local ipNoMask=$(echo $2 | awk -F'/' '{print $1}')
|
||||||
|
local mask=$(echo $2 | awk -F'/' '{print $2}')
|
||||||
|
[ "$mask" == "" ] && mask="32"
|
||||||
ssh -p 3922 -o StrictHostKeyChecking=no -i $cert root@$dRIp "\
|
ssh -p 3922 -o StrictHostKeyChecking=no -i $cert root@$dRIp "\
|
||||||
iptables -t nat -D POSTROUTING -j SNAT -o $correctVif --to-source $pubIp;
|
iptables -t nat -D POSTROUTING -j SNAT -o $correctVif --to-source $ipNoMask;
|
||||||
ip addr del dev $correctVif $pubIp/32
|
ip addr del dev $correctVif "$ipNoMask/$mask"
|
||||||
"
|
"
|
||||||
|
|
||||||
if [ $? -gt 0 -a $? -ne 2 ]
|
if [ $? -gt 0 -a $? -ne 2 ]
|
||||||
@ -104,10 +108,11 @@ del_nat_entry() {
|
|||||||
add_an_ip () {
|
add_an_ip () {
|
||||||
local dRIp=$1
|
local dRIp=$1
|
||||||
local pubIp=$2
|
local pubIp=$2
|
||||||
|
local ipNoMask=$(echo $2 | awk -F'/' '{print $1}')
|
||||||
ssh -p 3922 -o StrictHostKeyChecking=no -i $cert root@$dRIp "\
|
ssh -p 3922 -o StrictHostKeyChecking=no -i $cert root@$dRIp "\
|
||||||
ifconfig $correctVif up;
|
ifconfig $correctVif up;
|
||||||
ip addr add dev $correctVif $pubIp ;
|
ip addr add dev $correctVif $pubIp ;
|
||||||
arping -c 3 -I $correctVif -A -U -s $pubIp $pubIp;
|
/sbin/arping -c 3 -I $correctVif -A -U -s $ipNoMask $ipNoMask;
|
||||||
"
|
"
|
||||||
return $?
|
return $?
|
||||||
}
|
}
|
||||||
@ -115,8 +120,11 @@ add_an_ip () {
|
|||||||
remove_an_ip () {
|
remove_an_ip () {
|
||||||
local dRIp=$1
|
local dRIp=$1
|
||||||
local pubIp=$2
|
local pubIp=$2
|
||||||
|
local ipNoMask=$(echo $2 | awk -F'/' '{print $1}')
|
||||||
|
local mask=$(echo $2 | awk -F'/' '{print $2}')
|
||||||
|
[ "$mask" == "" ] && mask="32"
|
||||||
ssh -p 3922 -o StrictHostKeyChecking=no -i $cert root@$dRIp "\
|
ssh -p 3922 -o StrictHostKeyChecking=no -i $cert root@$dRIp "\
|
||||||
ip addr del dev $correctVif $pubIp/32
|
ip addr del dev $correctVif "$ipNoMask/$mask"
|
||||||
"
|
"
|
||||||
if [ $? -gt 0 -a $? -ne 2 ]
|
if [ $? -gt 0 -a $? -ne 2 ]
|
||||||
then
|
then
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user