Comment 0 for bug 1184696

Revision history for this message
Adin Scannell (amscanne) wrote : GRE tunneling is broken if hosts are on multiple subnets

Basic setup:
* Bunch of hosts on subnet X
* Host on subnet X and subnet Y (controller)
* Bunch of hosts on subnet Y

If local_ip for controller is from subnet X, then GRE tunnels are broken from controller to subnet Y.

-- more detail --

Because you can only specify a single local_ip when using GRE tunneling in openvswitch and this
information is propagated to all hosts regardless of their subnet -- allowing GRE to choose the local_ip
for tunnels results in one-directional flows because the IP won't be recognized (as one or more hosts
may be sending traffic on an IP that is not their recognized local_ip).

There is a pretty straight-forward fix -- the local_ip should be specified for all GRE tunnels, that way
all traffic will originate from the IP that the hosts in the cluster are aware of. The local_ip needs to be
routable from all hosts, but this is no different than before. There are more complex ways of dealing
with this problem, but I think that this is the right fix and keeps it simple.

I will be submitting a fix shortly via Gerrit.