Примерно с неделю назад начал глючить резолвинг на серваке. При каждом резолвинге идет таймаут в 5 сек, а потом получает айпишник. Из ТП хостера глянули и открыли 53 входящий порт по UDP.
iptables -I INPUT -m udp -p udp --sport 53 -j ACCEPT
Только не понял, почему именно --sport, а не --dport.
Добавил в скрипт добавления правил iptables открытие 53 порта по UDP:
iptables -A INPUT -m udp -p udp --dport 53 -j ACCEPT
После ребута резолвинг в норме, но отваливается секунд через 15 после ребута. Резолвинг вообще не работает. Правило есть в iptables.
Сделал открытие 53 порта по TCP:
iptables -A INPUT -m tcp -p tcp --dport 53 -j ACCEPT
После ребута все ок, ничего не отваливается, но начинает отваливаться через несколько часов. Оба правила есть в iptables.
Лечится только ручным добавлением правила от хостера:
iptables -I INPUT -m udp -p udp --sport 53 -j ACCEPT
Но и после этого резовинг опять отваливается через несколько часов. Приходится повторно добавлять это правило. Правила из iptables никуда не исчезают, а дублируются.
Пробовал оставлять resolv.conf только адреса хостера и только айпишник гугла - поведение одинаковое. Причем есть еще серваки у этого же хостера, и резолвинг нормально работает и без открытия 53 порта. Проблема только тут.
Пробовал делать локальное кэширование dns через systemd-resolved, работает нормально, но по идее это костыль.
Куда копать?