У меня есть хост с установленной базой данных. Для доступа к базе данных клиенты используют псевдоним DNS (CNAME) - AliasOne - и порт базы данных.
Псевдонимами DNS управляют коллеги из другого отдела.
Мне пришлось запросить более явный псевдоним - AliasTwo - для того же хоста.
Сейчас: Мне нужно удалить AliasOne: как я могу проверить, какой псевдоним используется для подключения на хосте / к базе данных?
Я не получаю эту информацию в журналах базы данных.
Я попытался создать правило iptables:
iptables -A INPUT -p tcp -s AliasOne --dport 3306 -j LOG --log-prefix «AliasOne:» --log-tcp-options --log-ip-options
но он переводит псевдоним с его именем хоста, таким образом, он также будет регистрировать попытки подключения AliasTwo.
Есть какие-нибудь подсказки? (Я не хочу прерывания обслуживания, поэтому «удалить и посмотреть, не пожалуется ли кто-нибудь» - не вариант;))
Если протокол явно не требует включения имени хоста в рукопожатие / запросы, вы не можете определить с сервера, какое имя хоста использует клиент для подключения. Клиент просто подключается к IP-адресу, к которому разрешается имя хоста или псевдоним. (Видеть этот вопрос и ответ для более подробной информации.)
И насколько мне известно, MySQL не включает имена хостов в рукопожатие https://dev.mysql.com/doc/internals/en/connection-phase.html
Одним из решений может быть настройка сервера (временно) с дополнительным IP-адресом и указание каждого имени хоста / псевдонима на другой IP-адрес, а затем используемый IP-адрес будет определять используемое имя хоста. В качестве альтернативы можно отслеживать свои DNS-серверы и регистрировать поиск устаревшего псевдонима.