简介
本文档介绍如何在Catalyst 9800无线控制器上配置组播域名服务(mDNS)网关功能。
先决条件
要求
Cisco 建议您了解以下主题:
- mDNS Bonjour协议
- Catalyst 9800无线控制器
使用的组件
本文档中的信息基于以下软件和硬件版本:
- C9800-CL-K9版本16.12.1s
- WS-C3560CX-12PC-S
- C9117AXI-A
- Chromecast NC2-6A5-D
- MacbookPro 10.14.5
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
本文档还解释这种称为mDNS(或Bonjour)的特殊组播流量如何由C9800控制器处理。
mDNS桥接
在C9800架构中,mDNS(Bonjour协议)桥接是指相同的L2广播域Bonjour TTL=1协议数据包转发。 数据平面通过以下方式为每个WLAN的有线端口和无线接口上接收的数据包启用mDNS桥接功能: 默认.这是默认行为,无需进行特定配置,因为即使全局mDNS也不需要启用以允许mDNS桥接工作,但是,如果需要,您可以通过更改WLAN设置中的mDNS模式对每个WLAN禁用它。如果启用无线接入点(AP)控制和调配无线接入点(CAPWAP)组播 — 组播模式,C9800会将每个mDNS数据包桥接到控制器上配置的AP组播组,以便无线客户端可以接收该数据包,否则,它可以创建收到的每个mDNS数据包的副本,然后通过CAPWAP单播隧道将该数据包单独桥接到每个单个AP。在这两种情况下,C9800还将mDNS数据包桥接到发起mDNS数据包的客户端VLAN上的有线网络。
因此,只要mDNS握手涉及的设备(例如客户端和Chromecast)位于同一子网,mDNS就可以在C9800中运行,无需特殊配置。理想情况下,最好使用mDNS网关过滤mDNS流量,如下一节所述。
mDNS网关
AireOS无线控制器上引入的mDNS网关功能在来自16.11.1的Catalyst 9800无线控制器上也受支持。默认情况下,此功能处于禁用状态,您可以在全局启用此功能后针对每个WLAN启用/禁用它。
mDNS网关功能的工作方式与之前的AireOS无线控制器相同,C9800在有线和无线接口上侦听Bonjour服务(mDNS通告和查询),缓存从内部数据库中每个源/主机通告的这些Bonjour服务(AirPlay、AirPrint、Googlecast等),能够在不同的广播域之间桥接这些mDNS数据包,同时过滤不需要的服务并避免其在网络中的组播流。这样,您可以在不同的子网中拥有此类服务的源和客户端,并控制网络中的mDNS流量。
充当mDNS网关的C9800对来自客户端(用于缓存服务)的mDNS查询做出应答,这些客户端使用其IP地址获取这些mDNS响应,该VLAN分配给请求该服务的客户端。这就是为什么C9800控制器上所有需要mDNS/Bonjour服务的客户端的VLAN必须在交换虚拟接口(SVI)上配置有效的IP地址。
有关Bonjour/mDNS网关功能的详细信息,请参阅AireOS无线局域网控制器Bonjour阶段III部署指南。
配置
网络图
这是示例设置的图。其目的是允许无线客户端使用来自不同子网的mDNS服务,这需要mDNS网关,如图所示。
通过图形用户界面配置mDNS网关
步骤1:要全局启用mDNS网关,请导航到配置>服务> mDNS。在Global下,切换到Enable mDNS Gateway,然后选择Apply,如图所示。
第 2 步(可选):为自定义服务策略配置自定义mDNS服务列表。如果要使用默认mDNS服务列表和服务策略,请转到步骤5。
在Configuration > Services > mDNS下,在Service Policy选项卡中,根据需要配置新的服务列表。C9800具有大多数无线设备使用的预定义公共服务。如果不需要特殊(不可用)服务,可以使用预定义的可用服务创建列表,但是,如果需要,还可以添加新服务(使用服务定义)。
您需要两个,一个是传入(IN)方向的服务列表,一个是传出(OUT)方向的服务列表(因此,当进入C9800和离开它时,都会过滤所需的服务;因此,两个列表应具有相同的服务)。
1.定义IN服务的服务列表名称。
2.选择IN方向。
3.选择Add Services。
4.显示“可用服务”下拉列表。选择所需的服务和消息类型any。
5.重复步骤,根据需要添加更多服务。
6.选择Apply to Device,如图所示。
1.定义OUT服务的服务列表名称。
2.选择OUT方向。
3.将可用服务移到已分配的服务列表。
5.重复步骤,根据需要添加更多服务。
6.选择Apply to Device,如图所示。
提示:根据上一个AireOS WLC的迁移任务,您可以根据AireOS默认mDNS列表构建新列表。
第 3 步(可选):如果使用自定义服务列表(第2步),您需要定义自定义mDNS服务策略,以便与这些自定义服务列表一起使用。导航到配置>服务> mDNS >服务策略。 选择Service Policy,然后执行以下步骤:
1.定义服务策略名称。
2.将自定义服务列表IN添加到服务列表输入。
3.将客户服务列表添加到服务列表输出。
4.在Location下,选择site-tag、Location Specific Services(LSS)或您的首选可用选项。在本示例中,使用site-tag,如图所示。
第 4 步: (可选)。将mDNS服务策略传递到策略配置文件。
导航到Configuration > Tags & Profiles > Policy > Policy Profile Name > Advanced,然后从mDNS Service Policy下拉列表中选择之前创建的自定义mDNS服务策略(在本例中为mdns-policy1),然后选择Update和Apply to Device,如图所示。
第五步:导航到Configuration > Tags & Profiles > WLANs > WLAN > Advanced,然后选择Gateway on mDNS mode下拉列表,然后选择Update和Apply to Device。默认模式为桥接(您可以使用Drop在WLAN上禁用/丢弃mDNS服务),如图所示。
如果未使用自定义服务策略,则WLAN使用分配给策略配置文件的default-mdns-service-policy,该策略使用mDNS default-service-list。您可以使用以下命令验证默认服务列表:
C9800#show running-config mdns-sd default-service-list
=======================================================================
mDNS Default Service List
=======================================================================
Service Name PTR Name
=======================================================================
airtunes : _raop._tcp.local
airplay : _airplay._tcp.local
homesharing : _home-sharing._tcp.local
google-chromecast : _googlecast._tcp.local
printer-ipp : _ipp._tcp.local
printer-ipps : _ipps._tcp.local
printer-lpd : _printer._tcp.local
printer-socket : _pdl-datastream._tcp.local
itune-wireless-devicesharing2 : _apple-mobdev2._tcp.local
通过命令行界面配置mDNS网关
步骤1:使用以下命令全局启用mDNS:
C9800#conf t
Enter configuration commands, one per line. End with CNTL/Z.
C9800(config)#mdns-sd gateway
C9800(config-mdns-sd)#transport both
C9800(config-mdns-sd)#active-query timer 30
C9800(config-mdns-sd)#exit
C9800(config)#
第 2 步(可选):为IN服务配置自定义服务列表,并从可用列表中添加所需的不同服务:
C9800(config)#mdns-sd service-list my-mdns-list IN
C9800(config-mdns-sl-in)#match ?
airplay airplay
airserver airserver
airtunes airtunes
amazon-fire-tv amazon-fire-tv
apple-airprint apple-airprint
apple-continuity apple-continuity
apple-file-share apple-file-share
apple-homekit apple-homekit
apple-itunes-library apple-itunes-library
apple-itunes-music apple-itunes-music
apple-itunes-photo apple-itunes-photo
apple-keynote apple-keynote
apple-rdp apple-rdp
apple-remote-events apple-remote-events
apple-remote-login apple-remote-login
apple-screen-share apple-screen-share
apple-timecapsule apple-timecapsule
apple-timecapsule-mgmt apple-timecapsule-mgmt
apple-windows-fileshare apple-windows-fileshare
fax fax
google-chromecast google-chromecast
homesharing homesharing
itune-wireless-devicesharing2 itune-wireless-devicesharing2
multifunction-printer multifunction-printer
phillips-hue-lights phillips-hue-lights
printer-ipp printer-ipp
printer-ipps printer-ipps
printer-lpd printer-lpd
printer-socket printer-socket
roku roku
scanner scanner
spotify spotify
web-server web-server
workstation workstation
C9800(config-mdns-sl-in)#match airtunes message-type any
C9800(config-mdns-sl-in)#exit
为OUT服务配置自定义服务列表,并从可用列表中添加所需的不同服务:
C9800(config)#mdns-sd service-list my-mdns-list-out OUT
C9800(config-mdns-sl-out)#match ?
airplay airplay
airserver airserver
airtunes airtunes
amazon-fire-tv amazon-fire-tv
apple-airprint apple-airprint
apple-continuity apple-continuity
apple-file-share apple-file-share
apple-homekit apple-homekit
apple-itunes-library apple-itunes-library
apple-itunes-music apple-itunes-music
apple-itunes-photo apple-itunes-photo
apple-keynote apple-keynote
apple-rdp apple-rdp
apple-remote-events apple-remote-events
apple-remote-login apple-remote-login
apple-screen-share apple-screen-share
apple-timecapsule apple-timecapsule
apple-timecapsule-mgmt apple-timecapsule-mgmt
apple-windows-fileshare apple-windows-fileshare
fax fax
google-chromecast google-chromecast
homesharing homesharing
itune-wireless-devicesharing2 itune-wireless-devicesharing2
multifunction-printer multifunction-printer
phillips-hue-lights phillips-hue-lights
printer-ipp printer-ipp
printer-ipps printer-ipps
printer-lpd printer-lpd
printer-socket printer-socket
roku roku
scanner scanner
spotify spotify
web-server web-server
workstation workstation
C9800(config-mdns-sl-out)#match airplay
C9800(config-mdns-sl-out)#exit
第 3 步(可选):使用以下命令创建mDNS服务策略:
C9800(config)#mdns-sd service-policy mdns-policy1
C9800(config-mdns-ser-pol)#location site-tag
C9800(config-mdns-ser-pol)#service-list my-mdns-list IN
C9800(config-mdns-ser-pol)#service-list my-mdns-list-out OUT
C9800(config-mdns-ser-pol)#exit
C9800(config)#
第 4 步(可选):使用以下命令将mDNS服务策略添加到策略配置文件:
C9800(config)#wireless profile policy my-policy-profile
C9800(config-wireless-policy)#mdns-sd service-policy mdns-policy1
Warning! Ensure mDNS service policy is configured globally.
C9800(config-wireless-policy)#exit
第五步:使用以下命令在WLAN中启用mDNS网关:
C9800(config)#wlan 9800-mdns
C9800(config-wlan)#shut
C9800(config-wlan)#mdns-sd gateway
Warning! Ensure global mDNS gateway is configured.
C9800(config-wlan)#no shut
C9800(config-wlan)#exit
锚点 — 外部场景
当您在移动锚点WLAN中实施mDNS网关功能时,其中外部WLC和锚点WLC均为C9800,无线客户端从锚点控制器中的VLAN获取其IP地址,这是行为和所需的设置:
- 锚点控制器是充当mDNS网关的控制器,它缓存连接到该锚点WLAN的所有设备和相应VLAN的服务,并响应对这些缓存服务的查询。
- 当响应查询时,C9800锚点控制器可以获取响应,并使用分配给请求服务的客户端的VLAN的SVI IP地址。因此,所有需要mDNS服务的客户端VLAN必须在锚点中的SVI处具有IP地址。
- 必须在外地和锚点WLC上全局启用mDNS网关。
- 外部和锚点控制器都可以使用具有相同服务(默认或自定义)的相同mDNS服务策略,这些服务可以分配给链接到此锚点WLAN的策略配置文件。所有这些配置设置与本文档中介绍的步骤相同。
- 移动锚点WLAN设置的唯一配置差异如下;导航到WLAN > Advanced设置,mDNS模式,在外部C9800中必须为Bridging,在锚点C9800中必须为Gateway。
验证
使用本部分可确认配置能否正常运行。
使用命令:
C9800#show mdns-sd summary
mDNS Gateway: Enabled
Active Query: Enabled
Periodicity (in minutes): 30
Transport Type: Both IPv4 and IPv6
通过使用此命令列出mDNS缓存的服务,查看WLC是否实际缓存mDNS服务,以及哪些服务(在移动锚点WLAN中,可以在锚点控制器上检查此缓存),您可以在其中查看提供该服务的设备的源MAC地址,甚至其IP地址,以及其他mDNS详细信息:
C9800#show mdns-sd cache
------------------------------------------------------------- PTR Records -------------------------------------------------------------
RECORD-NAME TTL TYPE ID CLIENT-MAC RR-RECORD-DATA
---------------------------------------------------------------------------------------------------------------------------------------
_googlecast._tcp.local 4500 WLAN 2 48d6.d50c.a620 Chromecast-Ultra-687f65f66d478b2c787eac8bc7c9efad.
------------------------------------------------------------- SRV Records -------------------------------------------------------------
RECORD-NAME TTL TYPE ID CLIENT-MAC RR-RECORD-DATA
---------------------------------------------------------------------------------------------------------------------------------------
Chromecast-Ultra-687f65f66d478b2c787eac8bc7c9 4500 WLAN 2 48d6.d50c.a620 0 0 8009 687f65f6-6d47-8b2c-787e-ac8bc7c9efad.loca
------------------------------------------------------------ A/AAAA Records -----------------------------------------------------------
RECORD-NAME TTL TYPE ID CLIENT-MAC RR-RECORD-DATA
---------------------------------------------------------------------------------------------------------------------------------------
687f65f6-6d47-8b2c-787e-ac8bc7c9efad.local 4500 WLAN 2 48d6.d50c.a620 172.16.9.11
------------------------------------------------------------- TXT Records -------------------------------------------------------------
RECORD-NAME TTL TYPE ID CLIENT-MAC RR-RECORD-DATA
---------------------------------------------------------------------------------------------------------------------------------------
Chromecast-Ultra-687f65f66d478b2c787eac8bc7c9 4500 WLAN 2 48d6.d50c.a620 [172]'id=687f65f66d478b2c787eac8bc7c9efad''cd=9A10
C9800#
故障排除
本部分提供了可用于对配置进行故障排除的信息。
如果需要检查有关C9800上发生的所有交换、查询、缓存行为、响应、丢弃、错误等的更多详细信息,请在重新创建问题的同时在C9800上收集这些跟踪(连接提供该服务的设备和客户端请求该服务,让他们尝试发现所需的服务):
- 在C9800上运行此命令:set platform software trace wncd <0-7> chassis active R0 mdns debug
- 重现问题.
- 最后,运行此命令以收集已启用的跟踪:show platform software trace message wncd <0-7> chassis active R0
相关信息