Introduction
Infoblox DNS Traffic Control (DTC) integrates GSLB functionality with core DDI network services. Highly automated, it provides the performance, scalability, and availability that organizations require. DTC load balances DNS traffic based on client location, server location, and server availability. It monitors various parameters to ensure the client request is successfully served by a healthy server.
This blog post talks about implementing a functionality responsible for dynamically modifying pool ratios at the LBDN level based on specific parameters.
Dynamic Ratios for DTC Pools
Infoblox DTC supports dynamic ratio as the load balancing method at the pool level which balances the DNS traffic on the server as per the server health.
This blog describes a solution that aims at dynamically changing the DTC pool ratios based on parameters that can be polled using SNMP such as CPU Utilization, NIC Usage, Memory, RAM, etc. Please note that the current version of the project focusses on CPU Utilization.
The solution takes the parameter threshold as an input. The DTC servers are polled for their current CPU Utilization and consolidated at the DTC pool level. Once the threshold is reached, the algorithm calculates the optimum configuration according to the current utilization metrics and modifies the ratios accordingly.
Workflow
- User logs in with the Grid Master’s IP Address, username, and password
- After authentication, a list of all LBDNs is displayed with information about authoritative zones, patterns, load-balancing methods, and pools. This solution is only applicable for LBDNs with the load-balancing method as ‘RATIO’. Hence the dropdown does not include the LBDNs with a load-balancing method other than ‘RATIO’.
- Post LBDN selection, details of all the pools present in the selected LBDN are displayed along with their current CPU Utilization and current ratios.The user is then asked to enter the CPU Utilization threshold value and is given an option to select the restart option for the grid. If it is unchecked, every time the ratio is modified, you would need to manually restart the services on the grid for the new configuration to take effect.
- The solution starts monitoring the servers and starts consolidating the results at the pool level. Once the CPU threshold is reached, the algorithm calculates the optimum configuration according to the current utilization metrics and modifies the ratios dynamically. If the parameter values drop below the threshold, the pool ratios are reverted to the initial configuration and the monitoring continues.
Solution in Action
When the CPU Utilization is within the specified threshold:
When the CPU Utilization crosses the specified threshold:
Technology stack
The technology stack used for this solution:
- Python – Scripting language
- Django – Python Framework for web development
- PySNMP – Python Module for polling using SNMP
- Infoblox WAPIs – Infoblox REST API’s
- HTML, CSS, JS – Webpage Design
Conclusion
This solution aims at dynamically modifying the pool ratios at the LBDN level based on the parameters which can be polled using SNMP (CPU Utilization, NIC Usage, RAM, Memory, etc.). The algorithm is responsible for calculating the optimum ratio configuration according to the utilization metrics and modify the ratios accordingly.
To get started, the code and the installation instructions are available here.