Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

Achtergrondinformatie

Configureren

Netwerkdiagram

Packet Flow met debugs

Stap 1. Wanneer u mDNS wereldwijd inschakelt op de WLC

Stap 2. WLC Caches Bonjour Services (Apple TV Advertentie)

Stap 3. WLC luistert naar client queries voor services

Stap 4. WLC stuurt Unicast Response naar Client Queries voor Bonjour Services

Verificatie en probleemoplossing

Inleiding

Dit document beschrijft de implementatie van het Bonjour-protocol op de draadloze controller en biedt richtlijnen voor probleemoplossing.

Voorwaarden

Vereisten

Cisco raadt kennis van de volgende onderwerpen aan:

- Basiskennis van Bonjour Protocol

- Basiskennis van de configuratie van mDNS op WLC

- Basiskennis van multicast routing

Gebruikte componenten

De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:

- AIR-CT2504-K9 WLC, 8.2.141.0

- WS-C3560CX-8PC-S switch

- AIR-CAP 3702I-E-K9

- Apple TV

- Iphone 500, 10.2

De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.

Achtergrondinformatie

Bonjour-protocol is een Apple-servicedetectieprotocol dat apparaten en services lokaliseert op een lokaal netwerk met behulp van multicast Domain Name System (mDNS)-servicerecords. Het Bonjour-protocol werkt op serviceaankondigingen en servicevragen. Elke query of advertentie wordt verzonden naar het Bonjour multicast-adres ipv4 224.0.0.251 (ipv6 FF02:FB). Dit protocol gebruikt mDNS op UDP-poort 5353.

Het adres dat gebruikt wordt door het Bonjour protocol is link-local multicast adres en wordt daarom alleen doorgestuurd naar het lokale L2 netwerk. Routers kunnen geen multicast routing gebruiken om het verkeer om te leiden, omdat de tijd om te leven (TTL) is ingesteld op 1. Dit betekende dat alle serviceproviders/bronnen (die de service adverteren) en Bonjour-klanten (die om service vragen) in hetzelfde subnetje moesten zitten. Dit leidt tot schaalbaarheidsproblemen.

Om dit probleem aan te pakken, fungeert de Cisco draadloze LAN-controller (WLC) als Bonjour Gateway. De WLC luistert naar Bonjour diensten, caches deze Bonjour advertenties (AirPlay, AirPrint, enzovoort) van de bron / host. Bijvoorbeeld Apple TV en reageert op Bonjour-klanten wanneer ze vragen of vragen om een service. Op deze manier kunt u de bronnen en clients in verschillende subnetten hebben.

Configureren

Netwerkdiagram

Packet Flow met debugs

Er zijn basis vier stappen die plaatsvinden wanneer mDNS op een Cisco WLC draait. Deze stappen worden als volgt beschreven:

Stap 1. Wanneer u mDNS wereldwijd inschakelt op de WLC

WLC luistert naar deze standaard services als u geen aangepast mDNS profiel hebt gemaakt zoals in de afbeelding.

Elk van deze diensten heeft een servicekoord gekoppeld aan het. De koorden van de dienst worden gebruikt om de instanties van de dienst aan de dienstvragen aan te passen. Een servicetype bevat altijd de servicenaam en het protocol. Bovendien kan het een of meer subtype-identificatoren bevatten. De AppleTV-service maakt gebruik van: _airplay._tcp.local.

Als mDNS wereldwijd is ingeschakeld, verstuurt de controller mDNS-vragen naar 224.0.0.251 voor alle services op bekabeld (beheer en dynamische interfaces) en draadloos netwerk.

In deze opname bij WLC switch poort, tonen pakketten 80, 81 en 82 WLC een query naar 224.0.0.251 via het bekabelde netwerk met bron IP van het beheer (10.48.39.142) en dynamische interfaces (192.168.232.11 en 192.168.239.8) zoals getoond in het beeld.

