DNS Load Balancer Plugin¶
Overview¶
The DNS Load Balancer plugin uses dnsdist to distribute DNS queries across multiple resolvers with rules, address lists, and domain lists.
Plugin ID: dnslb
Service Control¶
DNS Servers (Backends)¶
GET /api/dnslb/servers
POST /api/dnslb/servers
{
"name": "resolver1",
"address": "8.8.8.8",
"port": 53
}
DELETE /api/dnslb/servers/:name
Rules¶
GET /api/dnslb/rules
POST /api/dnslb/rules
{
"name": "Block malware domains",
"type": "domain_list",
"list": "malware",
"action": "drop"
}
POST /api/dnslb/rules/reorder
{ "order": ["rule1", "rule2"] }
DELETE /api/dnslb/rules/:id
Address Lists¶
GET /api/dnslb/address-lists
POST /api/dnslb/address-lists
{
"name": "allowed_clients",
"entries": ["10.0.0.0/8", "192.168.0.0/16"]
}
DELETE /api/dnslb/address-lists/:name
Domain Lists¶
GET /api/dnslb/domain-lists
POST /api/dnslb/domain-lists
{
"name": "malware",
"domains": ["bad.example.com", "malware.example.org"]
}
POST /api/dnslb/domain-lists/reorder
DELETE /api/dnslb/domain-lists/:name
Stats & Config¶
GET /api/dnslb/stats
GET /api/dnslb/config
POST /api/dnslb/config
{ "config": "..." }
POST /api/dnslb/sync-files
Multi-Server Management¶
Manage multiple dnsdist servers from a single panel:
GET /api/dnslb/multi-servers
POST /api/dnslb/multi-servers
{
"name": "Edge DNS EU",
"host": "eu-dns.example.com",
"port": 2087,
"token": "secret"
}
DELETE /api/dnslb/multi-servers/:id
POST /api/dnslb/multi-servers/:id/test
POST /api/dnslb/multi-servers/:id/sync
POST /api/dnslb/multi-servers/sync-all
Dashboard (Proxied)¶
The dnsdist web dashboard is proxied through the panel: