Comment 35 for bug 1458890

Revision history for this message
Nell Jerram (neil-jerram) wrote : Re: Add segment support to Neutron

I realized last night that I had a hole in my understanding of how the
data path between VMs works, with a routed/segmented network. Then
while writing this comment I think I worked out the answer - so now
this is just a request for people to review and check that the
following is correct.

> Example: The typical use case is L2 segments that are restrained to a
> single rack (or some subnet of compute hosts), but are still part of a
> larger L3 network. In this case, the overall Neutron network would
> describe the L3 network, and the network segments would be used to
> describe the L2 segments.

So here is the data path between two VMs that are in in the same L3
network but on different L2 segments (=> different racks or pods):

 VM A ---- Host B ----------- router ----------- Host B ---- VM D
10.0.1.2 L2 segment #1 L2 segment #2 10.0.2.2
                  10.0.1/24 10.0.2/24

My worry last night was: When a data packet is sent from A to D,
doesn't it need to be routed on B - as opposed to being bridged - in
order to know that its next hop is the router?

But actually I suppose routing must happen even before that, on VM A,
and everything will work, with B bridging, if the routes on A look
like:

10.0.1/24 dev eth0
default via 10.0.1.1

Is that all correct? Thanks - Neil