簡介
本文說明如何為內部名稱伺服器(NS)上的服務記錄(SRV)建立精確定位專案,以便解決缺乏分割網域名稱系統(DNS)設定的問題。
作者:Zoltan Kelemen,編輯者:Joshua Alero和Lidiya Bogdanova,思科TAC工程師。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
本文中的資訊係根據以下軟體和硬體版本:
- Microsoft Windows Server 2012
- 視訊通訊系統(VCS)/Expressway
附註:本檔案中的資訊可與Microsoft DNS伺服器或BIND搭配使用。您只需使用適用於您的特定DNS伺服器的步驟。未提供其他型別DNS伺服器的說明,但是如果伺服器支援此配置,則此概念可以用於任何其他DNS伺服器。
附註:內部NS由內部使用者以及影片通訊系統(VCS)/Cisco Expressway-C使用。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
精確定位DNS概述
Pinpoint DNS條目是僅為單個主機建立的區域。此條目可以定義為名稱伺服器上的權威條目,該條目不是父域的權威條目。這允許將此域的其他DNS查詢轉發到授權伺服器。
除了所需的授權開始(SOA)和名稱伺服器記錄之外,準點區域通常還包含一條記錄。此記錄是自引用,與區域的名稱相同,並與Microsoft DNS中的父資料夾顯示相同,或者由BIND zone檔案中的@符號引用。該記錄可以是DNS支援的任何型別。@符號也在Windows命令列介面(CLI)工具中使用,其工作方式與在BIND中相同。
以下影象提供了這些記錄的示例:
這是DNS系統的一個功能,不依賴Cisco Jabber或Cisco Expressway應用中的任何機制。如果拆分DNS不可用,它也是思科Jabber部署支援的解決方案。
如果域名伺服器被配置為域的權威或主伺服器,則即使域名伺服器無法解析特定名稱,也不會將對該域內名稱的查詢轉發給其轉發器。因此,為了正常地向域的內部和外部使用者提供同一域內的不同名稱解析,將使用拆分DNS。在拆分DNS配置中,內部DNS伺服器維護具有內部特定條目的區域副本,外部DNS伺服器維護具有外部特定條目的區域副本。對於內部查詢,外部區域中存在、但內部區域中不存在的所有條目必須無法解析。
由於這會導致管理開銷,因此某些網路管理員傾向於避免拆分DNS配置。在這些情況下,精確定位DNS條目提供了另一種選擇。
設定
建立DNS SRV記錄
對於Cisco Jabber自動調配以及移動和遠端訪問(MRA)服務,每個域都涉及兩個SRV記錄(以domain.com為例):
- _collab-edge._tls.domain.com
- _cisco-uds._tcp.domain.com
如果Expressway和/或Cisco Unified Communications Manager(CUCM)是集群的,則這些記錄可以有多個條目。
當外部NS上僅存在domain.com的授權區域檔案時,內部NS上需要_cisco-uds._tcp的精點DNS條目。首先需要建立精確定點DNS區域,然後建立區域中的SRV。
_cisco-uds._tcp SRV記錄只能在內部網路上解析,不能從外部解析,並且必須解析為具有使用者資料服務(UDS)的CUCM節點的完全限定域名(FQDN)。
_collab-edge._tls SRV記錄必須從外部網路解析,並且解析為Expressway-E伺服器的完全限定域名(FQDN)。
配置Windows DNS伺服器
點DNS條目作為任何其他區域建立,其名稱必須包含整個SRV名稱(例如_cisco-uds._tcp.domain.com)。 也可以通過圖形使用者介面(GUI)執行此步驟,不過以下示例假定尚未建立精確定位DNS條目。
為了新增SRV記錄本身,必須使用CLI工具。您不能通過GUI將SRV記錄新增到精確定位DNS條目,因為此操作不起作用。一旦通過CLI新增,這些SRV記錄就可以使用常規工具進行管理,就像使用任何其他條目一樣。Windows CLI提供兩種方法 — dnscmd或PowerShell命令。以下兩個示例均建立兩個精確定位DNS條目並為_cisco-uds._tcp新增一個SRV記錄
一次只能使用這兩種方法之一:
dnscmd . /zoneadd _cisco-uds._tcp.domain.com. /dsprimary
dnscmd . /recordadd _cisco-uds._tcp.domain.com. "@" SRV 10 10 8443 cucm.domain.local
- 示例2 — 使用PowerShell命令(因為dnscmd在將來版本的Microsoft Windows Server中將被棄用,PowerShell可以用於同一用途)。複製範圍選項為Domain、Forest,或者如果區域未整合Active Directory(AD),則可以使用-ZoneFile設定檔案
Import-Module DnsServer
Add-DnsServerPrimaryZone -Name "_cisco-uds._tcp.domain.com" -ReplicationScope "Domain"
Add-DnsServerResourceRecord -Srv -ZoneName "_cisco-uds._tcp.domain.com" -Name "@" –Priority 10 -Weight 10 -Port 8443 -DomainName "cucm.domain.local"
以下影象提供了在GUI中使用SRV記錄的精確定點DNS條目如何顯示的示例:
配置繫結DNS伺服器
使用BIND DNS伺服器,精確定位DNS條目的建立方式與常規區域檔案的建立方式相同。
$ORIGIN條目必須指向SRV記錄的FQDN(例如, _cisco-uds._tcp.domain.com),SOA和NS記錄會照常新增。SRV是可選的(無論是精確定位DNS條目定義還是覆蓋SRV記錄),且使用的名稱為@,等同於區域的名稱/源。
以下是_cisco-uds._tcp.domain.com.zone檔案內容的示例:
$TTL 1h
$ORIGIN _cisco-uds._tcp.domain.com.
@ IN SOA internalns.domain.local. hostmaster.domain.local. (
2016033000;
12h;
15m;
3w;
3h;
)
IN NS internalns.domain.local.
@ IN SRV 10 10 8443 cucm.domain.local.
以下示例說明如何將區域定義新增到named.conf:
zone "_cisco-uds._tcp.domain.com" IN {
type master;
file "_cisco-uds._tcp.domain.com.zone";
};
驗證
使用本節內容,確認您的組態是否正常運作。
- 使用命令nslookup(伺服器設定為內部NS),以驗證精確定位DNS條目。
以下示例說明如何從父域中查詢一個主機名,以及如何查詢在內部NS上建立的SRV記錄:
C:\>nslookup exp-e.domain.com internalNS.domain.local
Non-authorative answer:
Name: exp-e.domain.com
Address: 198.51.100.50
C:\>nslookup -type=srv _cisco-uds._tcp.domain.com internalNS.domain.local
_cisco-uds._tcp.domain.com SRV service location:
priority = 10
weight = 10
port = 8443
svr hostname = cucm.domain.local
cucm.domain.local internet address = 192.168.100.11
以下示例說明如何查詢未在內部NS上配置的一個主機名名,以驗證請求是否按預期轉發。
C:\>nslookup www.example.com internalNS.domain.local
Non-authoritative answer:
Name: www.example.com
Addresses: 203.0.113.42
- 將伺服器設定為公共NS或外部NS,然後重複相同步驟。_cisco-uds._tcp SRV記錄的SRV查詢失敗。
疑難排解
本節提供的資訊可用於對組態進行疑難排解。
如果nslookup驗證返回包含重複部分的主機名(例如cucm.domain.local.domain.local),則必須驗證DNS條目以使用完全停止符號終止,否則區域的原點將新增到解析的主機名。
如果對建立的條目存在疑慮,則只需從DNS伺服器將其刪除。雖然將條目新增到Microsoft DNS時需要CLI,但是可在GUI中安全且簡單地刪除條目。
相關資訊
有關MRA的多域部署(不同的內部和外部域名),請參閱以下文檔:
組態範例:在多域部署中通過Expressway/VCS進行移動和遠端訪問