diff --git a/doc/images/dhcp1.jpg b/doc/images/dhcp1.jpg new file mode 100644 index 000000000..bfe2e86da Binary files /dev/null and b/doc/images/dhcp1.jpg differ diff --git a/doc/images/dhcp2.jpg b/doc/images/dhcp2.jpg new file mode 100644 index 000000000..9b683a63a Binary files /dev/null and b/doc/images/dhcp2.jpg differ diff --git a/doc/source/distributed_dhcp.rst b/doc/source/distributed_dhcp.rst new file mode 100644 index 000000000..9284f1d23 --- /dev/null +++ b/doc/source/distributed_dhcp.rst @@ -0,0 +1,50 @@ +================== +Distributed DHCP +================== + +Current Neutron Reference Implementation +========================================= +The DHCP server is implemented using the Dnsmasq server +running in a namespace on the newtork-node per tenant subnet +that is configured with DHCP enabled. + +Currently High availability is achieved by running multiple Dnsmasq +servers on multiple Network nodes. + +There is a namespace with Dnsmasq server per tenant subnet + +Problems with current DHCP implementation: + +1) Management and Scalability + - Need to configure and mange multiple Dnsmasq instances +2) Centralize solution depended on the network node + +DHCP agent +----------- +Same Concept as L3 agent and namespaces for virtual router. +Using black boxes that implement functionality and using them as the IaaS +backbone implementation + + +Distributed DHCP In Dragonflow +=============================== +Dragonflow distribute DHCP policy/configuration using the pluggable DB. +Each controller read this DB and install hijacking OVS flows for DHCP traffic +and send that traffic to the controller. + +The controller dispatch this to the local DHCP application which answer with local +DHCP acks. + +The following diagrams demonstrate this process: + +.. image:: https://raw.githubusercontent.com/openstack/dragonflow/master/doc/images/dhcp1.jpg + :alt: Distributed DHCP 1 + :width: 600 + :height: 525 + :align: center + +.. image:: https://raw.githubusercontent.com/openstack/dragonflow/master/doc/images/dhcp2.jpg + :alt: Distributed DHCP 1 + :width: 600 + :height: 525 + :align: center \ No newline at end of file diff --git a/doc/source/distributed_dragonflow.rst b/doc/source/distributed_dragonflow.rst index a09770338..6f6f31357 100644 --- a/doc/source/distributed_dragonflow.rst +++ b/doc/source/distributed_dragonflow.rst @@ -82,6 +82,7 @@ Dragonflow Pluggable DB Distributed DHCP Application ============================ +`Distributed DHCP Application `_ Containers and Dragonflow ========================= diff --git a/doc/source/index.rst b/doc/source/index.rst index 32528dee4..2afbc2c4d 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -15,6 +15,7 @@ Contents: installation centralized_dragonflow distributed_dragonflow + distributed_dhcp usage contributing