Manual Chapter :
Disaggregation (DAG) Modes
Applies To:
Show VersionsBIG-IP LTM
- 17.1.1, 17.1.0, 17.0.0, 16.1.5, 16.1.4, 16.1.3, 16.1.2, 16.1.1, 16.1.0, 16.0.1, 16.0.0, 15.1.9, 15.1.8, 15.1.7, 15.1.6, 15.1.5, 15.1.4, 15.1.3, 15.1.2, 15.1.1, 15.1.0, 15.0.1, 15.0.0, 14.1.5, 14.1.4, 14.1.3, 14.1.2, 14.1.0, 14.0.1, 14.0.0
Disaggregation (DAG) Modes
About DAG modes for BIG-IP scalability
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
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 commands 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.
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.
Round Robin DAG (RR-DAG)
RR-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. The Round Robin DAG is configured on a per-VLAN basis.
SIP-specific requirements
Immediate timeout and datagram load balancing must be set on the UDP profile, as follows:
$ modify ltm profile udp
udp_profile_name
idle-timeout 0$ modify ltm profile udp
udp_profile_name
datagram-load-balancing enabledKey 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"