On 06/23/2015 04:17 PM, Ben Pfaff wrote: > On Mon, Jun 22, 2015 at 02:34:07PM -0400, Russell Bryant wrote: >> On 06/15/2015 08:00 PM, Ben Pfaff wrote: >>> On Wed, Jun 10, 2015 at 03:13:54PM -0400, Russell Bryant wrote: >>>> Provider Networks >>>> ================= >>>> >>>> OpenStack Neutron currently has a feature referred to as "provider >>>> networks". This is used as a way to define existing physical networks >>>> that you would like to integrate into your environment. >>>> >>>> In the simplest case, it can be used in environments where they have no >>>> interest in tenant networks. Instead, they want all VMs hooked up >>>> directly to a pre-defined network in their environment. This use case >>>> is actually popular for private OpenStack deployments. >>>> >>>> Neutron's current OVS agent that runs on network nodes and hypervisors >>>> has this configuration entry: >>>> >>>> bridge_mappings = physnet1:br-eth1,physnet2:br-eth2[...] >>>> >>>> This is used to name your physical networks and the bridge used to >>>> access that physical network from the local node. >>>> >>>> Defining a provider network via the Neutron API via the neutron >>>> command looks like this: >>>> >>>> $ neutron net-create physnet1 --shared \ >>>> > --provider:physical_network external \ >>>> > --provider:network_type flat >>>> >>>> A provider network can also be defined with a VLAN id: >>>> >>>> $ neutron net-create physnet1-101 --shared \ >>>> > --provider:physical_network external \ >>>> > --provider:network_type vlan \ >>>> > --provider:segmentation_id 101 >>> >>> I'm trying to understand what degree of sophistication these provider >>> networks have. Are they just an interface to a MAC-learning switch >>> (possibly VLAN-tagged)? Or do provider networks go beyond that, with >>> the features that one would expect from an OVN logical network >>> (e.g. port security, ACLs, distributed routing and firewalling, ...)? >> >> (Kyle and Salvatore, please sanity check me on this.) >> >> AFAIK, it is simply an interface to a MAC-learning switch, possibly VLAN >> tagged. >> >> It is not expected that a provider network would provide port security >> or ACLs (security groups). Those would still be the responsibility of >> OVN in this case. >> >> A provider network *may* (but usually does) handle routing and SNAT/DNAT >> if necessary. In that case it is managed externally to Neutron. The >> only knowledge Neutron has is about the address space on the provider >> network, since Neutron provides IPAM. Continuing with the example >> above, we can define a subnet on that provider network with: >> >> $ neutron subnet-create provider-101 203.0.113.0/24 \ >> > --enable-dhcp --gateway 203.0.113.1 >> >> Neutron would do address assignment and provide the DHCP server for this >> network. 203.0.113.1 would be the router. >> >> Neutron (and thus, OVN) would provide port-level firewalls (Neutron >> security groups) using OVN ACLs. Additional firewalls (such as at the >> router) may exist, but Neutron doesn't need to know about it as it's >> expected to be managed externally. > > I had to read this several times, but maybe I understand it now. Let me > recap for verification. > > A "tenant network" is what OVN calls a logical network. OVN can > construct it as an L2-over-L3 overlay with STT or Geneve or whatever. > Tenant networks can be connected to physical networks via OVN gateways. > > A "provider network" is just a physical L2 network (possibly > VLAN-tagged). In such a network, on the sending side, OVN would rely on > normal L2 switching for packets to reach their destinations, and on the > receiving side, OVN would not have a reliable way to determine the > source of a packet (it would have to infer it from the source MAC). Is > that accurate? >
Yes, all of that matches my understanding of things. I worry that not being able to explain it well might mean I don't have it all right, so I hope some other Neutron devs chime in to confirm, as well. -- Russell Bryant _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev