Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Unicast Packet Path - Intra-VN

This procedure steps through debugging the unicast packet path for intra-virtual network (intra-VN) traffic from VM1 to VM2 (on same compute node) and VM3 (on different compute node). In this example, the VMs listed are in the same subnet 10.1.1.0/24. Intra-VN traffic is within the same virtual network.

VM1

IP address 10.1.1.5/32 (Compute 1)

VM2

IP address 10.1.1.6/32 (Compute 1)

VM3

IP address 10.1.1.7/32 (Compute 2)

Intra-Compute Use Case

  1. Discover the vif interfaces corresponding to the virtual machine interfaces (VMI)s of the VM by using the command:

    You can also discover the vif interfaces by entering the introspect URL.

    Example:

    Note:

    Replace the IP address with the actual compute IP address in the introspect HTTP URL.

  2. Run the vif --get <index> command to verify the virtual routing and forwarding (VRF) and Policy flags are set in the vRouter interface (VIF).

    Example output verifying flags for each vif:

  3. Run the following command to display all of the entries from the bridge table:

    Example:

    Highlighted in the example is the destination MAC address of the destination VM in the bridge table and the next-hop identifier associated with it.

  4. Run nh --get <nh id> to display the next-hop details.

    Example:

    In the example, Oif:6 is the OIF index in the next hop which is the outgoing interface for the packet. The Encap Data corresponds to the L2 encapsulation that is added to the IP packet before the packet is forwarded to the outgoing interface.

  5. Run vif --get <oifindex> to get the outgoing VIF details.

    Example:

    The received packet RX and transmitted packet TX counters for the corresponding VIF interfaces are incremented when traffic is flowing through.

  6. Run the flow -l command to list the flows created. If the Policy flag is enabled on the VIFs, a flow is created as shown in the example.

    Example: Ping 10.1.1.6 from 10.1.1.5.

    The statistics in the forward and reverse flow are incremented when traffic is flowing through. If statistics are not getting incremented for a particular flow, that can indicate a potential problem in that direction. The flow action should be F or N for the packets to be forwarded or NATed out. A flow action of D indicates that packets will be dropped.

  7. Run the vrouter_agent_debug script to collect all of the relevant logs.

Inter-Compute Use Case

In an inter-compute case, the next-hop lookup points to the tunnel that takes the packet to the other compute node. The bridge entry will also indicate the Label/VNID added to the packet during encapsulation. Inter-compute traffic is between VMs on different compute nodes.

For Compute 1:

  1. Discover the vif interfaces corresponding to the virtual machine interfaces (VMI)s of the VM by using the command:

    You can also discover the vif interfaces by entering the introspect URL:

    Example:

    Note:

    Replace the IP address with the actual compute IP address in the introspect HTTP URL.

  2. Run the vif --get <index> command to verify the virtual routing and forwarding (VRF) and Policy flags are set in the vRouter interface (VIF).

    Example output verifying flags for each vif:

  3. Run the following command to display all of the entries from the bridge table:

    Example:

    In the example, 2:99:ef:64:96:e1 belongs to IP address 10.1.1.7 and label 27 is used to encapsulate the packet.

  4. Run nh --get <nh id> to get the next hop details.

    Example:

    In the example, the next-hop output indicates the next-hop type as Tunnel, encapsulation used as MPLSoGRE, the outgoing interface as Oif:0, and the corresponding source and destination IP addresses of the tunnel.

For Compute 2:

  1. Run the mpls --get <label> command to see the next hop mapped to the particular incoming MPLS table.

    Example:

  2. Run nh --get <nh_id> to get the next hop details.

    Example:

  3. Run vif --get <oifindex> to get the outgoing VIF details.

    Example:

    Note:

    If you are using VXLAN encapsulation, do the following on Compute 2:

    1. For Step 1, instead of running the mpls --get command, run the vxlan --get <vxlanid> command to get the mapping from VXLAN ID to the next hop.

    2. With VXLAN, the next hop points to a VRF translated next hop. Use the bridge lookup in the corresponding VRF, as shown in Step 3 to get the final outgoing next hop, which will point to the VIF interface.