目录

简介

先决条件

要求

使用的组件

背景信息

mDNS桥接

mDNS网关

配置

网络图

通过图形用户界面配置mDNS网关

通过命令行界面配置mDNS网关

锚点 — 外部场景

验证

故障排除

相关信息

简介

本文档介绍如何在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上收集这些跟踪（连接提供该服务的设备和客户端请求该服务，让他们尝试发现所需的服务）：

1. 在C9800上运行此命令：set platform software trace wncd <0-7> chassis active R0 mdns debug

2. 重现问题.

3. 最后，运行此命令以收集已启用的跟踪：show platform software trace message wncd <0-7> chassis active R0

相关信息

- 排除故障并了解无线局域网控制器(WLC)上的mDNS网关

- 技术支持和文档 - Cisco Systems