Packet 83 toont aan dat WLC een query verstuurt via de draadloze. Het binnenpakket toont WLC-query naar 24.0.0.251 vanuit beheerinterface. Aangezien deze vraag over de radio is, wordt de capwapkopbal toegevoegd aan het pakket met externe bron IP nog om dat van beheer te zijn maar de bestemming is multicast IP 239.100.100.100 zoals aangetoond in het beeld.

Waar komt deze multicast IP 239.100.100.100 vandaan? Op de WLC, Access Point (AP) multicast modus (controller > algemeen) is ingesteld op multicast met multicast groepsadres als 239.100.100.100 (het is slechts een voorbeeld, elke ip in het 239-bereik). De AP's sluiten zich aan bij deze multicast groep en luisteren erop. WLC stuurt de query door naar deze groep, AP's ontvangen het en versturen het via de ether. Het adres 239.100.100.100 (dit is niet statisch, dit is wat u in het volgende voorbeeld hebt geconfigureerd) wordt alleen weergegeven in de capswapheader tussen de WLC en de AP's, de draadloze clients zien er nooit iets van (maar het kan het binnenste originele mdns-pakket zien) zoals getoond in de afbeelding.

Vergeet niet dat bij deze installatie de WLC een 2504 in vlan 1 is en de AP in vlan 231. Aangezien de apparaten in verschillende VLAN’s zijn, moet u multicast routing ingeschakeld hebben voor VLAN 1 en 239 op de bekabelde switch om dit te laten werken.

Opmerking: als multicast routing niet is ingeschakeld op de bekabelde VLAN voor wolk- en AP-beheer, moet de AP-multicast modus worden ingesteld op unicast. In deze modus wordt elk multicast-pakket door de controller geüpload op elke AP die aan de controller is gekoppeld. Deze modus is zeer inefficiënt en wordt niet aanbevolen.

Deze opname is het query-pakket in detail zoals in het afbeelding.

De debugs reflecteren hetzelfde als gezien in de Captures. Hier toont het fragment alleen query's van de beheerinterface.

(Cisco Controller) >debug mdns all enable

Cisco Controller) >*emWeb: Feb 22 16:24:18.203: bgSetBonjourAccessPolicy :1192 Bonjour AccessPolicy status is already in requested state Disabled

*emWeb: Feb 22 16:24:18.203: bgSetBonjourQueryInterval :1359 Bonjour query interval is already configured for requested value = 15

*Bonjour_Process_Task: Feb 22 16:24:18.215: bonjourProcessTask : 220 Processing message type = BONJOUR_AGGREGATED_QUERY

*Bonjour_Process_Task: Feb 22 16:24:18.215: sendBonjourPkt : 3881 sendBonjourPkt msg-type = BONJOUR_AGGREGATED_QUERY toSend = all

*Bonjour_Process_Task: Feb 22 16:24:18.216: Send to Wired, All vlan is TRUE

*Bonjour_Process_Task: Feb 22 16:24:18.216: sendBonjourPacketToWired : 3652 sending aggregated query on interface = management

*Bonjour_Process_Task: Feb 22 16:24:18.216: buildBonjourPacket : 2916 Preparing for l2 Multicast send

*Bonjour_Process_Task: Feb 22 16:24:18.216: buildBonjourPacket : 2936 allVlan = 0 , vlanId = 0

*Bonjour_Process_Task: Feb 22 16:24:18.216: buildBonjourPacket : 2948 simInterfaceMacAddrGet( management ) =  00:A2:89:B9:62:60

*Bonjour_Process_Task: Feb 22 16:24:18.216: Inside buildBonjourAggregatedQuery, available len = 1458

*Bonjour_Process_Task: Feb 22 16:24:18.216: fillBonjourAggregatedQuery : 7339 Sending mDNS AGGREGATED query for services configured in MSAL-DB

*Bonjour_Process_Task: Feb 22 16:24:18.216: fillBonjourAggregatedQuery : [ 1 ] Including SRV = AirPrint in aggregated query packet

*Bonjour_Process_Task: Feb 22 16:24:18.216: fillBonjourAggregatedQuery : [ 2 ] Including SRV = AirTunes in aggregated query packet

*Bonjour_Process_Task: Feb 22 16:24:18.216: fillBonjourAggregatedQuery : [ 3 ] Including SRV = AppleTV in aggregated query packet

