[
https://issues.apache.org/jira/browse/CLOUDSTACK-9885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16328347#comment-16328347
]
Alexander Conn commented on CLOUDSTACK-9885:
--------------------------------------------
As I needed a fix for this sooner rather than later, I modified the required
python scripts on VR myself. Fortunately the private gateways we use are all
part of the same subnet so this was fixed as per below. My added code in *bold*
+File: /opt/cloud/bin/cs/CsRedundant.py+
def _redundant_on(self):
guest = self.address.get_guest_if()
# No redundancy if there is no guest network
if guest is None:
self.set_backup()
self._redundant_off()
return
interfaces = [interface for interface in self.address.get_interfaces()
if interface.is_guest()]
isDeviceReady = False
dev = ''
for interface in interfaces:
if dev == interface.get_device():
continue
*int_ip = interface.get_ip()*
*if int_ip.startswith('10.200.200.'):*
*continue*
dev = interface.get_device()
logging.info("Wait for devices to be configured so we can start
keepalived")
devConfigured = CsDevice(dev, self.config).waitfordevice()
if devConfigured:
command = "ip link show %s | grep 'state UP'" % dev
devUp = CsHelper.execute(command)
if devUp:
logging.info("Device %s is present, let's start keepalive
now." % dev)
isDeviceReady = True
+File: /opt/cloud/bin/cs/CsAddress.py+
def get_guest_if(self):
"""
Return CsInterface object for the lowest in use guest interface
"""
guest_interface = None
lowest_device = 1000
for interface in self.get_interfaces():
*int_ip = interface.get_ip()*
*if int_ip.startswith('10.200.200.'):*
*continue*
if interface.is_guest() and interface.is_added():
device = interface.get_device()
device_suffix = int(''.join([digit for digit in device if
digit.isdigit()]))
if device_suffix < lowest_device:
lowest_device = device_suffix
guest_interface = interface
logging.debug("Guest interface will be set on device '%s'
and IP '%s'" % (guest_interface.get_device(), guest_interface.get_ip()))
return guest_interface
Also add this code to all instances of the needs_vrrp function in CsAddress.py,
example below:
def needs_vrrp(self, o):
"""
Returns if the ip needs to be managed by keepalived or not
"""
*int_ip = self.get_ip()*
*if int_ip.startswith('10.200.200.'):*
*return False*
if "nw_type" in o and o['nw_type'] in VRRP_TYPES:
return True
return False
Hopefully this helps you guys with your bug fix and anyone else experiencing
this issue.
> VPC RVR: On deleting first tier and configuring Private GW both VRs becoming
> MASTER
> ------------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-9885
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9885
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Affects Versions: 4.10.0.0
> Reporter: Jayapal Reddy
> Assignee: Jayapal Reddy
> Priority: Critical
> Fix For: 4.10.1.0
>
>
> - Configure two tier networks t1 and t2. Delete the t1 network. Both VRs are
> getting into MASTER state.
> r-269-QA - was BACKUP VR. On deleting t1 network it became MASTER.
> {noformat}
> root@r-269-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 0e:00:a9:fe:01:dc brd ff:ff:ff:ff:ff:ff
> inet 169.254.1.220/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
> link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
> inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 02:00:5d:a4:00:03 brd ff:ff:ff:ff:ff:ff
> inet 10.1.1.33/24 brd 10.1.1.255 scope global eth2
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 06:de:fc:00:00:29 brd ff:ff:ff:ff:ff:ff
> inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 02:00:31:e1:00:03 brd ff:ff:ff:ff:ff:ff
> inet 10.1.2.78/24 brd 10.1.2.255 scope global eth4
> root@r-269-QA:~#
> root@r-269-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 0e:00:a9:fe:01:dc brd ff:ff:ff:ff:ff:ff
> inet 169.254.1.220/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
> inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 06:de:fc:00:00:29 brd ff:ff:ff:ff:ff:ff
> inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
> inet 10.147.52.100/24 brd 10.147.52.255 scope global secondary eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 02:00:31:e1:00:03 brd ff:ff:ff:ff:ff:ff
> inet 10.1.2.78/24 brd 10.1.2.255 scope global eth4
> inet 10.1.2.1/24 brd 10.1.2.255 scope global secondary eth4
> root@r-269-QA:~# checkrouter.sh
> Status: MASTER
> root@r-269-QA:~#
> {noformat}
> root@r-268-QA - was MASTER VR. On deleting t1 it deleted its eth2 interface
> and delete 10.2.1.1 ip on ethic interface.
> After some time it configured 10.2.1.1 ip on eth4 and it became master.
> {noformat}
> root@r-268-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 0e:00:a9:fe:02:ac brd ff:ff:ff:ff:ff:ff
> inet 169.254.2.172/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
> inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 02:00:15:ab:00:02 brd ff:ff:ff:ff:ff:ff
> inet 10.1.1.189/24 brd 10.1.1.255 scope global eth2
> inet 10.1.1.1/24 brd 10.1.1.255 scope global secondary eth2
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 06:67:ce:00:00:29 brd ff:ff:ff:ff:ff:ff
> inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
> inet 10.147.52.100/24 brd 10.147.52.255 scope global secondary eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 02:00:09:1d:00:02 brd ff:ff:ff:ff:ff:ff
> inet 10.1.2.49/24 brd 10.1.2.255 scope global eth4
> inet 10.1.2.1/24 brd 10.1.2.255 scope global secondary eth4
> root@r-268-QA:~#
> root@r-268-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 0e:00:a9:fe:02:ac brd ff:ff:ff:ff:ff:ff
> inet 169.254.2.172/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
> inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 02:00:15:ab:00:02 brd ff:ff:ff:ff:ff:ff
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 06:67:ce:00:00:29 brd ff:ff:ff:ff:ff:ff
> inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 02:00:09:1d:00:02 brd ff:ff:ff:ff:ff:ff
> inet 10.1.2.49/24 brd 10.1.2.255 scope global eth4
> root@r-268-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 0e:00:a9:fe:02:ac brd ff:ff:ff:ff:ff:ff
> inet 169.254.2.172/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
> link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
> inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 06:67:ce:00:00:29 brd ff:ff:ff:ff:ff:ff
> inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 02:00:09:1d:00:02 brd ff:ff:ff:ff:ff:ff
> inet 10.1.2.49/24 brd 10.1.2.255 scope global eth4
> root@r-268-QA:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> inet 127.0.0.1/8 scope host lo
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 0e:00:a9:fe:02:ac brd ff:ff:ff:ff:ff:ff
> inet 169.254.2.172/16 brd 169.254.255.255 scope global eth0
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 06:e4:c8:00:00:0e brd ff:ff:ff:ff:ff:ff
> inet 10.147.46.102/24 brd 10.147.46.255 scope global eth1
> 5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 06:67:ce:00:00:29 brd ff:ff:ff:ff:ff:ff
> inet 10.147.52.200/24 brd 10.147.52.255 scope global eth3
> inet 10.147.52.100/24 brd 10.147.52.255 scope global secondary eth3
> 6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
> qlen 1000
> link/ether 02:00:09:1d:00:02 brd ff:ff:ff:ff:ff:ff
> inet 10.1.2.49/24 brd 10.1.2.255 scope global eth4
> inet 10.1.2.1/24 brd 10.1.2.255 scope global secondary eth4
> root@r-268-QA:~# checkrouter.sh
> Status: MASTER
> root@r-268-QA:~#
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)