Specification for FWaaS changes for DVR
Spec addresses the changes required for FWaaS to work with DVR to handle: * Perimeter Firewall support on N - S traffic * Ensure that E - W DVR traffic is not broken Implements: blueprint neutron-dvr-fwaas Change-Id: I2ea7e39b03655cf8ff5fe533b50c5d33ade6720f
This commit is contained in:
parent
6d5636c80c
commit
c610f97f85
130
specs/juno/neutron-dvr-fwaas.rst
Normal file
130
specs/juno/neutron-dvr-fwaas.rst
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
========================================================
|
||||||
|
FWaaS changes to support Distributed Virtual Router(DVR)
|
||||||
|
========================================================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/neutron/+spec/neutron-dvr-fwaas
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
As we move to the DVR model, current L3 based services such as FWaaS that rely
|
||||||
|
on seeing both sides of the traffic on the same namespace router are broken.
|
||||||
|
The reference implementation of FWaaS is built on iptables and is stateful in
|
||||||
|
that connections are tracked. DVR by intent distributes the routing
|
||||||
|
functionality across instances on compute nodes and all traffic is no longer
|
||||||
|
routed through a centralized router to achieve goals of scalability.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
To maintain FWaaS functionality in the context of a DVR deployment the first
|
||||||
|
step (which is being targeted in this proposal) is to ensure that we can
|
||||||
|
preserve current perimeter Firewall functionality (North - South) and ensure
|
||||||
|
that the manner in which rules are applied does not break normal DVR
|
||||||
|
East - West traffic flow.
|
||||||
|
|
||||||
|
DVR[1] classifies North - South traffic into two categories:
|
||||||
|
|
||||||
|
Default SNAT use case - traffic flowing out to the external network will go
|
||||||
|
through the Network/Service Node, and the SNAT Namespace hosted there, to get
|
||||||
|
out. Response traffic will again go thru the SNAT Namespace for translation
|
||||||
|
and is then directly switched to the appropriate VM in a Compute Node.
|
||||||
|
|
||||||
|
VMs with Floating IPs(FIP) use case - traffic flowing out will go through the
|
||||||
|
Internal Router for routing and translation and then through the FIP Namespace
|
||||||
|
on the Compute Node to the external network through its br-ex. And on the
|
||||||
|
incoming traffic, again the flow is through the br-ex on the Compute Node,
|
||||||
|
then the FIP Namespace and through the Internal Router which also handles
|
||||||
|
translation to the VM.
|
||||||
|
|
||||||
|
DVR runs L3Agent on the Network Node as well as on the Compute Nodes. Since
|
||||||
|
the FWaaS Agent runs in the context of the L3Agent, the FWaaS Plugin to Agent
|
||||||
|
messaging is already available. In the context of both of the above use cases,
|
||||||
|
FWaaS Agent on the Network/Service Node should install the Firewall Rules in
|
||||||
|
the SNAT Namespace, and the FWaaS Agent in the Compute Nodes should install
|
||||||
|
the Firewall Rules in the IR Namespace to be applied on traffic flowing
|
||||||
|
through the FIP Namespace (to ensure that there is no effect on East - West
|
||||||
|
flows). In this manner, the FWaaS requirement of seeing traffic on both
|
||||||
|
directions is satisfied for both of these use cases. FWaaS Agent can use the
|
||||||
|
agent_mode configuration option to determine whether it is on a
|
||||||
|
Network/Service node or Compute node to make the determination on how to
|
||||||
|
install the rules.
|
||||||
|
|
||||||
|
The SNAT interfaces are prefixed with 'sq-' in the SNAT namespace. The
|
||||||
|
interface of interest in the IR namespace has the prefix 'rfp-'. The API's
|
||||||
|
being added as part of DVR support in the L3Agent[2] will be used by the FWaaS
|
||||||
|
Agent to make this determination for inserting the Firewall Rules
|
||||||
|
appropriately.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
None. This is required as DVR - FWaaS integration will be broken.
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
No impact, the changes are on the Agent/iptables Driver.
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
No new REST API is introduced.
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
The effort is to minimize the Security impact as DVR functionality breaks
|
||||||
|
FWaaS. Coverage for North - South traffic but no support for East - West
|
||||||
|
traffic which will be addressed as a separate proposal post Juno.
|
||||||
|
|
||||||
|
Notifications impact
|
||||||
|
--------------------
|
||||||
|
None to existing.
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
No Support for FWaaS on East - West traffic.
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
None.
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
Deployers should be aware that this only targets North - South functionality.
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
None.
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
Primary assignee: skandasw / badveli_vishnuus / (TBD)
|
||||||
|
Other contributors: TBD
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
* FWaaS Agent changes to recognize agent_mode to identify appropriate
|
||||||
|
Namespace and interface.
|
||||||
|
* Corresponding FWaaS driver changes.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
Patches awaiting merge on [1].
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
Unit tests, Tempest API tests.
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
DVR and FWaaS documentation changes to reflect requirements.
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
[1] https://blueprints.launchpad.net/neutron/+spec/neutron-ovs-dvr
|
||||||
|
[2] https://review.openstack.org/#/c/89413/
|
Loading…
x
Reference in New Issue
Block a user