У меня есть DNS-сервер, который работает на виртуальном Linux-сервере с несколькими IP-адресами. Bind предоставляет довольно подробные журналы отладки, однако одна часть информации, которая, похоже, не регистрируется, - это просил Айпи адрес.
Например, если бы я управлял DNS-серверами Google 8.8.8.8 и 8.8.4.4 в одном окне, я бы посмотрел, запрашивал ли пользователь запись DNS через 8.8.8.8 или 8.8.4.4.
В идеале я бы не хотел задействовать другие инструменты мониторинга сетевого трафика и придерживался исключительно BIND. Другой мой интерес - изменить ответ на основе запрошенного IP-адреса сервера, аналогично предложению view в bind, но если первое может быть достигнуто, это будет намного проще.
Спасибо!
Параметры ведения журнала в Bind 9 довольно обширны, вам нужно будет настроить такой канал:
channel resolving {
file "data/named.resolve" versions 10 size 5m;
severity info;
print-time yes;
};
Затем категория для принудительного ввода запросов в канал
category queries {
resolving;
};
Все это происходит внутри logging {};
раздел.
Предостережения: если вы регистрируете все запросы, вы потратите много времени на их запись на диск, и они станут большими. Варианты версии 10, размер 5м - это способ, которым я держу журналы под контролем, он поддерживает 10 версий с максимальным размером 5 МБ. Затем у меня есть задание cron, которое анализирует информацию, прежде чем она будет удалена связыванием.
Я записываю в журнал такую информацию:
15-Apr-2014 16:15:15.041 client 192.168.xxx.xxx#40978: view That-one : query: XXXXX IN A + (192.168.xxx.xx)
IP-адрес внутри () - это IP-адрес ответившего сервера BIND.