2017-07-03 99 views
0

我有一個運行ldapsearch的bash腳本,除了指向有時不可用的DC外沒有任何問題。如何在域名而不是特定主機上使用ldapsearch

該腳本使用-h(用於主機)選項指向特定的域控制器(DC)。我想指出域名,以便它在特定DC停止運行時仍能執行。

在我們的環境,我們必須下my.company.com 20 DC的。所以,我的ldapsearch查詢使用第一DC的1號樓與下面的選項,它的工作原理:

-H ldaps://bldg1dc01.my.company.com:636 

如果bldg1dc01關閉,該腳本將不會執行。所以我想這個腳本指向類似:

-H ldaps://my.company.com:636 

但是,當我這樣做,我得到:

ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1) 

什麼是查詢域名(my.company的語法。 com)而不是特定的DC,這樣我的腳本即使在DC關閉的情況下也能正常工作?

回答

1

編輯:

經過進一步的研究,我看着ldapsearch命令,我不知道的可能性,以提供多個URI。

的人的狀態(用於ldap-utils包命令):

指定URI(S)指的是LDAP服務器(一個或多個);預期使用空格或逗號分隔的URI列表 ;只允許 協議/主機/端口字段。作爲例外,如果沒有指定主機/端口 ,但是DN是,則根據RFC 2782,DN用於使用DNS SRV記錄來查找相應的主機.DN必須是非-empty的AVA其屬性類型爲「DC」(域組件),並且必須根據RFC 2396

轉義的序列因此,有使用DNS結果使ldapsearch的可能性。

例與google.com

# dig -t srv _ldaps._tcp.google.com +short 
5 0 636 ldap.google.com. 

所以,如果我做(逃避URI)搜索:

# ldapsearch -H ldaps:///dc%3Dgoogle%2Cdc%3Dcom -v 
ldap_initialize(ldaps://ldap.google.com:636) 
^C 

所以命令可以查找DNS SRV記錄

我的壞主張,我認爲是沒有進一步研究的唯一方法


不相關,但信息可能的情況下,不使用任何DNS reccords可用

沒有與你的語法沒有問題。這是對ldapsearch做什麼和LDAP是什麼的誤解。

LDAP是一個協議,ldapsearch命令是一個實現此協議的客戶端。

這與我試圖連接到端口443上的https://my.company.com並且它不起作用相同,但是當我在https://web01.my.company.com上執行時,它可以工作。

您需要在端口443上監聽my.company.com並負載均衡/代理請求。

對於LDAP也是如此。

+0

感謝您的迴應,我希望ldapsearch在其中實現了某種dns實現。 例如,當我打開powershell並在my.company.com上執行nslookup時,如果我在google.com(計算機IP列表)上執行此操作,則會得到相同的結果。我希望ldapsearch能夠固有地解析域名並將列表結果作爲數組用於連接。 我現在已經找到了一個備用解決方案。我使用逗號分隔的列表中所有20個域控制器的-H參數表現得非常好。 – scryptKiddy

+0

@scryptKiddy我編輯了我的答案。經過更多研究,我錯了,可以在DNS SRV記錄中查找。我相應地編輯了aswer。我的不好,我回答haslty – Esteban

+0

不用擔心,並感謝後續,這是我一直在尋找,感謝您的解釋呢! – scryptKiddy

相關問題