GLIBC 2.9 на Linux (и многих устройствах Android) ввёл параллельные DNS-запросы на одно соединение. На таких системах при использовании cURL вы увидите DNS-трафик примерно такой:
13:52:08.792925 IP 192.168.250.23.49672 > 192.168.250.1.domain: 35917+ A? major.io. (26)
13:52:08.792940 IP 192.168.250.23.49672 > 192.168.250.1.domain: 15759+ AAAA? major.io. (26)
13:52:08.793878 IP 192.168.250.1.domain > 192.168.250.23.49672: 35917 1/0/0 A 64.182.208.184 (42)
13:52:08.794592 IP 192.168.250.1.domain > 192.168.250.23.49672: 15759 1/0/0 AAAA 2604:7780:200:300::51 (54)
Обратите внимание, что запросы A и AAAA идут одновременно, чтобы ускорить разрешение DNS. Ответы приходят сразу же после. Всё это на сети с Mikrotik RB493G с прошивкой 6.27.
Однако у меня дома сеть с RB850Gx2 на версии 6.28. Linux-система пытается сделать такие же запросы и видит вот что:
13:55:29.962692 IP 192.168.10.223.59917 > 192.168.10.1.domain: 60448+ A? major.io. (26)
13:55:29.962710 IP 192.168.10.223.59917 > 192.168.10.1.domain: 46050+ AAAA? major.io. (26)
13:55:29.965593 IP 192.168.10.1.domain > 192.168.10.223.59917: 46050 1/0/0 AAAA 2604:7780:200:300::51 (54)
13:55:34.966781 IP 192.168.10.223.59917 > 192.168.10.1.domain: 60448+ A? major.io. (26)
13:55:34.969339 IP 192.168.10.1.domain > 192.168.10.223.59917: 60448 1/0/0 A 64.182.208.184 (42)
13:55:34.969425 IP 192.168.10.223.59917 > 192.168.10.1.domain: 46050+ AAAA? major.io. (26)
13:55:34.971675 IP 192.168.10.1.domain > 192.168.10.223.59917: 46050 1/0/0 AAAA 2604:7780:200:300::51 (54)
Linux-машина отправляет запросы на A и AAAA, но приходит только ответ на AAAA. Через пять секунд Linux отдельно запрашивает A и AAAA. Эта пятисекундная пауза довольно неприятна.
Проблема возникает и при использовании встроенного DNS-сервера Mikrotik, и при использовании Google/OpenDNS через Mikrotik. Но если подключить тот же Linux напрямую к кабельному модему или через WiFi раздачу с телефона — DNS-запросы летят как надо (как и через RB493G с версией 6.27).
Не может ли быть баг в RouterOS 6.28, из-за которого отбрасываются множественные DNS-запросы на одно соединение?
13:52:08.792925 IP 192.168.250.23.49672 > 192.168.250.1.domain: 35917+ A? major.io. (26)
13:52:08.792940 IP 192.168.250.23.49672 > 192.168.250.1.domain: 15759+ AAAA? major.io. (26)
13:52:08.793878 IP 192.168.250.1.domain > 192.168.250.23.49672: 35917 1/0/0 A 64.182.208.184 (42)
13:52:08.794592 IP 192.168.250.1.domain > 192.168.250.23.49672: 15759 1/0/0 AAAA 2604:7780:200:300::51 (54)
Обратите внимание, что запросы A и AAAA идут одновременно, чтобы ускорить разрешение DNS. Ответы приходят сразу же после. Всё это на сети с Mikrotik RB493G с прошивкой 6.27.
Однако у меня дома сеть с RB850Gx2 на версии 6.28. Linux-система пытается сделать такие же запросы и видит вот что:
13:55:29.962692 IP 192.168.10.223.59917 > 192.168.10.1.domain: 60448+ A? major.io. (26)
13:55:29.962710 IP 192.168.10.223.59917 > 192.168.10.1.domain: 46050+ AAAA? major.io. (26)
13:55:29.965593 IP 192.168.10.1.domain > 192.168.10.223.59917: 46050 1/0/0 AAAA 2604:7780:200:300::51 (54)
13:55:34.966781 IP 192.168.10.223.59917 > 192.168.10.1.domain: 60448+ A? major.io. (26)
13:55:34.969339 IP 192.168.10.1.domain > 192.168.10.223.59917: 60448 1/0/0 A 64.182.208.184 (42)
13:55:34.969425 IP 192.168.10.223.59917 > 192.168.10.1.domain: 46050+ AAAA? major.io. (26)
13:55:34.971675 IP 192.168.10.1.domain > 192.168.10.223.59917: 46050 1/0/0 AAAA 2604:7780:200:300::51 (54)
Linux-машина отправляет запросы на A и AAAA, но приходит только ответ на AAAA. Через пять секунд Linux отдельно запрашивает A и AAAA. Эта пятисекундная пауза довольно неприятна.
Проблема возникает и при использовании встроенного DNS-сервера Mikrotik, и при использовании Google/OpenDNS через Mikrotik. Но если подключить тот же Linux напрямую к кабельному модему или через WiFi раздачу с телефона — DNS-запросы летят как надо (как и через RB493G с версией 6.27).
Не может ли быть баг в RouterOS 6.28, из-за которого отбрасываются множественные DNS-запросы на одно соединение?