*Bonjour_Process_Task: Feb 22 16:24:18.216: fillBonjourAggregatedQuery : [ 4 ] Including SRV = HP_Photosmart_Printer_1 in aggregated query packet

*Bonjour_Process_Task: Feb 22 16:24:18.216: fillBonjourAggregatedQuery : [ 5 ] Including SRV = HP_Photosmart_Printer_2 in aggregated query packet

*Bonjour_Process_Task: Feb 22 16:24:18.216: fillBonjourAggregatedQuery : [ 6 ] Including SRV = Printer in aggregated query packet

*Bonjour_Process_Task: Feb 22 16:24:18.216: -----------------------------------------

*Bonjour_Process_Task: Feb 22 16:24:18.216: fillBonjourAggregatedQuery : PACKET-1 mDNS-QUERY sent for [ 6 ] services

*Bonjour_Process_Task: Feb 22 16:24:18.216: fillBonjourAggregatedQuery : mDNS-QUERY sent for all services in [ 1 ] packets

*Bonjour_Process_Task: Feb 22 16:24:18.216: -----------------------------------------

*Bonjour_Process_Task: Feb 22 16:24:18.216: buildBonjourPacket : 3054 BONJOUR_AGGREGATED_QUERY: buildBonjourAggregatedQuery()STATUS = 0

*Bonjour_Process_Task: Feb 22 16:24:18.216: buildBonjourPacket MCAST-DST-IP ADDR = 224.0.0.251

Stap 2. WLC Caches Bonjour Services (Apple TV Advertentie)

In dit pakket stuurt de Apple TV ( 192.168.239.37 ) advertenties naar 224.0.0.251 . Aangezien in dit geval Apple TV draadloos is, kunt u de advertentie zien die via capwap wordt verstuurd. De WLC neemt slechts één keer kennis van de mDNS-servicerespons, maar die cache-ingang heeft een TTL en keepalives zijn nodig om het te onderhouden zoals in de afbeelding.

De gedetailleerde reactie van Apple TV wordt weergegeven in de afbeelding.

Deze debugs tonen Apple TV in antwoord op de vragen van de WLC. In dit scenario reageerde Apple TV met 21 diensten waarvan alleen Airplay van belang is.

*Bonjour_Msg_Task: Feb 23 16:22:02.372: 18:ee:69:11:dc:60 Parsing 21 Bonjour Answers.

*Bonjour_Msg_Task: Feb 23 16:22:02.374: bgProcessServiceAdvRsp : 1562 aStringNameStr = Wireless Team (4)._airplay._tcp.local.

*Bonjour_Msg_Task: Feb 23 16:22:02.374: bgProcessServiceAdvRsp : 1579 RR: Wireless Team (4)._airplay._tcp.local., aType: 16, aClass: 32769, aTTL: 4500, aDataLen: 207, ptr: 0x327a9ca8, end: 0x327aa100

*Bonjour_Msg_Task: Feb 23 16:22:02.374: bgProcessServiceAdvRsp : 1581 aStringNameStr : Wireless Team (4)._airplay._tcp.local.

*Bonjour_Msg_Task: Feb 23 16:22:02.374: Found Service Name:_airplay._tcp.local., Service Provider Name:Wireless Team (4)._airplay._tcp.local.

*Bonjour_Msg_Task: Feb 23 16:22:02.374: bgServiceAllowedInMsalDb : 181 srv_str = _airplay._tcp.local. type = Wireless

*Bonjour_Msg_Task: Feb 23 16:22:02.374: bgServiceAllowedInMsalDb : 195 Incoming Service Advertisement string = _airplay._tcp.local.

*Bonjour_Msg_Task: Feb 23 16:22:02.374: Service-Name = AppleTV Service-String = _airplay._tcp.local. Type = all Origin = Wireless FOUND and is ALLOWED FOR LEARNING

<<< Airplay service registered in WLC DB >>

*Bonjour_Msg_Task: Feb 23 16:22:02.374: Service Name:_airplay._tcp.local. is supported in Master-service-db

