[ 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)