Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1668746

Summary: [OVN][DVR] Traffic from VM with FIP to external host goes out via controller node rather than compute node [regression]
Product: Red Hat OpenStack Reporter: Roman Safronov <rsafrono>
Component: python-ovsdbappAssignee: Terry Wilson <twilson>
Status: CLOSED DUPLICATE QA Contact: Roman Safronov <rsafrono>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 14.0 (Rocky)CC: apevec, lhh, lmartins, majopela
Target Milestone: ---Keywords: Regression, Triaged, ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-04-30 08:49:26 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Roman Safronov 2019-01-23 13:47:08 UTC
Description of problem:
While DVR is enabled traffic from VM with FIP to external host goes out via controller node rather than compute node 

Version-Release number of selected component (if applicable):
puddle 14.0-RHEL-7/2019-01-07.1 

/var/lib/config-data/neutron/etc/neutron/neutron.conf:enable_dvr=True
/var/lib/config-data/neutron/etc/neutron/plugins/ml2/ml2_conf.ini:enable_distributed_floating_ip=True


How reproducible:
Always

Steps to Reproduce:
1.Create internal network, subnet, router, connect internal and external networks to the router. Create security group with icmp and ssh allowed. Create and start VM with the security group rules applied and connected to the internal network.
2.Create floating IP and attach to the VM
3.Try to ping external host (e.g. 8.8.8.8) from the VM

Actual results:
Traffic goes out via controller/networker host.

Expected results:
Traffic goes out via compute host.

Additional info:
external_mac not set for the nat object.

[heat-admin@controller-1 containers]$ ovn-nbctl find nat type=dnat_and_snat
_uuid               : 61e0295c-e327-41f7-8324-74929b74c84c
external_ids        : {"neutron:fip_external_mac"="fa:16:3e:57:fe:70", "neutron:fip_id"="772059ef-d0c0-4798-95de-be3e75301fb6", "neutron:fip_port_id"="95381926-1945-4e85-ac84-78f2aa35676a", "neutron:revision_number"="2", "neutron:router_name"="neutron-aeca181a-dd4d-426a-a772-9388ab25a77e"}
external_ip         : "10.0.0.216"
external_mac        : []
logical_ip          : "10.0.1.10"
logical_port        : "95381926-1945-4e85-ac84-78f2aa35676a"
type                : dnat_and_snat

Comment 1 Roman Safronov 2019-01-23 14:52:53 UTC
Can be related to this patch https://review.openstack.org/#/c/592538/

Comment 2 Roman Safronov 2019-01-24 11:56:58 UTC
After shutting down master chassis (controller-0 in my case) I noticed that traffic started to go out from a compute node. external_mac field for nat object was set properly.
Also after bringing controller-0 node up traffic of a vm with floating ip still was going out via compute node (as expected) and traffic from vm without floating ip was going via controller node (correct).

However I was able to reproduce the issue by recreating network, subnet, router and vm.

Comment 3 Roman Safronov 2019-01-28 12:51:52 UTC
Possible reason for the problem is specified here https://bugzilla.redhat.com/show_bug.cgi?id=1669306#c0

Comment 4 Terry Wilson 2019-04-29 18:22:39 UTC
Can this be closed now that https://bugzilla.redhat.com/show_bug.cgi?id=1669306 has been VERIFIED?

Comment 5 Roman Safronov 2019-04-30 08:49:26 UTC
The issue was already fixed. Verified that DVR functionality works properly on 14.0-RHEL-7/2019-04-12.1 with python2-ovsdbapp-0.12.3-1.el7ost. See https://bugzilla.redhat.com/show_bug.cgi?id=1669306

*** This bug has been marked as a duplicate of bug 1669306 ***