neutron/neutron/common
Aaron Rosen 843e60b790 Prevent cross plugging router ports from other tenants
Previously, a tenant could plug an interface into another tenant's
router if he knew their router_id by creating a port with the correct
device_id and device_owner. This patch prevents this from occuring
by preventing non-admin users from creating ports with device_owner
network:router_interface with a device_id that matches another tenants router.
In addition, it prevents one from updating a ports device_owner and device_id
so that the device_id won't match another tenants router with device_owner
being network:router_interface.

NOTE: with this change it does open up the possiblity for a tenant to discover
router_id's of another tenant's by guessing them and updating a port till
a conflict occurs. That said, randomly guessing the router id would be hard
and in theory should not matter if exposed. We also need to allow a tenant
to update the device_id on network:router_interface ports as this would be
used for by anyone using a vm as a service router. This issue will be fixed in
another patch upstream as a db migration is required but since this needs
to be backported to all stable branches this is not possible.

NOTE: The only plugins affect by this are the ones that use the l3-agent.

NOTE: **One should perform and audit of the ports that are already
        attached to routers after applying this patch and remove ports
        that a tenant may have cross plugged.**

Change-Id: I8bc6241f537d937e5729072dcc76871bf407cdb3
Closes-bug: #1243327
2014-03-27 14:18:58 +00:00
..
__init__.py Update License Headers to replace Nicira with VMware 2014-02-27 08:11:15 +00:00
config.py Send network-changed notifications to nova 2014-03-13 17:19:43 -07:00
constants.py Create new IPv6 attributes for Subnets 2014-03-17 14:35:46 -04:00
exceptions.py Prevent cross plugging router ports from other tenants 2014-03-27 14:18:58 +00:00
ipv6_utils.py Calculate stateless IPv6 address 2014-03-17 15:48:46 -04:00
legacy.py Kill 'Skipping unknown group key: firewall_driver' log trace 2014-03-13 12:46:06 -07:00
log.py Make neutron.common.log.log print module path 2013-09-07 02:10:57 +09:00
rpc.py Avoid loading policy when processing rpc requests 2013-11-28 13:02:02 +04:00
test_lib.py Remove plugin_name_v2 and extension_manager in test_config 2014-01-06 20:02:00 +09:00
topics.py LBaaS: move agent based driver files into a separate dir 2014-02-10 12:24:27 +04:00
utils.py Merge "Remove legacy quantum config path" 2014-03-15 01:24:01 +00:00