我一直在嘗試在兩台機器之間實現綁定主站->從站設置,但我在主站上用於通知我的從機的 IP 位址 BIND 上遇到了問題。
這是我的設定:
Master: master.site.com - 10.0.0.2
Slave: slave.site.com - 10.0.0.10
主站有一個權威區域,site.com
並且配置為在區域更改時通知所有從站。該區域工作正常。它可以很好地回答查詢和dig @10.0.0.2 -t SOA site.com
所以,在主人身上我有這個named.conf.options
:
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no;
listen-on { 10.0.0.2; };
listen-on-v6 { any; };
allow-query { any; };
recursion yes;
allow-recursion { localhost; };
allow-notify { localhost; };
allow-transfer { localhost; 10.0.0.10; };
version none;
notify yes;
also-notify { 10.0.0.10; };
};
在奴隸身上:
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no;
listen-on { 10.0.0.10; };
listen-on-v6 { any; };
allow-query { any; };
recursion yes;
allow-recursion { localhost; };
allow-notify { localhost; 10.0.0.2; };
allow-transfer { localhost; 10.0.0.2; };
version none;
};
首先,通知似乎不起作用,tcpdump
在從機上使用我收到以下訊息:
02:32:50.269377 IP 10.0.0.1.15271 > 10.0.0.10.53: 64103 notify [b2&3=0x2400] [1a] SOA? site.com. (85)
02:32:50.269662 IP 10.0.0.10.53 > 10.0.0.1.15271: 64103 notify Refused- 0/0/0 (27)
正如您所看到的,雖然主設備設定為10.0.0.2
在發送通知時監聽,但它正在使用其主 IP 位址發送通知10.0.0.1
,從邏輯上講,我的從設備拒絕了通知...
為什麼主人不發送通知過來10.0.0.2
?有什麼配置可以強制執行嗎?這台機器擁有 3 個 IP,一個用於網站,另一個用於電子郵件,另一個用於 DNS...我需要製作它僅有的用於10.0.0.2
DNS,但顯然listen-on
不適用於傳出流量...
我怎樣才能解決這個問題?
答案1
您正在尋找該notify-source
選項。來自綁定手臂:
通知來源
notify-source 決定將使用哪個本機來源位址和可選的 UDP 連接埠來傳送 NOTIFY 訊息。該位址必須出現在從伺服器的主區域子句或允許通知子句中。此語句為所有區域設定通知來源,但可以透過在設定檔中的區域或檢視區塊中包含通知來源語句,在每個區域或每個檢視的基礎上覆寫該語句。
至於為什麼 BIND 會以這種方式運行,這在大多數應用程式中都是相當典型的。本機發起流量的來源 IP 預設為與路由關聯的介面的主 IP。在 Linux 系統上,您可以透過鍵入ip route show
並查看關鍵字後面的值來查看與每個路由關聯的來源 IP src
。