*** This bug is a duplicate of bug 1845557 *** https://bugs.launchpad.net/bugs/1845557
This bug is also a duplicate of https://bugs.launchpad.net/neutron/+bug/1845557 ** This bug is no longer a duplicate of bug 1715395 FWaaS: Firewall creation fails in case of distributed routers (Pike) ** This bug has been marked a duplicate of bug 1845364 [fullstack] Race condition when updating the router port information and updating the network MTU -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1716401 Title: FWaaS: Ip tables rules do not get updated in case of distributed virtual routers (DVR) Status in neutron: New Bug description: I have set up an HA/DVR deployment of OpenStack Pike on Ubuntu 16.04 and enabled FWaaS v1. After applying the Fix from Bug #1715395, firewall rules get created in case of HA/DVR, but updates do not have any effect, e.g. when you disassociate a firewall from a distributed router. Use Case: 1. Set up an HA/DVP deployment of OpenStack Pike. 2. Create a firewall rule. $ neutron firewall-rule-create --name test-rule --protocol icmp --action reject Created a new firewall_rule: +------------------------+--------------------------------------+ | Field | Value | +------------------------+--------------------------------------+ | action | reject | | description | | | destination_ip_address | | | destination_port | | | enabled | True | | firewall_policy_id | | | id | 6c2516cb-b69d-46b6-958e-e47c1cf1709e | | ip_version | 4 | | name | test-rule | | position | | | project_id | ed2d2efd86dd40e7a45491d8502318d3 | | protocol | icmp | | shared | False | | source_ip_address | | | source_port | | | tenant_id | ed2d2efd86dd40e7a45491d8502318d3 | +------------------------+--------------------------------------+ 3. Create a firewall policy. $ neutron firewall-policy-create --firewall-rules test-rule test-policy Created a new firewall_policy: +----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | audited | False | | description | | | firewall_rules | 6c2516cb-b69d-46b6-958e-e47c1cf1709e | | id | 53a8d733-e81c-4113-9354-d40b5b426e00 | | name | test-policy | | project_id | ed2d2efd86dd40e7a45491d8502318d3 | | shared | False | | tenant_id | ed2d2efd86dd40e7a45491d8502318d3 | +----------------+--------------------------------------+ 4. Create a firewall. $ neutron firewall-create --name test-firewall test-policy Created a new firewall: +--------------------+--------------------------------------+ | Field | Value | +--------------------+--------------------------------------+ | admin_state_up | True | | description | | | firewall_policy_id | 53a8d733-e81c-4113-9354-d40b5b426e00 | | id | a468caca-c555-4f89-adbc-bcdbb06a3fca | | name | test-firewall | | project_id | ed2d2efd86dd40e7a45491d8502318d3 | | router_ids | | | status | INACTIVE | | tenant_id | ed2d2efd86dd40e7a45491d8502318d3 | +--------------------+--------------------------------------+ 5. Assign the firewall to a distributed router. $ neutron firewall-update --router demo-router test-firewall Updated firewall: test-firewall 6. Spawn a virtual machine and assign a floating ip. 7. Check namespaces on the compute node hosting the virtual machine. $ ip netns fip-4a3959c3-b011-4bd0-8f4f-f405be92d9ac qrouter-09a379b5-907f-4e3e-b29a-8701b82f2641 8. Check ip tables rules in the router's namespace. $ ip netns exec qrouter-09a379b5-907f-4e3e-b29a-8701b82f2641 iptables -n -L -v Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 neutron-l3-agent-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 40 packets, 2400 bytes) pkts bytes target prot opt in out source destination 185 11100 neutron-filter-top all -- * * 0.0.0.0/0 0.0.0.0/0 185 11100 neutron-l3-agent-FORWARD all -- * * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 neutron-filter-top all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 neutron-l3-agent-OUTPUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain neutron-filter-top (2 references) pkts bytes target prot opt in out source destination 185 11100 neutron-l3-agent-local all -- * * 0.0.0.0/0 0.0.0.0/0 Chain neutron-l3-agent-FORWARD (1 references) pkts bytes target prot opt in out source destination 185 11100 neutron-l3-agent-scope all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 neutron-l3-agent-iv465d8c835 all -- * rfp-+ 0.0.0.0/0 0.0.0.0/0 39 2340 neutron-l3-agent-ov465d8c835 all -- rfp-+ * 0.0.0.0/0 0.0.0.0/0 0 0 neutron-l3-agent-fwaas-defau all -- * rfp-+ 0.0.0.0/0 0.0.0.0/0 0 0 neutron-l3-agent-fwaas-defau all -- rfp-+ * 0.0.0.0/0 0.0.0.0/0 Chain neutron-l3-agent-INPUT (1 references) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x1/0xffff 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9697 Chain neutron-l3-agent-OUTPUT (1 references) pkts bytes target prot opt in out source destination Chain neutron-l3-agent-fwaas-defau (2 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 Chain neutron-l3-agent-iv465d8c835 (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 REJECT icmp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable Chain neutron-l3-agent-local (1 references) pkts bytes target prot opt in out source destination Chain neutron-l3-agent-ov465d8c835 (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 39 2340 REJECT icmp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable Chain neutron-l3-agent-scope (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * rfp-09a379b5-9 0.0.0.0/0 0.0.0.0/0 mark match ! 0x4000000/0xffff0000 0 0 DROP all -- * qr-2cd58562-ad 0.0.0.0/0 0.0.0.0/0 mark match ! 0x4000000/0xffff0000 9. Disassociate the firewall from the router. $ neutron firewall-update --no-routers test-firewall Updated firewall: test-firewall 10. Recheck ip tables rules within router's namespace. $ ip netns exec qrouter-09a379b5-907f-4e3e-b29a-8701b82f2641 iptables -n -L -v Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 neutron-l3-agent-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 127 packets, 7668 bytes) pkts bytes target prot opt in out source destination 698 41976 neutron-filter-top all -- * * 0.0.0.0/0 0.0.0.0/0 698 41976 neutron-l3-agent-FORWARD all -- * * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 neutron-filter-top all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 neutron-l3-agent-OUTPUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain neutron-filter-top (2 references) pkts bytes target prot opt in out source destination 698 41976 neutron-l3-agent-local all -- * * 0.0.0.0/0 0.0.0.0/0 Chain neutron-l3-agent-FORWARD (1 references) pkts bytes target prot opt in out source destination 698 41976 neutron-l3-agent-scope all -- * * 0.0.0.0/0 0.0.0.0/0 99 5988 neutron-l3-agent-iv465d8c835 all -- * rfp-+ 0.0.0.0/0 0.0.0.0/0 366 21960 neutron-l3-agent-ov465d8c835 all -- rfp-+ * 0.0.0.0/0 0.0.0.0/0 99 5988 neutron-l3-agent-fwaas-defau all -- * rfp-+ 0.0.0.0/0 0.0.0.0/0 0 0 neutron-l3-agent-fwaas-defau all -- rfp-+ * 0.0.0.0/0 0.0.0.0/0 Chain neutron-l3-agent-INPUT (1 references) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x1/0xffff 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9697 Chain neutron-l3-agent-OUTPUT (1 references) pkts bytes target prot opt in out source destination Chain neutron-l3-agent-fwaas-defau (2 references) pkts bytes target prot opt in out source destination 99 5988 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 Chain neutron-l3-agent-iv465d8c835 (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 REJECT icmp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable Chain neutron-l3-agent-local (1 references) pkts bytes target prot opt in out source destination Chain neutron-l3-agent-ov465d8c835 (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 366 21960 REJECT icmp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable Chain neutron-l3-agent-scope (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * rfp-09a379b5-9 0.0.0.0/0 0.0.0.0/0 mark match ! 0x4000000/0xffff0000 0 0 DROP all -- * qr-2cd58562-ad 0.0.0.0/0 0.0.0.0/0 mark match ! 0x4000000/0xffff0000 11. The iptables rules "0 0 REJECT icmp -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable" is still active, although the firewall has been successfully disassociated from the distributed router. $ neutron firewall-show test-firewall +--------------------+--------------------------------------+ | Field | Value | +--------------------+--------------------------------------+ | admin_state_up | True | | description | | | firewall_policy_id | 53a8d733-e81c-4113-9354-d40b5b426e00 | | id | a468caca-c555-4f89-adbc-bcdbb06a3fca | | name | test-firewall | | project_id | ed2d2efd86dd40e7a45491d8502318d3 | | router_ids | | | status | INACTIVE | | tenant_id | ed2d2efd86dd40e7a45491d8502318d3 | +--------------------+--------------------------------------+ 12. The "neutron-l3-agent.log" on the compute node does not contain any entries regarding FWaaS. Any updates of a firewall or of its policies and rules do not have any effect when using distributed virtual routers (DVR). May someone please have a look? To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1716401/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp