DVR with Flat network result in ICMP reply DUP

Bug #1876092 reported by yangjianfeng
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Undecided
yangjianfeng

Bug Description

Test env:
Three compute node
One network node
Two ovs bridge binding to physical NIC and mapping to two physical_network respectively

Steps to reproduce:
1. Create two flat networks and subnets on physical_networks above mentioned respectively.
2. Then assocate both of them to a DVR router.
3. Create VMs on these two networks.
4. On one VM ping another VM

When The VMs hosting on different nodes, sometimes, the VM which execute ping will receice duplicate reply.

summary: - DVR with Flat result in ICMP reply DUP
+ DVR with Flat network result in ICMP reply DUP
Revision history for this message
yangjianfeng (yangjianfeng) wrote :

I read the neutron codes. I found the current codes don't support DVR with Flat network. I think we can add the support codes, or forbid Flat network assocate to DVR rotuer in API level.

tags: added: l3-dvr-backlog
Revision history for this message
Rodolfo Alonso (rodolfo-alonso-hernandez) wrote :

Hello Yang:

What network backend are you using?

In OVS (I assume you are using this one), only ports on VLAN and tunnel network will be bind [1] to a DVR router. If those ports are on a flat network, they won't be attached to a DVR router. The ping between those two networks should be done in the centralized router, in the network node.

Can you see this debug message in the logs? Can you trace the ping packets from/to the network node?

Regards.

[1]https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py#L584-L589

Revision history for this message
yangjianfeng (yangjianfeng) wrote :

Hi, Rodolfo, Think you for your information. I indeed used OVS backend, You are right, The neutron codes don't support FLAT network with DVR router. Due to lack the DVR flows about Flat network, the mac of qr-* don't be modified as host DVR mac, this will result in the fdb entry about FLAT network's qr-* in br-int become disorder(sometimes it's right, the qr-*'s mac map to the qr-* port; sometimes it's errror, the qr-*'s mac map to the int-br-* patch port). And the same router's qr-* in different compute nodes have same mac and ip, when we empty the the fdb entries of br-int, the first repley packet of VM will be broadcasted to all qr-* in defferent node. So I think this is the reason of DUP reply.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.opendev.org/726044

Changed in neutron:
assignee: nobody → yangjianfeng (yangjianfeng)
status: New → In Progress
Changed in neutron:
assignee: yangjianfeng (yangjianfeng) → Slawek Kaplonski (slaweq)
Changed in neutron:
assignee: Slawek Kaplonski (slaweq) → yangjianfeng (yangjianfeng)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.opendev.org/726044
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=cd721a7dcb9073eca2671ffdc9dc7ed9819163ed
Submitter: Zuul
Branch: master

commit cd721a7dcb9073eca2671ffdc9dc7ed9819163ed
Author: Yang JianFeng <email address hidden>
Date: Thu May 7 05:36:31 2020 +0000

    Make DVR router support FLAT network for ovs-agent

    Currently codes only support assocate tunnel network and vlan network
    to DVR router. This patch add codes that make the flat network assocate
    to DVR router and make it work fine.

    The patch also remove two unused constant entries: 'FLAT_VLAN_ID' and
    'LOCAL_VLAN_ID'

    Change-Id: I7d792ce288d96548298f169748565266a130bd86
    Closes-Bug: #1876092

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/ussuri)

Fix proposed to branch: stable/ussuri
Review: https://review.opendev.org/739295

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/train)

Fix proposed to branch: stable/train
Review: https://review.opendev.org/739297

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/stein)

Fix proposed to branch: stable/stein
Review: https://review.opendev.org/739298

tags: added: neutron-proactive-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/ussuri)

Reviewed: https://review.opendev.org/739295
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=7b41d63f8f65768800df68b5e33315672960b961
Submitter: Zuul
Branch: stable/ussuri

commit 7b41d63f8f65768800df68b5e33315672960b961
Author: Yang JianFeng <email address hidden>
Date: Thu May 7 05:36:31 2020 +0000

    Make DVR router support FLAT network for ovs-agent

    Currently codes only support assocate tunnel network and vlan network
    to DVR router. This patch add codes that make the flat network assocate
    to DVR router and make it work fine.

    The patch also remove two unused constant entries: 'FLAT_VLAN_ID' and
    'LOCAL_VLAN_ID'

    Change-Id: I7d792ce288d96548298f169748565266a130bd86
    Closes-Bug: #1876092
    (cherry picked from commit cd721a7dcb9073eca2671ffdc9dc7ed9819163ed)

tags: added: in-stable-ussuri
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (stable/stein)

Change abandoned by Yang JianFeng (<email address hidden>) on branch: stable/stein
Review: https://review.opendev.org/739298

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/train)

Reviewed: https://review.opendev.org/739297
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=468bc1989a752b18e8f857da052956f215f1298b
Submitter: Zuul
Branch: stable/train

commit 468bc1989a752b18e8f857da052956f215f1298b
Author: Yang JianFeng <email address hidden>
Date: Thu May 7 05:36:31 2020 +0000

    Make DVR router support FLAT network for ovs-agent

    Currently codes only support assocate tunnel network and vlan network
    to DVR router. This patch add codes that make the flat network assocate
    to DVR router and make it work fine.

    The patch also remove two unused constant entries: 'FLAT_VLAN_ID' and
    'LOCAL_VLAN_ID'

    Change-Id: I7d792ce288d96548298f169748565266a130bd86
    Closes-Bug: #1876092
    (cherry picked from commit cd721a7dcb9073eca2671ffdc9dc7ed9819163ed)

tags: added: in-stable-train
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 15.3.1

This issue was fixed in the openstack/neutron 15.3.1 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.