so this sounds like a philosophical existential question here... but I'm wondering...If I have a stack, with a bunch of VM's all on compute nodes in my environment. ANd I create a vRouter for one particular network to use as a gateway... Where is that vRouter located? Is it on one of the Neutron controller nodes? Or is it on the compute nodes that have a network interface to that vRouter? What happens if the node where the vRouter is taken out of service, is the connection lost? Is there anyway to move the vRouter from one node to another?
I'm not certain, but since no one else has answered I'll take a stab at it. If I'm wrong, Cunningham's Law should fix it.
I'm pretty sure that the router is a neutron-managed conglomerate of bridged interfaces (both virtual and physical) and iptables running on one of your network nodes (which may be the same hardware as your compute nodes).
Whether or not network and compute are the same hardware, neutron uses an ml2 driver (openvswitch for me, on Train) to get the packets from the VM to the network node. Neutron will allocate a "public" IP to the router, and use iptables to handle NAT.
I'm not aware of a way to manually move the router from one network node to another. I turned on the
kolla_enable_neutron_agent_ha
flag in Kayobe/Kolla-Ansible, though, and I saw 2 router agents built when I asked for a router. I'm betting if a node with a router goes down, a new router will be built to replace it automatically on another network node.I hope that helps, and that I didn't feed you a bunch of misinformation.