Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Sequence diagram for network packet in OpenStack Neutron

I'm learning OpenStack Neutron and is interested to understand the network virtualization I'm looking for something like "sequence diagram" that describes the flow of the network packet that is sent in one VM and is received in another VM.

My understanding of the flow is as following for a simple flat virtual network:

an application A that is running on VM VM1 with virtual address VIP1:VPORT1 sends a message to application B that is running on VM VM2 (maybe in different node) with virtual address VIP2:VPORT2. (since the network is flat, i can assume that VIP1 and VIP2 have the same mask, can I?) the message is broken into packets and a packet goes to NIC in VM1 which is implemented in OpenStack Nova. NIC forwards it to network virtualization module in Nova. The virtualization module in Nova forwards it to OpenStack Neutron L2 agent. L2 agent checks internal cache to identify if VIP2 is in the local node 5.a if VIP2 is in local node it calls Nova module to send/broadcast the packet to specific/all NIC (in Nova) 5.b if VIP2 is not in local node, it calls neutron server to ask for VIP2:VPORT2 "location" (node) 6.b then it forwards the packet to the received "location". The location maybe cached for further use. Do I understand the flow correct?

Where can I find the sequence diagram that describing the flow or any other documentation?

Thank you.