目錄

簡介

必要條件

需求

採用元件

背景資訊

mDNS橋接

mDNS網關

設定

網路圖表

通過圖形使用者介面配置mDNS網關

通過命令列介面配置mDNS網關

Anchor-Foreign方案

驗證

疑難排解

相關資訊

簡介

本檔案介紹如何在Catalyst 9800無線控制器上設定多點傳送網域名稱服務(mDNS)閘道功能。

必要條件

需求

思科建議您瞭解以下主題：

- 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多點傳送群組，以便無線使用者端可以接收該封包。否則，C9800可為接收的每個mDNS封包建立副本，該副本隨後會透過CAPWAP單點傳播通道分別橋接至每個單一AP。在這兩種情況下，C9800也會將mDNS封包橋接至產生mDNS封包的使用者端VLAN上的有線網路。

因此，只要mDNS握手涉及的裝置（例如客戶端和Chromecast）位於同一子網中，mDNS就可以在C9800中運行，而無需特殊配置。理想情況下，最好使用mDNS網關過濾mDNS流量，如下一節所述。

mDNS網關

16.11.1版的Catalyst 9800無線控制器也支援在AireOS無線控制器上引入的mDNS網關功能。此功能預設為停用，且您可以在全域啟用後針對每個WLAN啟用/停用該功能。

mDNS網關功能的工作方式與以前的AireOS無線控制器相同，C9800在有線和無線介面上偵聽Bonjour服務（mDNS通告和查詢），快取從內部資料庫中每個源/主機通告的這些Bonjour服務（AirPlay、AirPrint、Googlecast等），能夠在不同的廣播域之間橋接這些mDNS資料包，同時過濾不需要的服務並避免其在網路中的組播流。這樣，您就可以將此類服務的源和客戶端置於不同的子網中，並且還可以控制網路中的mDNS流量。

充當mDNS網關的C9800對客戶端（快取服務）的mDNS查詢進行回覆，並將其IP地址用於分配給請求該服務的客戶端的VLAN來獲取這些mDNS響應。這就是為什麼在有需要mDNS/Bonjour服務的客戶端的C9800控制器上的所有VLAN必須在交換虛擬介面(SVI)上配置有效的IP地址。

有關Bonjour/mDNS網關功能的詳細資訊，請參閱AireOS無線LAN控制器Bonjour III階段部署指南。

設定

網路圖表

這是示例設定的圖。其目的是允許無線客戶端使用來自不同子網的mDNS服務，如圖所示，此子網需要mDNS網關。

通過圖形使用者介面配置mDNS網關

步驟 1.若要全域性啟用mDNS網關，請導航到Configuration > Services > mDNS。在全域下，切換到啟用mDNS網關，然後選擇應用，如下圖所示。

第2步（可選）。為自定義服務策略配置自定義mDNS服務清單。如果要使用預設mDNS服務清單和服務策略，請轉到步驟5。

在Configuration > Services > mDNS下，在Service Policy頁籤中，根據需要配置新的服務清單。C9800具有大多數無線裝置所使用的預定義公共服務。如果您不需要特殊（不可用）服務，您可以使用預定義的可用服務建立清單，但是如果需要，您還可以新增新服務（使用服務定義）。

您既需要傳入(IN)方向的服務清單，也需要傳出(OUT)方向的服務清單（因此進入C9800和離開該服務清單時，都會過濾所需的服務；因此，兩個清單應該具有相同的服務）。

1.定義IN服務的服務清單名稱。

2.選擇IN direction。

3.選擇Add Services。

4.顯示「可用服務」下拉選單。選擇所需的服務和消息型別any。

5.重複步驟，根據需要新增更多服務。

6.選擇Apply to Device，如下圖所示。

1.定義OUT服務的服務清單名稱。

2.選擇OUT direction。

3.將可用服務移至「已分配的服務」清單。

5.重複步驟，根據需要新增更多服務。

6.選擇Apply to Device，如下圖所示。

提示：根據上一個AireOS WLC的遷移任務，您可以根據AireOS預設mDNS清單構建新清單。

第3步（可選）。如果使用自定義服務清單（步驟2.），則需要定義與這些自定義服務清單一起使用的自定義mDNS服務策略。導覽至Configuration > Services > mDNS > Service Policy。 選擇Service Policy，然後執行以下步驟：

1.定義服務策略名稱。

2.將自定義服務清單IN新增到服務清單輸入。

3.將客戶服務清單外新增到服務清單輸出中。

4.在「位置」下，選擇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，如下圖所示。

步驟 5.導覽至Configuration > Tags & Profiles > WLANs > WLAN > Advanced ，然後選擇Gateway on mDNS mode下拉式清單，然後選擇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

步驟 5.使用以下命令在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均為C9800，且無線使用者端從錨點控制器中的VLAN取得其IP位址），這是行為且所需的設定：

- 錨點控制器是充當mDNS網關的控制器，它快取連線到該錨點WLAN的所有裝置和相應VLAN的服務，並響應對這些快取的服務的查詢。

- 當響應查詢時，C9800錨點控制器可以獲取響應，並使用分配給請求該服務的客戶端的VLAN的SVI IP地址。因此，所有需要mDNS服務的客戶端VLAN必須在錨點中的SVI處具有IP地址。

- 必須在外地和錨點WLC上全域性啟用mDNS網關。

- 外部和錨點控制器都可以使用具有相同服務（預設或自定義）的相同mDNS服務策略，這些服務可以分配給連結到此錨點WLAN的策略配置檔案。所有這些配置設定與本文檔中已經介紹的步驟相同。

- 移動錨點WLAN設定的唯一配置差異如下；導航到WLAN > Advanced settings（mDNS模式），在外部C9800中必須橋接，在錨點C9800中必須是Gateway。

驗證

使用本節內容，確認您的組態是否正常運作。

使用命令：

C9800#show mdns-sd summary

mDNS Gateway: Enabled

Active Query: Enabled

Periodicity (in minutes): 30

Transport Type: Both IPv4 and IPv6

請檢視WLC是否實際快取mDNS服務，以及哪些服務（在行動錨點WLAN中，可以在錨點控制器上檢查此快取），方法是使用以下命令列出mDNS快取服務，您可以在此看到提供該服務的裝置的來源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

相關資訊

- 疑難排解和瞭解無線LAN控制器(WLC)上的mDNS閘道

- 技術支援與文件 - Cisco Systems