Bind9 не перенаправляет TCP запросы
У меня настроен dns-сервер bind.
Вот его конфиг с моими настройками:
zone "lokha.local" {
type forward;
forward only;
forwarders { 116.202.112.23; };
};
options {
directory "/var/cache/bind";
dnssec-validation no;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { none; };
listen-on port 57 { 127.0.0.1; };
forwarders {
8.8.8.8;
8.8.4.4;
};
recursion yes;
allow-transfer {"none";};
allow-query { any; };
allow-recursion { any; };
forward first;
querylog yes;
};
В конфиге настроено перенаправление запросов локальной зоны lokha.local на мой dns-сервер 116.202.112.23.
Мой dns-сервер 116.202.112.23 может отвечать только на TCP dns-запросы, потому что UDP трафик закрыт через firewall.
Я тестирую dns-запрос командой:
dig @127.0.0.1 +vc -p 57 host5.lokha.local
Аргумент +vc делает запрос через TCP.
Но bind все равно пытается сделать запрос через UDP:
21:49:13.042919 IP (tos 0x0, ttl 64, id 10022, offset 0, flags [none], proto UDP (17), length 77)
135.181.112.32.22902 > 116.202.112.23.53: [bad udp cksum 0x29e8 -> 0x5f4c!] 12467+% [1au] A? host5.lokha.local. ar: . OPT UDPsize=512 DO (49)
Как заставить bind9 использовать TCP?
Ответы (1 шт):
Автор решения: Алексей Ковальчук
→ Ссылка
Чтобы сделать то, что я хочу, надо добавить такую настройку в конфиг bind9:
server 0.0.0.0/0 {
tcp-only true;
};
Но этой настройки в старых версиях bind9 не было, по этому надо обновить bind9.
Я это сделал такими командами:
service bind9 stop
apt-get remove bind9
wget -O /etc/apt/trusted.gpg.d/bind.gpg https://packages.sury.org/bind/apt.gpg
sh -c 'echo "deb https://packages.sury.org/bind/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/bind.list'
apt-get update
apt-get install bind9