*Bonjour_Msg_Task: Feb 23 16:22:02.374: aDataLen: 2, aSrPtrRecord.aSrvProName.size: 39

*Bonjour_Msg_Task: Feb 23 16:22:02.374: Updating updateBonjourSrPtrDb:

*Bonjour_Msg_Task: Feb 23 16:22:02.374: aType: 12, aClass: 1, aTTL: 4500, aDataLen: 2, ptr: 0x327a9d93, end: 0x327aa100

*Bonjour_Msg_Task: Feb 23 16:22:02.374:           bgProcessServiceAdvRsp : .. < SP-SR_PTR PKT >...

*Bonjour_Msg_Task: Feb 23 16:22:02.374:           bgProcessServiceAdvRsp : SERVICE NAME ......... = AppleTV

*Bonjour_Msg_Task: Feb 23 16:22:02.374:           bgProcessServiceAdvRsp : SERVICE STRING ....... = _airplay._tcp.local.

*Bonjour_Msg_Task: Feb 23 16:22:02.374:           bgProcessServiceAdvRsp : SERVICE PROVIDER ..... = Wireless Team (4)._airplay._tcp.local.

*Bonjour_Msg_Task: Feb 23 16:22:02.374:           bgProcessServiceAdvRsp : aTTL ................. = 4500n

*Bonjour_Msg_Task: Feb 23 16:22:02.374: bgProcessServiceAdvRsp : 1546 msg : 0x327a9bda, ptr : 0x327a9d93, end : 0x327aa100, pld_len : 877

Stap 3. WLC luistert naar client queries voor services

Later, op elk moment, stuurt de draadloze client (192.168.232.98) een query die vraagt om airplay service via de lucht (meestal wanneer de client een applicatie opent die airplay geschikt is) zoals getoond in het beeld.

*Bonjour_Msg_Task: Feb 27 17:03:15.603: 00:6d:52:5d:5a:7d Parsing 2 bonjour questions

*Bonjour_Msg_Task: Feb 27 17:03:15.603: 00:6d:52:5d:5a:7d Query Service Name: _airplay._tcp.local., RR-Type:  TYPE_DOMAIN_NAME_PTR , Class: 1

*Bonjour_Msg_Task: Feb 27 17:03:15.603: processBonjourPacket : 1017 qNameStr : _airplay._tcp.local., bonjServiceNameStr : _airplay._tcp.local., bonjSpNameStr : _airplay._tcp.local.

*Bonjour_Msg_Task: Feb 27 17:03:15.603: Service Name : AppleTV  Service String : _airplay._tcp.local. is supported in MSAL-DB

*Bonjour_Msg_Task: Feb 27 17:03:15.603: 00:6d:52:5d:5a:7d SRV : _airplay._tcp.local. is supported by client profile : default-mdns-profile

Stap 4. WLC stuurt Unicast Response naar Client Queries voor Bonjour Services

De WLC reageert met cached service Wireless Team (4)._airplay._tcp.local. De bron IP van het binnenpakket is de dynamische interface van het client-VLAN, in dit geval 192.168.232.11 zoals in de afbeelding.

Fragment van debug

BONJOUR_AGGREGATED_QUERY_RESPONSE

*Bonjour_Process_Task: Feb 27 17:03:45.229: buildBonjourQueryResponsePld : SRV-NAME ..... : AppleTV

*Bonjour_Process_Task: Feb 27 17:03:45.229: buildBonjourQueryResponsePld : SP-NAME....... :

*Bonjour_Process_Task: Feb 27 17:03:45.229: buildBonjourQueryResponsePld : SEND TO ...... : BONJOUR_PKT_TO_WIRELESS

*Bonjour_Process_Task: Feb 27 17:03:45.229: buildBonjourQueryResponsePld : VLAN ......... : 232

*Bonjour_Process_Task: Feb 27 17:03:45.229: buildBonjourQueryResponsePld : IS MCAST ..... : NO

*Bonjour_Process_Task: Feb 27 17:03:45.230: buildBonjourQueryResponsePld : DST-MAC ...... :  00:6D:52:5D:5A:7D

