簡介
本檔案介紹如何在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上收集這些跟蹤(連線提供該服務的裝置和客戶端請求該服務,讓他們嘗試發現所需的服務):
- 在C9800上運行此命令:set platform software trace wncd <0-7> chassis active R0 mdns debug
- 重現問題。
- 最後,運行此命令以收集已啟用的跟蹤:show platform software trace message wncd <0-7> chassis active R0
相關資訊