In the company's operations, DNS is still important, not only the name resolution requires DNS, some important services, such as load balancing, HTTP virtual host will also use it. I had previously developed a BIND DNS management system with Perl, but it had to run on the same server as bind DNS and did not support cluster operations. To accommodate Docker and distributed deployment, I have re-developed a set of Bind DNS Web management systems with Python Django.
1. System Features:
- Supports view view (resolves different addresses for users of different addresses)
- Support for DNS cluster (can create master, slave server, "Slave server" automatically synchronize from "master server")
- WEB Management Server detached from DNS server
- Using the Bind default, do not use the DLZ database schema (to ensure service performance and stability)
On the 4th, according to Dlz's test, the throughput of the Dlz method is 20 to 30 times times worse than the bind default, so I decided to use the BIND default mode.
2. Function Realization Method:
- View Management: File operations + RNDC
- Domain Management: RNDC
- Records Management: Dnspython
3.
Small screen (mobile phone) Adaptation:
[System development] Python implementation of the Bind intelligent DNS Web Management System