简介
本文档介绍如何在内部域名服务器(NS)上为服务记录(SRV)创建精确条目,以解决缺少拆分域名系统(DNS)设置的问题。
作者:Zoltan Kelemen,编辑者:Joshua Alero和Lidiya Bogdanova,Cisco TAC工程师。
先决条件
要求
Cisco 建议您了解以下主题:
使用的组件
本文档中的信息基于以下软件和硬件版本:
- Microsoft Windows Server 2012
- 视频通信系统(VCS)/Expressway
注意:本文档中的信息可与Microsoft DNS服务器或BIND一起使用。您只需使用适合您特定DNS服务器的步骤。未提供其他类型DNS服务器的说明,但如果服务器支持此配置,则该概念可用于任何其他DNS服务器。
注意:内部NS供内部用户以及视频通信系统(VCS)/ Cisco Expressway-C使用。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
Pinpoint DNS概述
精确DNS条目是仅为单个主机创建的区域。此条目可以定义为名称服务器上的授权项,该名称服务器不对父域授权。这允许将此域的其他DNS查询转发到授权服务器。
除所需的授权开始(SOA)和名称服务器记录外,精确定位区域通常包含单个记录。此记录是自引用,与区域名称相同,显示为与Microsoft DNS中的父文件夹相同,或者由BIND zone文件中的@符号引用。记录可以是DNS支持的任何类型。@符号也用于Windows命令行界面(CLI)工具,其工作方式与BIND相同。
以下图像提供了这些记录的示例:
这是DNS系统的功能,不依赖于Cisco Jabber或Cisco Expressway应用中的任何机制。如果拆分DNS不可用,它也是Cisco Jabber部署的受支持解决方案。
如果域名服务器配置为域的授权或主服务器,则查询不会转发到该域内的名称,即使它无法解析特定名称。因此,为了在同一域内向域的内部和外部用户提供不同的名称解析,将使用拆分DNS。在拆分DNS配置中,内部DNS服务器维护带有内部特定条目的区域副本,而外部DNS服务器维护带有外部特定条目的区域副本。外部区域中存在但内部区域中不存在的条目必须无法解析内部查询。
由于这会导致管理开销,一些网络管理员宁可避免拆分DNS配置。在这些情况下,Pinpoint DNS条目提供了一种替代方案。
配置
创建DNS SRV记录
对于Cisco Jabber自动调配以及移动和远程访问(MRA)服务,每个域(以domain.com为例)涉及两个SRV记录:
- _collab-edge._tls.domain.com
- _cisco-uds._tcp.domain.com
如果Expressway和/或思科统一通信管理器(CUCM)是集群的,则可以为这些记录提供多个条目。
当domain.com的授权区域文件仅存在于外部NS上时,内部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可用于相同用途)。复制范围选项为域、林,或者,如果区域不处于活动状态,则可以使用-ZoneFile参数设置文件目录(AD)集成
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条目的样例:
配置BIND DNS服务器
使用BIND DNS服务器时,定位DNS条目的创建方式与常规区域文件相同。
$ORIGIN条目必须指向SRV记录的FQDN(例如_cisco-uds._tcp.domain.com),并且SOA和NS记录会照常添加。SRV是可选的(无论是定义还是覆盖SRV记录的精确DNS条目),而使用的名称@与区域的名称/源等同。
以下是_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进行移动和远程访问