The virtual network can connect together multiple virtual machines and provide a communication path between them, but what if you wanted to cross the Layer-2 network boundary and communicate across the networks. This is where the virtual router comes into the picture. With virtual routers you can connect multiple networks to each other. The way this works is, the tenant adds the subnet associated virtual network to the router. This creates a port on the virtual network and the port is assigned the IP address of the gateway for the subnet. When the virtual machines are offered IP addresses by the DHCP server on the network, the offer contains the IP address for the network gateway. The virtual router forwards the IP packets between the connected networks.
The default L3 plugin for Neutron implements these virtual routers using Linux network namespaces. A network namespace...