[
https://issues.apache.org/jira/browse/CLOUDSTACK-10235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16330069#comment-16330069
]
Alexander Conn commented on CLOUDSTACK-10235:
---------------------------------------------
Have confirmed /opt/cloud/bin/cloud-nic.sh is definitely being called to
add/remove the eth1 (public) nic. Does anyone know where exactly this shell
script gets called? Going through the code for 4.9.3 on GitHub and I'm having a
hard time trying to find at what point this gets called.
I modified cloud-nic.sh to add some extra logging, as per below log snippets
the extra output is in bold. It looks like cloud-nic.sh gets called at the end
of removing the PF rule and at the beginning of adding the PF rule
+/var/log/cloud.log when PF rule is removed:+
.....
2018-01-18 05:11:39,908 CsRedundant.py _redundant_on:103 Wait for devices to be
configured so we can start keepalived
2018-01-18 05:11:39,908 CsHelper.py execute:184 Executing: ip link show eth3 |
grep 'state UP'
2018-01-18 05:11:39,922 CsRedundant.py _redundant_on:109 Device eth3 is
present, let's start keepalive now.
2018-01-18 05:11:39,923 CsHelper.py execute:184 Executing: mount
2018-01-18 05:11:39,936 CsHelper.py execute:184 Executing: sed -i "s/--exec\
\$DAEMON;/--exec\ \$DAEMON\ --\ --vrrp;/g" /etc/init.d/keepalived
2018-01-18 05:11:39,948 CsFile.py load:39 Reading file
/opt/cloud/bin/checkrouter.sh
2018-01-18 05:11:39,949 CsFile.py greplace:116 Searching for [RROUTER_LOG] and
replacing with /var/log/cloud.log
2018-01-18 05:11:39,949 CsFile.py commit:60 Nothing to commit. The
/opt/cloud/bin/checkrouter.sh file did not change
2018-01-18 05:11:39,949 CsFile.py load:39 Reading file
/etc/keepalived/keepalived.conf
2018-01-18 05:11:39,950 CsFile.py search:124 Searching for router_id and
replacing with router_id r-3882-VM
2018-01-18 05:11:39,950 CsFile.py search:124 Searching for interface and
replacing with interface eth3
2018-01-18 05:11:39,951 CsFile.py search:124 Searching for advert_int and
replacing with advert_int 1
2018-01-18 05:11:39,951 CsFile.py greplace:116 Searching for [RROUTER_BIN_PATH]
and replacing with /ramdisk/rrouter
2018-01-18 05:11:39,952 CsHelper.py copy:251 Copied
/opt/cloud/templates/conntrackd.conf.templ to
/opt/cloud/templates/conntrackd.conf.templ.bkp
2018-01-18 05:11:39,953 CsFile.py load:39 Reading file
/opt/cloud/templates/conntrackd.conf.templ
2018-01-18 05:11:39,954 CsFile.py commit:66 Wrote edited file
/opt/cloud/templates/conntrackd.conf.templ
2018-01-18 05:11:39,954 CsFile.py commit:68 Updated file in-cache configuration
2018-01-18 05:11:39,954 CsFile.py load:39 Reading file
/etc/conntrackd/conntrackd.conf
2018-01-18 05:11:39,954 CsFile.py compare:168 Comparison of CsFiles content is
==> True
2018-01-18 05:11:39,954 CsHelper.py execute:184 Executing: ps aux
2018-01-18 05:11:39,983 CsProcess.py find_pid:50 CsProcess:: Searching for
process ==> ['/etc/conntrackd/conntrackd.conf'] and found PIDs ==> ['4473']
2018-01-18 05:11:39,984 CsHelper.py copy:251 Copied
/opt/cloud/templates/conntrackd.conf.templ.bkp to
/opt/cloud/templates/conntrackd.conf.templ
2018-01-18 05:11:39,984 CsHelper.py execute:184 Executing: rm -rf
/opt/cloud/templates/conntrackd.conf.templ.bkp
2018-01-18 05:11:39,996 CsFile.py load:39 Reading file /etc/cron.d/heartbeat
2018-01-18 05:11:39,997 CsFile.py commit:60 Nothing to commit. The
/etc/cron.d/heartbeat file did not change
2018-01-18 05:11:39,997 CsHelper.py execute:184 Executing: ps aux
2018-01-18 05:11:40,021 CsProcess.py find_pid:50 CsProcess:: Searching for
process ==> ['/usr/sbin/keepalived'] and found PIDs ==> ['4487', '4488', '4489']
*parent command udevd*
*removing 1 Table_eth1 for eth1*
*removed 1 Table_eth1 for eth1*
+/var/log/cloud.log when PF rule is added:+
*parent command udevd*
*adding 1 Table_eth1*
*added 1 Table_eth1*
2018-01-18 05:20:52,017 merge.py load:57 Loading data bag type ips
2018-01-18 05:20:52,018 merge.py process:101 Command of type ips received
2018-01-18 05:20:52,018 merge.py save:68 Writing data bag type ips
2018-01-18 05:20:52,020 merge.py load:57 Loading data bag type ips
2018-01-18 05:20:52,020 merge.py load:57 Loading data bag type cmdline
2018-01-18 05:20:52,020 configure.py main:935 Configuring ip addresses
2018-01-18 05:20:52,021 CsHelper.py execute:184 Executing: ip addr show dev eth3
2018-01-18 05:20:52,033 CsAddress.py is_guest_gateway:680 Checking if cidr is a
gateway for rVPC. IP ==> 10.100.104.254/24 / device ==> eth3
2018-01-18 05:20:52,034 CsAddress.py is_guest_gateway:683 Interface has the
following gateway ==> 10.100.104.254
2018-01-18 05:20:52,034 CsAddress.py compare:668 The IP address in
'\{u'public_ip': u'10.100.104.251', u'one_to_one_nat': False, u'nic_dev_id':
u'3', u'network': u'10.100.104.0/24', u'netmask': u'255.255.255.0',
u'source_nat': False, u'broadcast': u'10.100.104.255', u'add': True,
u'nw_type': u'guest', u'device': u'eth3', u'cidr': u'10.100.104.251/24',
u'gateway': u'10.100.104.254', u'size': u'24'}' will be configured
2018-01-18 05:20:52,034 CsAddress.py compare:668 The IP address in
'\{u'public_ip': u'10.100.104.251', u'one_to_one_nat': False, u'nic_dev_id':
u'3', u'network': u'10.100.104.0/24', u'netmask': u'255.255.255.0',
u'source_nat': False, u'broadcast': u'10.100.104.255', u'add': True,
u'nw_type': u'guest', u'device': u'eth3', u'cidr': u'10.100.104.251/24',
u'gateway': u'10.100.104.254', u'size': u'24'}' will be configured
2018-01-18 05:20:52,034 CsHelper.py execute:184 Executing: ip addr show dev eth2
2018-01-18 05:20:52,047 CsAddress.py compare:668 The IP address in
'\{u'public_ip': u'10.200.200.104', u'one_to_one_nat': False, u'nic_dev_id': 2,
u'network': u'10.200.200.0/24', u'first_i_p': False, u'netmask':
u'255.255.255.0', u'source_nat': False, u'broadcast': u'10.200.200.255',
u'add': True, u'nw_type': u'guest', u'device': u'eth2', u'vif_mac_address':
u'06:fd:6a:00:02:b2', u'cidr': u'10.200.200.104/24', u'gateway':
u'10.200.200.254', u'new_nic': False, u'size': u'24'}' will be configured
........
> Removing Port Forwarding rule deletes public interface on VR (redundant VPC
> only)
> ---------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-10235
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-10235
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: VPC
> Affects Versions: 4.9.3.0
> Environment: XenServer 6.2
> Reporter: Alexander Conn
> Priority: Critical
>
> Steps I've taken to reproduce in my environment on a redundant VPC (no issue
> on normal VPC):
> # Acquire public IP and create a port forwarding rule on it
> # Remove that port forwarding rule
> # You'll see on the MASTER VR, the public interface (eth1) gets removed
> incorrectly. Causing all sorts of issues, including issues with VRRP.
> # Add a port forwarding rule back, and eth1 gets recreated. But now your
> stuck with needing at least 1 PF rule to be there in order to keep eth1
> connected.
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)