![Bind9:主站->從站通知 IPv6 並回退到 IPv4](https://rvso.com/image/658728/Bind9%EF%BC%9A%E4%B8%BB%E7%AB%99-%3E%E5%BE%9E%E7%AB%99%E9%80%9A%E7%9F%A5%20IPv6%20%E4%B8%A6%E5%9B%9E%E9%80%80%E5%88%B0%20IPv4.png)
我在雙 IP 堆疊中運行 Debian 8 + Bind9 的兩台機器之間設置了一個小型主->從 DNS 方案。
主設備和從設備都擁有由綁定使用的 IPv4 和 IPv6,由組態參數強制執行listen-on
listen-on-v6
transfer-source
transfer-source-v6
notify-source
notify-source-v6
query-source address
query-source-v6 address
。
目前我的主人設定為通知奴隸:
notify yes;
also-notify { xxxx:xxxx:xxxx:xxxx::xxx5; x.x.x.5; };
因為我的奴隸有一個區域配置,如下所示:
zone "example.dev" {
type slave;
masters { xxxx:xxxx:xxxx:xxxx::xxx2; x.x.x.2; };
file "...";
};
這個設定工作正常,但是透過檢查日誌檔案(正如我預期的那樣),主伺服器會在每次區域更改時通知從伺服器兩次:
May 20 20:57:53 salvedns named[8568]: zone example.dev/IN: notify from x.x.x.2#52041: zone is up to date
May 20 20:57:53 salvedns named[8568]: zone example.dev/IN: notify from xxxx:xxxx:xxxx:xxxx::xxx2#51347: zone is up to date
一次透過 IPv4,另一次透過 IPv6。
有沒有辦法告訴綁定伺服器xxxx:xxxx:xxxx:xxxx::xxx5
x.x.x.5
確實是同一 DNS 伺服器的位址,並嘗試先透過 IPv6 通知它,如果失敗則透過 IPv4 重試?另外,如何在藥膏masters
聲明上做同樣的事情?
謝謝。
答案1
我不相信有一個配置選項可以滿足您的要求。然而,我也不認為雙重通知真的值得擔心。
雖然在此配置中它是多餘的,但它導致的開銷很小,並且通常根本沒有問題。
一般來說,接收多個通知訊息並不超出正常範圍,最初主要來自master+其他slave,但現在也有雙堆疊主機,甚至最初的規範預期如此:
4.2.每個從屬設備可能會收到同一 NOTIFY 請求的多個副本:一份來自主主設備,一份來自其他從屬設備,因為該從屬設備傳輸新區域並通知其潛在的對等方。 NOTIFY 協定透過要求從裝置/主裝置僅在更新 SOA RR 或確定不需要更新(這實際上意味著成功的區域傳輸之後)後才發送 NOTIFY 來支援這種多重性。因此,除非交付重新排序,任何從裝置收到的最後一個 NOTIFY 將是指示最新變更的通知。由於從屬設備始終僅從其已知的主控設備請求 SOA 和 AXFR/IXFR,因此在其每個主控設備完成每個區域更新後,它將有機會重試 SOA 的 QUERY。