Domain-Name-System

BIND9:發送特定 IP 地址的通知

  • May 19, 2015

我一直在嘗試在兩台機器之間實現綁定 master->slave 設置,但我對主機上用於通知我的從機的 IP 地址 BIND 存在問題。

這是我的設置:

Master: master.site.com - 10.0.0.2
Slave: slave.site.com - 10.0.0.10

Master 有一個權威區域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.2DNS,但顯然listen-on似乎不適用於傳出流量……

我怎樣才能解決這個問題?

您正在尋找notify-source選項。從BIND ARM

通知源

notify-source 確定將使用哪個本地源地址和可選的 UDP 埠來發送 NOTIFY 消息。此地址必須出現在從伺服器的 masters zone 子句或 allow-notify 子句中。此語句為所有區域設置通知源,但可以通過在配置文件中的區域或視圖塊中包含通知源語句來覆蓋每個區域或每個視圖。

至於為什麼 BIND 會以這種方式執行,這在大多數應用程序中是相當典型的。本地發起流量的源 IP 預設為與路由關聯的介面的主 IP。在 Linux 系統上,您可以通過鍵入並查看關鍵字ip route show後面的值來查看與每個路由關聯的源 IP 。src

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