
Я запускаю BIND на OPNsense в качестве подчиненного сервера для внутренней зоны DNS.
Я заметил, что если главный сервер этой зоны выходит из строя, подчиненный сервер перестает отвечать на запросы для этой зоны (отвечая SRVFAIL) после первой неудачной попытки обновления.
Причина этого, вероятно, заключается в том, чтобы избежать выдачи устаревших данных с подчиненного сервера, если главный сервер недоступен. (В конце концов, главный сервер может быть в порядке, а сетевое соединение с подчиненным сервером просто вышло из строя.) Однако это плохая новость для устойчивости, если главный сервер вышел из строя и не может быть восстановлен вовремя.
Существует ли настройка, позволяющая BIND всегда предоставлять последнюю известную информацию для подчиненной зоны, независимо от того, как долго главный сервер был недоступен, даже с риском возврата устаревших данных?
Если да, то можно ли как-то получить к нему доступ из веб-интерфейса OPNsense (т.е. без неподдерживаемого вмешательства в работу)?
решение1
Для этого нет глобальной опции BIND 1. Вместо этого,6-е поле вашей записи SOAсообщает вторичным серверам, как долго им разрешено обслуживать устаревшую реплику зоны после того, как она не была обновлена.
@ SOA <mserver> <rperson> <serial> <refresh> <retry> <expire> <minttl>
Похоже, что время истечения срока действия вашей зоны установлено на то же значение, что и интервал обновления — вам следует увеличить его до 1w
или около того (например SOA ns1 hostmaster 1897 4h 1h 1w 30m
, ).
1 Глобальная опция, которую вы можете найти в более поздних версиях BIND, предназначена для рекурсивных резолверов, обслуживающих данные из кэша, а не для авторитетных серверов.