歡迎您光臨本站 註冊首頁

[已經解決]一個關於MS AD + Bind DNS的棘手問題--SRV記錄

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

[已經解決]一個關於MS AD + Bind DNS的棘手問題--SRV記錄

SRV 記錄本是一個域名系統 (DNS) 資源記錄,用於標識承載特定服務的計算機。SRV 資源記錄用於定位 Active Directory 的域控制器。要驗證域控制器的 SRV 定位器資源記錄。在這個記錄中,很多是用「下劃線(_)組成」。

在運行 Microsoft DNS 服務的伺服器上安裝 Active Directory 后,可以使用 DNS 管理控制台來驗證是否為每個 DNS 區域都創建了適當的區域和資源記錄。
Active Directory 在以下文件夾中創建自己的 SRV 記錄,其中 Domain_Name 為域名:
Forward Lookup Zones/Domain_Name/_msdcs/dc/_sites/Default-First-Site-Name/_tcp Forward Lookup Zones/Domain_Name/_msdcs/dc/_tcp
在這些位置,將顯示以下服務的 SRV 記錄:

_kerberos
_ldap

我們可以看到,這些記錄都有不少的「下劃線」,同時Microsoft DNS也都認可這種格式。

但在使用非 Microsoft DNS (如Linux Bind 9.3.2) 的伺服器來支持 Active Directory,麻煩卻來了。因為在這個版本中,所有記錄中不得含有「下劃線(_)」,如有記錄有下劃線時,都識為非法記錄,導致連Named服務都啟動不了,出現提示" Bad ower name (check-name)"。在named.conf中加上"check-name master ignore"后,Named服務倒是啟動了,可是忽略所有記錄中的錯誤,也包括帶有"下劃線"的這些記錄。這樣一台,AD 的 SRV記錄根本沒有註冊到DNS中,客戶端PC也根本找不到「域/域控制器」。怎麼辦?難道要放棄LINUX BIND DNS而改用Microsoft DNS?  那位大蝦有什麼解決方案啊?

註:BIND 9.2.2 可能識別帶有「下劃線」的記錄。總不可以升級后的版本不可以與Microsoft AD一起用,沒這個道理啊,如果這樣的話。那Linux以後如何混得下去哦!一定不可能。


BIND 9.2.2 中與AD有關的一些SRV記錄(所有域名為例子,請誤對照).

$ORIGIN dc._msdcs.bel-wx.wuxi.suntech.com.
$ORIGIN _tcp.Default-First-Site-Name._sites.dc._msdcs.bel-wx.wuxi.suntech.com.
_kerberos               SRV     0 100 88 bdc-belwx.bel-wx.wuxi.suntech.com.
                        SRV     0 100 88 pdc-belwx.bel-wx.wuxi.suntech.com.
_ldap                   SRV     0 100 389 bdc-belwx.bel-wx.wuxi.suntech.com.
                        SRV     0 100 389 pdc-belwx.bel-wx.wuxi.suntech.com.
$ORIGIN dc._msdcs.bel-wx.wuxi.suntech.com.
$ORIGIN _tcp.dc._msdcs.bel-wx.wuxi.suntech.com.
_kerberos               SRV     0 100 88 bdc-belwx.bel-wx.wuxi.suntech.com.
                        SRV     0 100 88 pdc-belwx.bel-wx.wuxi.suntech.com.
_ldap                   SRV     0 100 389 bdc-belwx.bel-wx.wuxi.suntech.com.
                        SRV     0 100 389 pdc-belwx.bel-wx.wuxi.suntech.com.
$ORIGIN _msdcs.bel-wx.wuxi.suntech.com.
_ldap._tcp.d03682fd-a1b0-4612-a2ff-ae435596d995.domains SRV 0 100 389 bdc-belwx.bel-wx.wuxi.suntech.com.
                        SRV     0 100 389 pdc-belwx.bel-wx.wuxi.suntech.com.
gc                      A       192.168.140.75
                        A       192.168.140.217
$ORIGIN gc._msdcs.bel-wx.wuxi.suntech.com.
_ldap._tcp.Default-First-Site-Name._sites SRV 0 100 3268 bdc-belwx.bel-wx.wuxi.suntech.com.
_ldap._tcp              SRV     0 100 3268 bdc-belwx.bel-wx.wuxi.suntech.com.
$ORIGIN _msdcs.bel-wx.wuxi.suntech.com.
_ldap._tcp.pdc          SRV     0 100 389 bdc-belwx.bel-wx.wuxi.suntech.com.

......

解決方法見5樓,改天整一個完整的,與大家分享.

[ 本帖最後由 windychan 於 2008-7-14 22:04 編輯 ]
《解決方案》

BIND9是支持SRV記錄的,起碼9.4.2是可以的。SRV記錄是在RFC2782中定義。name欄位帶下劃線「_」是符合定義的。
《解決方案》

原帖由 diancn 於 2008-6-19 13:57 發表 http://bbs.chinaunix.net/images/common/back.gif
BIND9是支持SRV記錄的,起碼9.4.2是可以的。SRV記錄是在RFC2782中定義。name欄位帶下劃線「_」是符合定義的。


---->SRV記錄是在RFC2782中定義。name欄位帶下劃線「_」是符合定義的。這點我上知道,但MS AD有的SRV 記錄中有「下劃線」,這是不可改變的事實啊。

我試試9.4.2吧!
《解決方案》

看來ms的ad創建的SRV 記錄 並不完全遵從RFC, 不知在使用時是否可以嚴格遵從RFC來使用下劃線,這樣來保證互通。  呵呵,對ms ad不太了解。
《解決方案》

網上這樣講的。回上班再試試

Microsoft Windows 2000使用一個稱為"_msdcs"來存放動態目錄數據。儘管這種子域不會與合法的主機名產生不一致,

  但是也使得在子域中存放非法的主機名成為可能。這種主機名的使用默認是被BIND拒絕的。

  動態目錄希望在_msdcs中有"全局目錄(global catalog)"(例如,gc._msdcs.example.com),這默認是拒絕的。為了解

  決此問題,我們推薦動態目錄設為獨立的域(例如,"_msdcs.example.com")並配置成不檢查非法的主機名。這應該是合理

  的,因為Window 2000伺服器創建這些數據,而且不應該會與其它希望訪問這些數據的Windows 2000機器產生不一致問

  題。

  例如,

  zone "_msdcs.example.com" {

  type master;

  file "_msdcs.example.db";

  check-names ignore;

  allow-update { localnets; };

  };
《解決方案》

確認5樓的這種方案

終於解決了BIND+ MS AD的問題.改天整出來與大家共享.
《解決方案》

原帖由 windychan 於 2008-7-14 22:02 發表 http://bbs.chinaunix.net/images/common/back.gif
終於解決了BIND+ MS AD的問題.改天整出來與大家共享.

收藏此貼,等待樓主整理更新
《解決方案》

收藏了
《解決方案》

我看了半天,貌似5樓沒什麼意義。

樓主想要實現什麼?用bind替換 ms域dns?

那麼 file "_msdcs.example.db" 的內容從何而來?

另外 一個ms域dns 的 master zone "_msdcs.example.com" 如何才能同步到bind9以上的dns 的 slave zone 中?

從ms的zone同步數據需要key,樓主如何通過認證的?

[火星人 ] [已經解決]一個關於MS AD + Bind DNS的棘手問題--SRV記錄已經有1409次圍觀

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