[openstack-dev] [Neutron][L3] Representing a networks connected by routers

Paul Carver pcarver at paulcarver.us
Fri Jul 24 02:38:15 UTC 2015

On 7/23/2015 2:45 PM, Kevin Benton wrote:
>> We ran in to this long ago.
> What are some other examples? We've be good about keeping the network L2
> only. Segments, VLAN transparency, and other properties of the network are
> all L2.
> The example you gave about needing the network to see the grouping of
> subnets isn't the network leaking into L3, it's subnets requiring an L2
> container. Networks don't depend on subnets, subnets depend on networks. I
> would rather look at making that dependency nullable and achieving your
> grouping another way (e.g. subnetpool).

I think Kevin is right here. Network is fundamentally a layer 2 
construct, it represents direct reachability. A network could in 
principle support non-IP traffic (though in practice that may or may not 
work depending on underlying implementation.) Subnet is fundamentally a 
layer 3 construct it represents addressing for traffic that may need to 
flow between different networks (quite literally, that's where the name 
*inter*net protocol comes from.)

Because there is often a 1:1 relationship between network and subnet 
it's easy to blur the distinction, but I think it's worth keeping the 
concepts clear. An address scope or supernet (in the specific meaning of 
a summarized collection of subnets (e.g. a /23 made up of 8 /26s)) is a 
more accurate conceptual representation of multiple L2 segments with 
routing between them.

More information about the OpenStack-dev mailing list