简介
本文档介绍如何在Catalyst 9800无线控制器上配置组播域名服务(mDNS)网关功能。
先决条件
要求
Cisco 建议您了解以下主题:
- mDNS Bonjour协议
- Catalyst 9800无线控制器
使用的组件
本文档中的信息基于以下软件和硬件版本:
- C9800-CL-K9版本16.12.1s
- WS-C3560CX-12PC-S
- C9117AXI-A
- 色播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的mDNS桥接。当无线接入点(AP)控制和配置无线接入点(CAPWAP)组播-组播模式启用时,C9800会将每个mDNS数据包桥接到控制器上配置的AP组播组。这可确保无线客户端可以接收数据包。
如果未启用CAPWAP组播-组播模式,C9800将创建收到的每个mDNS数据包的副本,并通过CAPWAP单播隧道将其分别桥接到每个单一AP。在这两种情况下,C9800还将mDNS数据包桥接到发起mDNS数据包的客户端VLAN上的有线网络。
配置
在C9800控制器中配置组播模式
步骤1:转至Configuration -> Services -> multicast
第二步:启用“全局无线组播模式”
第三步:将AP CAPWAP组播设置为“组播”
第四步:在“AP CAPWAP IPv4组播组地址”中分配组播IP(范围:224.0.0.0到239.255.255.255)
第5步:“AP CAPWAP IPv6组播组地址”是可选的
第六步:启用“无线mDNS桥接”
步骤 7.启用“IGMP监听”
在第3层交换机上使用PIM稀疏-密集模式配置组播路由
步骤1:启用组播路由和igmp监听。
Switch# config t
Switch(config)# ip multicast-routing
Switch(config)# interface vlan <vlan-id>
Switch(config-if)# ip igmp snooping
Switch(config)# end
第二步:在要路由组播流量的VLAN接口上启用PIM。
Switch> enable
Switch# config t
Switch(config)# interface vlan <vlan-id>
Switch(config-if)# ip pim sparse-dense-mode
Switch(config-if)# end
验证
使用本部分可确认配置能否正常运行。
C9800命令:
C9800# show wireless multicast
C9800# show ap multicast mom
第3层交换机命令:
Switch# show ip pim interface
只要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网关,请导航到Configuration > Services > mDNS。在Global下,切换到Enable mDNS Gateway并选择Apply,如图所示。
第 2 步(可选):为自定义服务策略配置自定义mDNS服务列表。如果要使用默认mDNS服务列表和服务策略,请转到步骤5。
在Configuration > Services > mDNS下,在Service Policy选项卡中,根据需要配置新的服务列表。C9800具有大多数无线设备使用的预定义公共服务。如果不需要特殊(不可用)服务,可以使用预定义的可用服务创建列表,但如果需要,还可以添加新服务(使用服务定义)。
您需要两个,一个是传入(IN)方向的服务列表,一个是传出(OUT)方向的服务列表(因此,当进入C9800和离开该服务器时,将过滤所需的服务;因此,这两个列表应具有相同的服务)。
1. 定义IN服务的服务列表名称。
2. 选择IN方向。
3. 选择添加服务。
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. 将您的自定义服务列表添加到服务列表输入。
3. 将您的客户服务列表添加到服务列表输出。
4. 在“位置”下,选择站点标记、位置特定服务(LSS)或首选可用选项。在本示例中,使用了site-tag(如图所示)。
第 4 步: (可选)。将mDNS服务策略传递到策略配置文件。
导航到配置>标签和配置文件>策略>策略配置文件名称>高级,然后从mDNS服务策略下拉列表选择之前创建的自定义mDNS服务策略(在本示例中为mdns-policy1),然后选择更新和应用于设备(如图所示)。
第五步:导航到Configuration > Tags & Profiles > WLANs > WLAN > Advanced,并在mDNS模式下拉列表中选择Gateway,然后选择Update和Apply to Device。默认模式是桥接(您可以使用丢弃在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
外部锚点(Anchor-Foreign)场景
当您在移动锚点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中必须是桥接,在锚点C9800中必须是网关。
验证
使用本部分可确认配置能否正常运行。
使用命令:
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
相关信息