はじめに
このドキュメントでは、Catalyst 9800ワイヤレスコントローラでマルチキャストドメインネームサービス(mDNS)ゲートウェイ機能を設定する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- 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)のControl And Provisioning of Wireless Access Points(CAPWAP)のマルチキャストマルチキャストモードをイネーブルにすると、C9800は各mDNSパケットをコントローラ上に設定されたAPマルチキャストグループにブリッジします。これにより、ワイヤレスクライアントがパケットを受信できるようになります。
CAPWAPマルチキャストマルチキャストモードが有効でない場合、C9800は受信した各mDNSパケットのコピーを作成し、CAPWAPユニキャストトンネルを介して個々のAPにブリッジします。どちらのシナリオでも、C9800はmDNSパケットを、mDNSパケットを発信したクライアントのVLANにある有線ネットワークにブリッジします。
設定
C9800コントローラでのマルチキャストモードの設定
ステップ 1:設定 – >サービス – >マルチキャストに移動します
ステップ 2:「グローバルワイヤレスマルチキャストモード」を有効にする
ステップ 3:AP CAPWAPマルチキャストを「マルチキャスト」に設定
ステップ 4:「AP CAPWAP IPv4マルチキャストグループアドレス」でマルチキャストIPを割り当てます(範囲224.0.0.0 ~ 239.255.255.255)。
ステップ5:「AP CAPWAP IPv6マルチキャストグループアドレス」はオプションです
手順 6:「ワイヤレス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
ステップ 2:マルチキャストトラフィックをルーティングする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は、mDNSハンドシェイクに関与するデバイス(クライアントやChromecastなど)が同じサブネット上にある限り、特別な設定を必要とせずにC9800で機能します。ただし、次のセクションで説明するように、mDNSゲートウェイを使用してmDNSトラフィックをフィルタリングすることを推奨します。
mDNSゲートウェイ
AireOSワイヤレスコントローラで導入されたmDNSゲートウェイ機能は、16.11.1以降のCatalyst 9800ワイヤレスコントローラでもサポートされています。この機能はデフォルトでは無効になっており、グローバルに有効にした後は、WLANごとに有効/無効にできます。
mDNSゲートウェイ機能は、以前のAireOSワイヤレスコントローラと同じように機能し、C9800は有線およびワイヤレスインターフェイスでBonjourサービス(mDNSアドバタイズメントおよびクエリー)をリッスンし、内部データベース内の各ソース/ホストからアドバタイズされたこれらのBonjourサービス(AirPlay、AirPrint、Gogglecastなど)をキャッシュし、不要なサービスををフィルタリングして、ネットワーク内でのマルチキャストフローををできます。この方法を使用すると、このようなサービスの送信元とクライアントを異なるサブネットに配置し、ネットワーク内のmDNSトラフィックを制御できます。
mDNSゲートウェイとして機能するC9800は、サービスを要求するクライアントに割り当てられたVLANのIPアドレスを使用して、これらのmDNS応答を送信する(キャッシュされたサービスの)クライアントからのmDNSクエリに応答します。このため、mDNS/Bonjourサービスを必要とするクライアントが存在するC9800コントローラ上のすべてのVLANには、スイッチ仮想インターフェイス(SVI)で有効なIPアドレスが設定されている必要があります。
Bonjour/mDNSゲートウェイ機能の詳細については、『AireOSワイヤレスLANコントローラ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. 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サービスポリシーを定義する必要があります。Configuration > Services > mDNS > Service Policyの順に移動します。 Service Policyを選択し、次の手順を実行します。
1. サービスポリシー名を定義します。
2. カスタムサービスリストをサービスリスト入力に追加します。
3. 顧客サービス・リストOUTをサービス・リスト出力に追加します。
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 の順に選択し、mDNS modeドロップダウンリストでGateway、Update、Apply to Deviceの順に選択します。デフォルトモードはブリッジです(図に示すように、ドロップを使用してWLAN上のmDNSサービスを無効またはドロップできます)。
カスタムサービスポリシーを使用しない場合、WLANはmDNS default-service-listを使用するポリシープロファイルに割り当てられたdefault-mdns-service-policyを使用します。デフォルトサービスのリストは、次のコマンドを使用して確認できます。
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
アンカーと外部のシナリオ
mDNSゲートウェイ機能をモビリティアンカーWLANで実装する場合、この場合の動作と必要な設定は次のとおりです。外部WLCとアンカーWLCの両方がC9800であり、ワイヤレスクライアントがアンカーコントローラのVLANからIPアドレスを取得します。
- アンカーコントローラは、mDNSゲートウェイとして機能するコントローラで、そのアンカーWLANに接続されたすべてのデバイスとそれぞれのVLANからサービスをキャッシュし、キャッシュされたサービスに対してクエリを応答します。
- C9800アンカーコントローラは、クエリに応答すると、応答を送信し、サービスを要求するクライアントに割り当てられたVLANのSVI IPアドレスを使用できます。したがって、mDNSサービスを必要とするすべてのクライアントVLANは、アンカーのSVIにIPアドレスを持つ必要があります。
- mDNSゲートウェイは、外部WLCとアンカーWLCの両方でグローバルに有効にする必要があります。
- 外部コントローラとアンカーコントローラの両方で、同じmDNSサービスポリシーを同じサービス(デフォルトまたはカスタム)で使用できます。これらは、このアンカーWLANにリンクされたポリシープロファイルに割り当てることができます。これらの設定はすべて、このドキュメントですでに説明した手順と同じです。
- モビリティアンカーWLAN設定の唯一の設定上の違いは、次のとおりです。WLAN > Advanced settingsの順に選択します。mDNS Modeは、外部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
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
関連情報