*Bonjour_Process_Task: Feb 27 17:03:45.230: buildBonjourQueryResponsePld : DST-IP ....... : 192.168.232.98

*Bonjour_Process_Task: Feb 27 17:03:45.230: buildBonjourQueryResponsePld : ALL mDNS-AP .. : 0

*Bonjour_Process_Task: Feb 27 17:03:45.230: buildBonjourQueryResponsePld : TTL COUNTER .. : TIMEOUT_RESET

*Bonjour_Process_Task: Feb 27 17:03:45.230: buildBonjourQueryResponsePld : RESTART TIME . : 0

*Bonjour_Process_Task: Feb 27 17:03:45.230: buildBonjourQueryResponsePld : SNOOP STATUS . : 0

*Bonjour_Process_Task: Feb 27 17:03:45.230: buildBonjourQueryResponsePld : LSS STATUS ... : DISABLED

*Bonjour_Process_Task: Feb 27 17:03:45.230: buildBonjourQueryResponsePld : RSP SRV NAME . : AppleTV

*Bonjour_Process_Task: Feb 27 17:03:45.230: buildBonjourQueryResponsePld : MSG-ID ....... : 0

*Bonjour_Process_Task: Feb 27 17:03:45.230: buildBonjourQueryResponsePld : POLICY STATUS  : DISABLED

*Bonjour_Process_Task: Feb 27 17:03:45.230: buildBonjourQueryResponsePld INCLUDING SpData : Wireless Team (4)._airplay._tcp.local. in AGGREGATED QUERY RESPONSE

*Bonjour_Process_Task: Feb 27 17:03:45.233: VALID SR-PTR RR FOUND, attaching.....

*Bonjour_Process_Task: Feb 27 17:03:45.233: VALID SD-PTR RR FOUND, attaching.....

*Bonjour_Process_Task: Feb 27 17:03:45.233: VALID SRV RR FOUND, attaching.....

*Bonjour_Process_Task: Feb 27 17:03:45.233: VALID TXT RR FOUND, attaching.....

*Bonjour_Process_Task: Feb 27 17:03:45.233: VALID NSEC RR FOUND, attaching.....

*Bonjour_Process_Task: Feb 27 17:03:45.233: VALID DOMAIN RR FOUND, attaching.....

*Bonjour_Process_Task: Feb 27 17:03:45.233: fillBonjourDomain : 6055 : attaching SP-DOMAIN RR

*Bonjour_Process_Task: Feb 27 17:03:45.233: VALID DOMAIN-NSEC RR FOUND, attaching.....

*Bonjour_Process_Task: Feb 27 17:03:45.233: buildBonjourPacket DST-IP ADDR = 192.168.232.98

*Bonjour_Process_Task: Feb 27 17:03:45.233: Transmitting bonjour Pkt to STA: 00:6D:52:5D:5A:7D

*Bonjour_Process_Task: Feb 27 17:03:45.233: Unicast Packet sent to client  00:6D:52:5D:5A:7D  success.

Verificatie en probleemoplossing

Deze sectie geeft informatie die u kunt gebruiken om uw configuratie te bevestigen en problemen op te lossen.

Om problemen in mdns te identificeren en te isoleren vereist de configuratie correct te zijn en vereist derhalve weinig basiscontroles.

Stap 1. mDNS moet wereldwijd worden ingeschakeld.

Van GUI navigeer controller > mDNS zoals in de afbeelding.

Van CLI:

show network summary (snippet)

mDNS snooping............................... Enabled

mDNS Query Interval......................... 15 minutes

Stap 2. Als u een aangepast mDNS-profiel gebruikt, zorg er dan voor dat alle vereiste services aan het profiel worden toegevoegd.

Stap 3. Zorg ervoor dat mDNS is ingeschakeld onder de SSID en dat het juiste mdns-profiel is toegewezen aan de SSID.

Van GUI navigeer naar WLAN > WLAN-id > Geavanceerd zoals in de afbeelding.

Van CLI:

show wlan

(snippet)

mDNS Status...................................... Enabled

