Manual Chapter : Disaggregation DAG Modes

Applies To:

Show Versions Show Versions

BIG-IP LTM

  • 15.0.1, 15.0.0, 14.1.3, 14.1.2, 14.1.0, 14.0.1, 14.0.0, 13.1.3, 13.1.1, 13.1.0
Manual Chapter
 

Disaggregation (DAG) Modes

BIG-IP® scalability relies on load balancing (parallelizing) the processing of incoming packets across a large number of TMMs (cores). This is accomplished with various disaggregation algorithms. This section provides a concise description of these algorithms. Note, selecting the wrong disaggregation mode can have a severe impact on performance.

DAG is configured per VLAN. Note, this means that the client and server sides of BIG-IP should be configured on different VLANs. So it's possible to configure different DAG modes for client and server connections. However, when a server responds to a client request, and a connection is already established, DAG is not used.

DAG Modes via TMSH

Table 1. DAG Modes via TMSH
DAG Mode Configuration Object TMSH Commands
Default-DAG VLAN $ modify net vlan <vlan_name> cmp-hash default
SP-DAG VLAN

$ modify net vlan <src_vlan_name> cmp-hash src-ip

$ modify net vlan <dst_vlan_name> cmp-hash dst-ip

RR-DAG VLAN

$ modify net vlan <vlan_name> dag-round-robin enabled

$ modify sys db dag.roundrobin.udp.portlist value "5060"

The following are required for SIP traffic:


$ modify ltm profile udp <udp_profile_name> idle-timeout 0
$ modify ltm profile udp <udp_profile_name> datagram-load-balancing enabled

Default DAG

The Default DAG uses a hash of source and destination port. It is useful when ephemeral ports are used in client side and server side connections. When source and destination ports are the same TMM-0 will be used. This is an issue in that the traffic will not be load balanced and TMM-0 will quickly be overloaded. This DAG requires randomness in the source or destination port. If a client doesn't specify a source port then an ephemeral port will be used and Default DAG will work properly. Note, the ephemeral port must increment randomly or by single digits. If it's incremented by an even number, such as two, or by the number of TMMs then it's possible that it will hash to the same TMM or a small set of TMMs, which will negatively impact BIG-IP® performance.

Key Points

  • Port Based.
  • Works best when clients use ephemeral ports.
  • Can work with 1 to n clients.
Default DAG example

Default DAG example

Source/Destination DAG (SP-DAG)

The SP-DAG uses a hash of source IP (from client) and destination IP address (server). This mode should be used when source and destination ports are hardcoded (for example 5060). In that case, a BIG-IP® system requires multiple client IP address or multiple server IP addresses. Keep in mind, most connections are initiated by the client and that's the "Source DAG" option. In this case, the "Destination DAG" could be a single IP, but the source client IP should have more that a single IP address.

Key Points

  • IP Address Based
  • Works best when number of clients is equal to or more than the number of TMMs in BIG-IP system.
  • Performance will be impacted if clients consist of only a few SIP Proxy connections. In this case the IP Address entropy will be too low to load balance the incoming packets across available TMMs.
Source/Destination DAG (SP-DAG) example

Source/Destination DAG (SP-DAG) example

Round Robin DAG (RR-DAG)

R-DAG was designed to overcome the low entropy limitations of Default DAG and SP-Dag; although for UDP only. Furthermore, RR-DAG is hardware only and can't be used in a VE. Round Robin DAG distributes traffic by sending each consecutive packet to a different TMM. It does not rely on the IP address, or source port, of the client. One limitation of RR-DAG is that it's global and can be configured for only one port.

SIP Specific Requirements

  • Immediate timeout and datagram load balancing must be set on the UDP Profile:

    $ modify ltm profile udp <udp_profile_name> idle-timeout 0
    $ modify ltm profile udp <udp_profile_name> datagram-load-balancing enabled

Key Points

  • UDP Only
  • Requires hardware (not an option in VE)
  • Sends each consecutive packet to a different TMM.

$ modify net vlan <vlan_name> dag-round-robin enabled

$ modify sys db dag.roundrobin.udp.portlist value "5060"

Round Robin DAG (RR-DAG) example

Round Robin DAG (RR-DAG) example