Linux

如何檢查使用哪個 DNS 別名訪問伺服器?

  • January 30, 2019

我有一台安裝了數據庫的主機。為了訪問數據庫,客戶端使用 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 的連接嘗試。

  • 我沒能通過 nslookup、dig、last 得到答案。我用錯了嗎?

任何線索任何人?(我不希望服務中斷,所以“刪除並查看是否有人抱怨”不是一種選擇;))

除非協議明確要求在握手/請求中包含主機名,否則您無法從伺服器確定客戶端使用哪個主機名進行連接。客戶端只需連接到主機名或別名解析到的 IP 地址。(有關更多背景資訊,請參閱此問答。)

據我所知,MySQL 不包括握手中的主機名https://dev.mysql.com/doc/internals/en/connection-phase.html

一種解決方法可能是為伺服器(臨時)配置一個額外的 IP 地址,並將每個主機名/別名指向不同的 IP 地址,然後使用的 IP 地址將確定使用的主機名。或者監視您的 DNS 伺服器並註冊查找已棄用的別名。

引用自:https://serverfault.com/questions/951482