mDNS Profile Name................................ default-mdns-profile

Stap 4. Controleer of mDNS-serviceprovider in de services mDNS-domeinen wordt vermeld. Dit geeft de domeinnamen (Apple TV, airprinters) weer van de diensten die door de WLC zijn gecachet.

Ga vanuit GUI naar Controller > mDNS > mDNS Domain Name IP> Samenvatting zoals in de afbeelding.

Van CLI:

show mdns domain-name-ip summary

Number of Domain Name-IP Entries................. 1

DomainName             MAC Address       IP Address       Vlan Id Type     TTL Time left (sec) (sec)

--------------------   ----------------  ---------------- ------- ------   ------ ------

Wireless-Team-3.local. 18:ee:69:11:dc:60 192.168.239.37   239     Wireless 4725   4163

Stap 5. Controleer of de dienstverlener ook onder de specifieke dienst zelf vermeld staat.

Van GUI, navigeer aan Controlemechanisme > mDNS > Algemeen > de Naam van de Dienst zoals aangetoond in het beeld.

Van CLI:

show mdns service detailed AppleTV

Service Name..................................... AppleTV

Service String................................... _airplay._tcp.local.

Service Id....................................... 3

Service query status............................. Enabled

Service LSS status............................... Disabled

Service learn origin............................. Wireless and Wired

Number of Profiles............................... 1

Profile.......................................... default-mdns-profile

Number of Service Providers ..................... 1

Number of priority MAC addresses ................ 0

ServiceProvider MAC Address AP Radio MAC Vlan Id Type TTL Time left(sec) (sec)

-------------------- ---------------- ---------------- ------- ------ ----- ---------

Wireless Team (4)._airplay._tcp.local. 18:EE:69:11:DC:60 A4:6C:2A:7C:8F:80 239 Wireless 4500 3841

Stap 6. Als de service niet wordt ontdekt door de WLC, controleer dan of deze wordt geleerd onder de browser bonjour (Controller>>mDNS>>mDNS browser). Bonjour browser is een cache van alle service advertenties gezien bij de WLC en niet ontdekt omdat de configuratie niet toelaat om te leren. U kunt diensten van de browser van Bonjour selecteren en toevoegen, dit komt handig wanneer u test en een nieuwe dienst uitvoert.

Stap 7. Dit zijn de opdrachten om Bonjour te debuggen:

debug mdns error enable

debug mdns message enable

debug mdns detail enable

debug mdns all enable

Bonjour browser en show mdns service niet-geleerd kan worden gebruikt als debug tool.

Stap 8. Zoals eerder vermeld, als WLC en AP zich in verschillende subnetten bevinden en de AP multicast modus is ingesteld op multicast, dan zorg ervoor dat multicast routing is ingeschakeld op het bekabelde netwerk tussen de twee VLAN’s. In deze installatie zijn VLAN’s VLAN 1 (WLC) en VLAN 231 (AP).

Conf t

!

interface Vlan1

ip pim sparse-dense-mode

!

interface Vlan231

ip pim sparse-dense-mode

!

Multicast-routing bij het afspelen van bestanden:

Gateway#sh ip mroute 239.100.100.100

IP Multicast Routing Table

-------snippet--------------------

(*, 239.100.100.100), 2w4d/stopped, RP 10.48.39.5, flags: SJC

Incoming interface: Null, RPF nbr 0.0.0.0

Outgoing interface list:

Vlan231, Forward/Sparse-Dense, 2w0d/00:02:10

Vlan232, Forward/Sparse-Dense, 2w4d/00:02:11

(10.48.39.142, 239.100.100.100), 2w4d/00:02:50, flags: T

Incoming interface: Vlan1, RPF nbr 0.0.0.0, RPF-MFD

Outgoing interface list:

Vlan231, Forward/Sparse-Dense, 2w0d/00:02:10, H

Samen met deze controlelijst is het de sleutel om de pakketstroom te begrijpen wanneer mDNS op WLC loopt. De pakketstroom en de debuggen helpen diep in gebieden waar de vorige

verificatieopdrachten schieten tekort.