歡迎您光臨本站 註冊首頁

BIND 高級特性(二)-- 動態更新

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

BIND 高級特性(二)-- 動態更新

在很多大的網路中為了簡化維護量,都使用了DHCP來動態分配IP地址。這樣就要求DNS也能夠動態的添加和刪除記錄。BIND 8和9就支持DNS動態更新機制。
  主DNS和輔DNS在處理收到的動態更新記錄是有區別的,輔DNS在收到更新消息的時候,由於它不是該區的主DNS,它就會將這個更新消息轉發給它的主DNS,這稱作「更新轉發」。而主DNS當然就簡單地做更新而已。
  如何來創建動態更新消息呢?第一種是用軟體編程方式,採用ns_update()解析器常式來創建。第二種則是用命令行程序nsupdate命令手工創建。這裡主要講一下第二種,命令格式如下:
prereq yxrrset domain name type
  prereq nxrrset domain name type
  prereq yxdomain domain name
  prereq nxdomain domain name
  update delete domain name
  update add domain name ttl type rdata

  看起來似乎挺複雜,其實很容易。prereq 表示預先必須符合的條件,yxrrset表示存在記錄,nxrrset表示不存在記錄,而yxdomain則表示存在域名了。例如:

  # nsupdate
  >; prereq nxdomain www.xmgd.com.
  >; update add www.xmgd.com. 600 A 210.52.83.228
  >;
  這個例子告訴伺服器只有在域名不存在時才對域名 www.xmgd.com 添加一個地址。注意最後一個空行表示nsupdate發送這個更新消息。

   # nsupdate
   >; prereq yxrrset xmgd.com. MX
   >; update delete xmgd.com. MX
   >; update add xmgd.com. 600 MX 10 mail.xmgd.com.
   >; update add xmgd.com. 600 MX 50 pop.xmgd.com.
   >;
  這個例子告訴伺服器檢查伺服器是否有xmgd.com.的MX記錄,如果有的話就刪除原有的MX記錄,重新添加兩個。

  如何來限制動態更新呢?我們可以使用allow-update參數來限制動態更新,如:
  zone 「xmgd.com」 {
    type master;
    file "zone.xmgd.com";
    allow-update { x.x.x.x; };    // IP 地址
};

  不過,要注意的是如果我們允許從輔DNS向主DNS進行地址更新,那麼任何人只要向輔DNS發送更新消息,經過轉發更新也能進行原本不能進行的動態更新,如何防止這一點呢?可以在輔DNS上使用allow-update-forwarding參數來做轉發更新的限制,如:

  zone 「xmgd.com」 {
    type slave;
    file "zone.xmgd.com";
    allow-update-forwarding { x.x.x.x; };    // IP 地址
};
《解決方案》

BIND 高級特性(二)-- 動態更新

原來動態更新也是要自己手工修改的呀。
謝謝版主

另外問一下,許多域名服務提供商,現在提供了動態域名服務。請問這是怎麼實現的呀?
《解決方案》

BIND 高級特性(二)-- 動態更新

原帖由 "wangrujun"]原來動態更新也是要自己手工修改的呀。


:shock:  不用手工修改啊???
《解決方案》

BIND 高級特性(二)-- 動態更新

這種動態更新是有國際標準作依據的吧,
是使用什麼協議來完成的,
是不是所有的系統都支持?

thanks a million
《解決方案》

BIND 高級特性(二)-- 動態更新

動態更新: RFC 2136
BIND 和 WINDOWS 的 DNS Server 都支持動態更新機制。
《解決方案》

BIND 高級特性(二)-- 動態更新

這樣的話,和我手工改主dns的zone文件有什麼區別嗎?
《解決方案》

BIND 高級特性(二)-- 動態更新

動態更新這個機制是很多軟體支持的,像WINDOWS的DNS,DHCP伺服器就支持動態更新。我介紹 nsupdate 這個命令的意思是大家可以在自己的 DNS server 上試試看。在unix上寫shell腳本時也可以使用 nsupdate 這個命令的。並不是說應在修改 zone 數據文件時使用。
《解決方案》

BIND 高級特性(二)-- 動態更新

謝謝了。
呵呵,我對windows的dns不了解。看來還得看看。:)
《解決方案》

BIND 高級特性(二)-- 動態更新

請問第一種ns_update()是怎樣的?能說一下嗎?

我是想做一個類似www.vicp.net的動態DNS.

因為我有自己的RH72的DNS伺服器,配置比較低做不了其他應用.

我的寬頻是DHCP的地址,

或者有什麼方法比較好.

請教了!
《解決方案》

BIND 高級特性(二)-- 動態更新

我用的DHCP在WINDOWS下面可以動態更新,而在BIND9下面不可以?為什麼?


我以前用的是WINDOWS 2000,用他來支持動態更新,使用DHCP分配的IP地址都可以自動更新DNS記錄,現在我把他轉到BIND9下面卻不行了,我在配置文件中有

allow-update {any;};

語句

我的區域也是主要區域

DHCP的配製沒有變化,真是不知道怎麼回事啊!

[火星人 ] BIND 高級特性(二)-- 動態更新已經有774次圍觀

http://coctec.com/docs/service/show-post-12445.html