DVR (Distributed Virtual Router) was first implemented at Juno. Virtual routers needed to work on Network Node, but, with DVR, they can work on Compute Nodes. Since Network Node runs virtual routers and some other networking functions for all VMs, it was a single point of failure and can be a performance bottleneck. If you need a highly available OpenStack system, you needed a cluster of Network Node. And if you need to scale out the networking, you needed to add more Network Nodes.
With DVR, those issues can be addressed. At Juno, virtual routers were distributed to Compute Nodes, but DHCP and SNAT stayed put on Network Node due to some technical challenges. We still need Network Node for them, meaning we also need a cluster for HA and more Network Nodes for scaling out the system. Distributing them, we can complete DVR and we no longer need Network Node at all. We submitted a RFE for DHCP and SNAT distribution and worked on them, targeting for Liberty[1][2]. In this session, we will explain what were the technical challenges and how we solved them. Also explain how we can use the completed DVR and what the benefits are for us.