概要
bindでフォワード先が複数ある場合、どこが優先されているのかを知りたい。
複数ある場合は問い合わせの結果が一番近いところになるが、どうやって管理しているのかが謎。
どうやらsrttという値によるらしいが、判断基準がわからないため検証する。
※ rtt(ラウンドトリップタイム)なので小さい方が良いと予想
設定
zone "amazon.com" IN {
type forward;
forward only;
forwarders {
1.1.1.1;
8.8.8.8;
123.123.123.123;
};
};
1.1.1.1.と8.8.8.8は疎通できるが、123.123.123.123は不可
検証メモ
- 初回はcacheをクリア
- それぞれTTLが切れてからdigをする
キャッシュクリア
sudo rndc flush
ダンプコマンド
sudo rndc dumpdb
1回目
sh-4.2$ sudo cat /var/named/data/cache_dump.db | grep -e '1\.1\.1\.1' -e 8.8.8.8 -e 123.123.123.123
; 123.123.123.123 [srtt 30] [flags 00000000] [edns 0/0/0/0/0] [plain 0/0] [ttl 1791]
; 8.8.8.8 [srtt 3947] [flags 00004000] [edns 1/0/0/0/0] [plain 0/0] [udpsize 512] [ttl 1791]
; 1.1.1.1 [srtt 1379] [flags 00004000] [edns 1/0/0/0/0] [plain 0/0] [udpsize 512] [ttl 1791]
2回目
sh-4.2$ sudo cat /var/named/data/cache_dump.db | grep -e '1\.1\.1\.1' -e 8.8.8.8 -e 123.123.123.123
; 123.123.123.123 [srtt 171860] [flags 00000000] [edns 0/1/1/1/1] [plain 0/0] [ttl 1744]
; 8.8.8.8 [srtt 3939] [flags 00004000] [edns 1/0/0/0/0] [plain 0/0] [udpsize 512] [ttl 1744]
; 1.1.1.1 [srtt 1748] [flags 00004000] [edns 2/0/0/0/0] [plain 0/0] [udpsize 512] [ttl 1744]
3回目
sh-4.2$ sudo cat /var/named/data/cache_dump.db | grep -e '1\.1\.1\.1' -e 8.8.8.8 -e 123.123.123.123
; 123.123.123.123 [srtt 171524] [flags 00000000] [edns 0/1/1/1/1] [plain 0/0] [ttl 1549]
; 8.8.8.8 [srtt 7002] [flags 00004000] [edns 2/0/0/0/0] [plain 0/0] [udpsize 512] [ttl 1549]
; 1.1.1.1 [srtt 46507] [flags 00004000] [edns 3/0/0/0/0] [plain 0/0] [udpsize 512] [ttl 1549]
4回目
sh-4.2$ sudo cat /var/named/data/cache_dump.db | grep -e '1\.1\.1\.1' -e 8.8.8.8 -e 123.123.123.123
; 123.123.123.123 [srtt 171188] [flags 00000000] [edns 0/1/1/1/1] [plain 0/0] [ttl 1453]
; 8.8.8.8 [srtt 19456] [flags 00004000] [edns 4/0/0/0/0] [plain 0/0] [udpsize 512] [ttl 1453]
; 1.1.1.1 [srtt 46416] [flags 00004000] [edns 3/0/0/0/0] [plain 0/0] [udpsize 512] [ttl 1453]
5回目
sh-4.2$ sudo cat /var/named/data/cache_dump.db | grep -e '1\.1\.1\.1' -e 8.8.8.8 -e 123.123.123.123
; 123.123.123.123 [srtt 170853] [flags 00000000] [edns 0/1/1/1/1] [plain 0/0] [ttl 1392]
; 8.8.8.8 [srtt 14647] [flags 00004000] [edns 5/0/0/0/0] [plain 0/0] [udpsize 512] [ttl 1392]
; 1.1.1.1 [srtt 46325] [flags 00004000] [edns 3/0/0/0/0] [plain 0/0] [udpsize 512] [ttl 1392]
この間tcpdumpで問い合わせ先を見ていたところ、ほぼ8.8.8.8へ問い合わせしていた。(たまに1.1.1.1へ行く程度)
結論
srttは小さい方が優先される(と思う)