Skip to content

Instantly share code, notes, and snippets.

@Vegasq
Last active December 1, 2017 21:14
Show Gist options
  • Save Vegasq/31b7b71986d7eb837a07ef7cce3089ef to your computer and use it in GitHub Desktop.
Save Vegasq/31b7b71986d7eb837a07ef7cce3089ef to your computer and use it in GitHub Desktop.

During our investigation of QoS state in Juniper contrail we found strange behaviour of NetworkPolicies.

Test Case A

Let's assume we have 2 networks connected with 2 bidirectional policies:

  • Policy 1 should pass any protocol from/to network A with ports [ 0-6000 ] to network B. Also Policy 1 rule have configured QoS that should mark traffic with tag DSCP 30 (TOS 120).

  • Policy 2 should pass any protocol from/to network A with ports [ 6001-20000 ] to network B.

In such scenario networks A and B both have 2 different policies connected to them.

To verify Tags on network packets, we listen traffic with TCPDump on computes phisical interface. For unknown reason traffic have no correct marking.

Test Case B

Let's assume we have 2 networks connected with single bidirectional policy:

  • Policy 1 should pass any protocol from/to network A with ports [ 0-6000 ] (that rule have configured QoS that should mark traffic with tag DSCP 30 (TOS 120).) AND [ 6001-20000 ] (no QoS) to network B.

In such scenario networks A and B both have single policy.

To verify Tags on network packets, we listen traffic with TCPDump on computes phisical interface. Captured traffic have correct marking on it.

Summary

Seems that Contrail does not support multiple policies with QoS attached to networks, and force to use single policy with multiple rules, but still let us create broken infrostructure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment