Bug 1570843
| Summary: | East/West traffic goes through controller node on DVR-VLAN deployment | ||
|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Eran Kuris <ekuris> |
| Component: | python-networking-ovn | Assignee: | Miguel Angel Ajo <majopela> |
| Status: | CLOSED NOTABUG | QA Contact: | Eran Kuris <ekuris> |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 13.0 (Queens) | CC: | amuller, apevec, ekuris, lhh, majopela, nyechiel, sgaddam, vkommadi |
| Target Milestone: | zstream | Keywords: | Reopened, Triaged, ZStream |
| Target Release: | 13.0 (Queens) | ||
| 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: | 2018-07-18 11:02:31 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: | |||
| Bug Depends On: | 1561880 | ||
| Bug Blocks: | |||
|
Description
Eran Kuris
2018-04-23 14:11:36 UTC
When the packet is leaving compute node, routing is already done in source compute node itself. I see these pipelines hits in source compute node for the packet 1) packet entered in net-64-1 switch pipeline and then directed to router Router_eNet pipeline 2) In Router Router_eNet pipeline, as part of routing decision, source mac is changed to 10.0.1.0 and destination mac to vm2 mac and handed over to destination switch net-64-2 pipeline 3) In net-64-2 pipeline, as the destination mac is in different node, vlan tag of net-64-2 is set to packet and is output through localnet port. In summary, 1) routing is done in vm1's compute node 2) packet is having destination network's(net-64-2) vlan tag 3) packet's source mac is 10.0.1.0 4) packet's destination mac is vm2's mac I dumped the packet content on compute node and verified the same. I guess triple0 external switch(which forwarding these tenant vlan network packets) is forwarding to all nodes instead of forwarding to destination compute. If the triple0 external switch is setup in the same way in ml2/ovs, we can have the same issue there. Can we have ml2/ovs setup to test this? (In reply to anil venkata from comment #2) > When the packet is leaving compute node, routing is already done in source > compute node itself. > > I see these pipelines hits in source compute node for the packet > 1) packet entered in net-64-1 switch pipeline and then directed to router > Router_eNet pipeline > 2) In Router Router_eNet pipeline, as part of routing decision, source mac > is changed to 10.0.1.0 and destination mac to vm2 mac and handed over to > destination switch net-64-2 pipeline > 3) In net-64-2 pipeline, as the destination mac is in different node, vlan > tag of net-64-2 is set to packet and is output through localnet port. > > In summary, > 1) routing is done in vm1's compute node > 2) packet is having destination network's(net-64-2) vlan tag > 3) packet's source mac is 10.0.1.0 > 4) packet's destination mac is vm2's mac > I dumped the packet content on compute node and verified the same. > > I guess triple0 external switch(which forwarding these tenant vlan network > packets) is forwarding to all nodes instead of forwarding to destination > compute. > > If the triple0 external switch is setup in the same way in ml2/ovs, we can > have the same issue there. Can we have ml2/ovs setup to test this? Anil when I checked same scenario on Geneve setup I did not see the issue. I dont have ml2/ovs to land you sorry. Ok, but this is still problematic, because, the MAC of the router will be flipping across several ports (the compute node ports that do the routing pipeline thing, and the gateway node when it forwards N/S traffic again with the router MAC address). I believe this will be an issue and we need to bring this discussion upstream to find a solution. (Like not translating the MAC in the case of VLAN, or making it go through geneve...? ) (In reply to Miguel Angel Ajo from comment #4) > Ok, but this is still problematic, because, the MAC of the router will be > flipping across several ports (the compute node ports that do the routing > pipeline thing, and the gateway node when it forwards N/S traffic again with > the router MAC address). > > I believe this will be an issue and we need to bring this discussion > upstream to find a solution. (Like not translating the MAC in the case of > VLAN, or making it go through geneve...? ) And for what Anil said, it makes sense, you would be seeing the traffic also in the network node because the bridge is propagating the traffic there to (hub mode?) As per talks with Anil, traffic is not going through the network node, it's just seen on the network node because the switch between the VMs is propagating the traffic. reopening as per IRC conversation Can you provide tcpdump logs (specially with the -e flag to have the L2 headers) ? or any working environment to check ? I cant deploy VLAN environment because of this patch: https://review.openstack.org/#/c/565053/ Reassigning to myself for verification I have verified that this doesn't really happen. I'm still working with Anil on: https://bugzilla.redhat.com/show_bug.cgi?id=1561880 |