オープンソースのグローバルロードバランサー(GSLB)。
ソースコードがGSLBとしては少なく、高速動作が可能となっている。
ただし、ソースコードを減らす為にロギング機能が省略されていたり、
細かいヘルスチェックはスクリプトの作り込みが必要な為、
GSLBとしてフル機能を使いこなすにはコツが必要なソフトウェアである。
gdnsdはGSLBとして通信事業者レベルの採用実績があったりする。
また、ソースコードが少ないので機能追加も比較的楽に実装出来る。
| Parameter | Server-A | Server-B |
|---|---|---|
| OS | openSUSE Leap 42.3 | openSUSE Leap 42.3 |
| IP | 10.0.0.1 | 10.0.0.2 |
| USER | gdnsd | gdnsd |
| VERSION | v2.4.0 | v2.4.0 |
# zypper install libev4 libev-devel ragel # wget https://github.com/gdnsd/gdnsd/archive/v2.4.0.tar.gz # tar zxvf gdnsd-2.4.0.tar.gz # cd gdnsd-2.4.0 # ./configure --prefix=/usr/local/gdnsd-2.4.0 # make # make install
# cd /usr/local # ln -s /usr/local/gdnsd-2.4.0 gdnsd # cd /etc # ln -s /usr/local/gdnsd/etc/gdnsd gdnsd # vi /usr/lib/systemd/system/gdnsd.service --- [Unit] Description=gdnsd Authoritative GSLB type DNS Server After=local-fs.target network.target syslog.service [Install] WantedBy=multi-user.target [Service] Type=notify NotifyAccess=all ExecStart=/usr/local/gdnsd/sbin/gdnsd -c /etc/gdnsd -f start ExecStop=/usr/local/gdnsd/sbin/gdnsd -c /etc/gdnsd stop # High security setting MountFlags=slave DevicePolicy=closed PrivateDevices=true PrivateTmp=true ProtectSystem=full ProtectHome=true
# vi /usr/local/gdnsd/etc/config
---
options => {
username => gdnsd,
chaos_response => "GSLB",
listen => 0.0.0.0:53,
http_listen => 0.0.0.0:3506,
log_stats => 3600,
# tcp_threads => 2,
# udp_threads => 2,
include_optional_ns => true,
disable_text_autosplit => false,
zones_strict_data => false,
zones_rfc1035_auto => false,
state_dir => /var/lib/gdnsd,
run_dir => /var/run/gdnsd,
plugin_search_path => /usr/local/gdnsd/lib64/gdnsd,
}
| 設定の解説 |