목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

용어

배경 정보

mDNS 패킷 레코드 이해

플러드 기반 대 유니캐스트 기반 mDNS 게이트웨이

유니캐스트 기반 mDNS 게이트웨이 컨피그레이션 유형

라우팅된 액세스 mDNS 게이트웨이 설정

멀티레이어 mDNS 게이트웨이 설정

mDNS 서비스 검색 테스트

DNS-SD 테스트 도구 설치

DNS-SD로 서비스 알림

DNS-SD로 서비스 요청

구성

라우팅된 액세스 네트워크의 컨피그레이션 예

토폴로지

SDG 에이전트의 컨피그레이션

멀티레이어 네트워크의 컨피그레이션 예

토폴로지

SDG 에이전트의 컨피그레이션

서비스 피어의 컨피그레이션

문제 해결

라우팅된 액세스 네트워크

멀티레이어 네트워크

서비스 피어 및 SDG 에이전트에서 mDNS 광고 검증

서비스 피어 및 SDG 에이전트에서 mDNS 쿼리 검증

트러블슈팅에 사용되는 명령

관련 정보

소개

이 문서에서는 유니캐스트 기반 접근 방식으로 LAN Bonjour를 구성하고 문제를 해결하는 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

이 문서에 대한 특정 요건이 없습니다.

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- Catalyst 9200

- Catalyst 9300

- Catalyst 9400

- Catalyst 9500

- Catalyst 9600

- Cisco IOS® XE 17.6.2 이상 버전

참고: 다른 Cisco 플랫폼에서 이러한 기능을 활성화하는 데 사용되는 명령은 해당 설정 가이드를 참조하십시오.

참고: Local Area Bonjour를 실행하려면 Cisco DNA Advantage 라이센스가 필요합니다. 특정 Cisco IOS XE 버전에 대한 컨피그레이션 가이드에서 찾을 수 있는 지원 매트릭스의 SDG(Service Discovery Gateway) 에이전트 또는 SP(Service Peer) 모드에서 Cisco Catalyst 플랫폼이 지원되는지 확인합니다.

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

용어

- Service Type(서비스 유형): 엔드포인트는 네트워크에서 단일 또는 다중 서비스를 알립니다. 서비스 유형의 예로는 Apple TV, Airplay, IPP 등이 있습니다.

- 서비스 인스턴스: 각 엔드포인트는 네트워크의 인스턴스로 간주됩니다. 각 인스턴스는 네트워크에 고유한 ID(이름)를 가지고 있습니다.

배경 정보

Cisco IOS XE Amsterdam Release 17.3.2부터 기존의 플러드 기반 구현을 대체하는 새로운 mDNS Service Gateway 방식이 도입되었습니다. 이 새로운 접근 방식은 다음의 향상된 기능을 갖춘 유니캐스트 모델을 제공합니다.

- mDNS 스누핑으로 mDNS 패킷의 플러딩을 억제합니다.

- 특정 서비스에 대해 쿼리한 호스트를 추적하는 쿼리 데이터베이스(query-db).

- 유니캐스트 mDNS 응답인 SDG 에이전트는 유니캐스트 mDNS 응답을 각 특정 서비스에 대해 쿼리 데이터베이스에 포함된 호스트에만 전송합니다.

mDNS 패킷 레코드 이해

mDNS 쿼리에는 다음 레코드가 있습니다.

- PTR: PTR 레코드의 데이터는 쿼리되는 서비스 유형이며, 서비스 유형을 제공하는 노드 이름을 얻어야 합니다. 예: _airplay._tcp.local

mDNS 응답 또는 광고에는 다음 레코드가 있습니다.

- PTR(포인터): 각 PTR 레코드의 데이터는 서비스 인스턴스를 나타내는 노드의 이름입니다. 예: myPC._airplay._tcp.local

- SRV(서비스): SRV 레코드 데이터는 서비스 인스턴스가 실행 중인 호스트와 해당 인스턴스가 수신 대기 중인 포트를 식별합니다. 예: 서비스 인스턴스 myPC._airplay._tcp.local이 포트 3000의 호스트 LAPTOP-1에서 실행되고 있습니다.

- TXT(텍스트): 하나 이상의 키 값 쌍(key=value). 키 값 쌍은 서비스에 대한 추가 정보를 제공합니다. 이는 선택 사항입니다.

- A(IPv4 주소): A 레코드는 호스트 이름을 IPv4 주소로 확인하는 데 사용됩니다. 예: HostLAPTOP-1의 IP 주소는 10.24.81.11입니다.

- AAAA(IPv6 주소): A 레코드는 호스트 이름을 IPv6 주소(전역 및 링크-로컬)로 확인하는 데 사용됩니다. 예: HostLAPTOP-1에는 IPv6 주소 2001:0db8:1234::1이 있습니다.

플러드 기반 대 유니캐스트 기반 mDNS 게이트웨이

주요 차이점은 mDNS 게이트웨이(Cat9k 스위치)가 mDNS 광고를 쿼리자에게 라우팅하는 방법입니다.

- 플러드 기반 접근 방식에서는 대상 IP 주소 224.0.0.251 및 해당 멀티캐스트 MAC 주소 0100.5e00.00fb로 광고가 전송됩니다.

- 유니캐스트 기반 접근 방식에서는 대상 IP 주소 224.0.0.251로 광고가 전송되지만, 대상 MAC 주소는 서비스를 쿼리한 디바이스에서 온 것입니다.

또한 멀티캐스트 기반 구현에서는 수신된 mDNS 패킷이 패킷이 수신된 VLAN을 허용하는 다른 포트로 플러딩됩니다.

유니캐스트 기반 접근 방식에서는 mDNS 스누핑에 의해 플러딩 방지 메커니즘이 제공됩니다. 이 스누핑은 VLAN 컨피그레이션에서 VLAN에 구성된 모든 mdns-sd 게이트웨이에 대해 활성화됩니다. 이러한 방식으로 mDNS 패킷이 유니캐스트로 전송됩니다.

- 쿼리의 경우 서비스에 대해 특별히 쿼리하는 디바이스에만 적용됩니다(query-db).

- 광고의 경우 업스트림 SDG 에이전트 또는 Cisco WAB(Wide Area Bonjour) 애플리케이션에만 적용됩니다.

mDNS 게이트웨이 트러블슈팅 시 스위치가 플러드 기반 또는 유니캐스트 기반 모드를 실행 중인지 확인하기 위해 mdns-sd 게이트웨이가 구성된 위치를 확인할 수 있습니다.

- SVI에서 구성된 경우 플러드 기반 접근 방식이 사용되고 mDNS 스누핑이 활성화되지 않습니다.

- VLAN 컨피그레이션에서 컨피그레이션된 경우 유니캐스트 기반 접근 방식이 사용되고 mDNS 스누핑이 활성화됩니다.

유니캐스트 기반 mDNS 게이트웨이 컨피그레이션 유형

플러드 없는 서비스 검색 게이트웨이를 제공하는 설정에는 2가지 유형이 있습니다. 레이어 3 경계가 어디에 있는가에 따라 사용할 옵션이 달라집니다.

- L3 경계가 액세스 레이어에 있는 경우 Routed-access 설정이 사용됩니다.

- L3 경계가 디스트리뷰션 레이어에 있는 경우 Multilayer 설정이 선호됩니다.

라우팅된 액세스 mDNS 게이트웨이 설정

- 액세스 스위치는 SDG 에이전트 역할을 합니다.

- SDG 에이전트는 동일한 VLAN의 엔드포인트 사이는 물론 서로 다른 VLAN 간에도 서비스 라우팅을 수행합니다.

멀티레이어 mDNS 게이트웨이 설정

- 디스트리뷰션 스위치(L3 경계)가 SDG 에이전트 역할을 합니다.

- 레이어 2 액세스 스위치는 서비스 피어로 알려져 있습니다.

- 서비스 피어는 동일한 VLAN의 엔드포인트 간에 서비스 라우팅을 수행합니다.

- SDG 에이전트는 서로 다른 서비스 피어에 연결된 엔드포인트 간에 서비스 라우팅을 수행합니다.

- SDG 에이전트는 두 엔드포인트가 동일한 서비스 피어에 연결된 경우 서로 다른 VLAN 이벤트의 엔드포인트 간에 서비스 라우팅을 수행합니다.

- SDG 에이전트는 유니캐스트 UDP 세션을 사용하여 서비스 피어와 통신합니다. mDNS 쿼리/광고를 교환하지 않습니다. BCP(Bonjour Control Protocol) 패킷을 사용하여 통신합니다. 이 프로토콜은 포트 10991에서 UDP를 사용합니다.

- 이렇게 하면 서비스 피어가 엔드포인트에서 mDNS 쿼리/광고를 수신할 때 SDG 에이전트로 즉시 전달하지 않습니다. 대신, 특정 타이머가 mDNS 쿼리/광고를 대량 방식으로 SDG 에이전트로 내보낼 때까지 기다립니다.

- 쿼리의 경우 기본 타이머는 15초입니다. service-query-timer periodicity <seconds> 명령을 사용하여 수정할 수 있습니다.

- 광고의 경우 기본 타이머는 30초입니다. service-announcement-timer periodicity <seconds> 명령을 사용하여 수정할 수 있습니다.

- SDG 에이전트는 서비스 피어(BCP 패킷에 포함됨)로부터 쿼리를 받으면 이를 처리하고, 요청 중인 서비스가 mDNS 캐시에 있는 경우 해당 광고가 포함된 BCP 패킷으로 서비스 피어에 응답합니다.

- BCP로 인해 서비스 피어와 SDG 에이전트 간에 mDNS 패킷 교환이 필요하지 않으므로, 포트가 인그레스 및 이그레스 mDNS 패킷을 모두 삭제하도록 스위치 간 트렁크 링크에서 mdns-sd trust 명령이 사용됩니다.

mDNS 서비스 검색 테스트

Lab에서 mDNS 게이트웨이 컨피그레이션을 테스트할 때 겪는 문제 중 하나는 다음과 같은 방법을 찾는 것입니다.

- 테스트 중인 서비스를 광고하는 하나의 엔드포인트(mDNS responder).

- 이 지정된 서비스(mDNS 쿼리 작성기)를 요청하는 또 다른 엔드포인트입니다.

이 두 역할은 DNS-SD 명령을 사용하여 수행할 수 있습니다. DNS-SD 명령은 디바이스에서 mDNS 서비스 검색을 테스트할 수 있도록 하는 네트워크 진단 도구입니다. 가장 중요한 기능은 서비스의 존재를 알릴 수 있고 발견하는 것이다.

DNS-SD 테스트 도구 설치

- macOS는 기본적으로 DNS-SD 테스트 도구를 지원합니다. 이를 사용하려면 터미널로 가서 dns-sd를 입력하여 명령에 대한 정보를 얻으십시오.

- 반면 Windows에서는 기본적으로 이 테스트 도구를 지원하지 않습니다. Apple의 Bonjour SDK를 설치해야 합니다. 이 SDK가 설치되면 명령 프롬프트에서 dns-sd를 사용할 수 있습니다.

- DNS-SD 명령 구문은 macOS 및 Windows에서 동일합니다.

DNS-SD로 서비스 알림

mDNS 서비스를 광고하려면 다음 명령을 사용합니다.

dns-sd -R name _app._protocol local port

여기서 각 항목은 다음을 나타냅니다.

- name은 서비스 인스턴스(지정된 유형의 서비스를 구현하는 엔터티)의 이름입니다.

- 이 앱은 airplay, ipp, http 등의 애플리케이션(서비스 유형)입니다.

- 프로토콜은 TCP 또는 UDP입니다.

- local은 로컬 도메인을 나타냅니다.

- port는 서비스 인스턴스가 서비스를 수신할 포트입니다.

예: TCP 포트 3000에서 Airplay 서비스를 광고하는 노드 이름 testpc.

dns-sd -R testpc _airplay._tcp local 3000

DNS-SD로 서비스 요청

mDNS 서비스를 쿼리하려면 다음 명령을 사용합니다.

dns-sd -B _app._protocol local

여기서 각 항목은 다음을 나타냅니다.

- 이 앱은 airplay, ipp, http 등의 애플리케이션(서비스 유형)입니다.

- 프로토콜은 TCP 또는 UDP입니다.

- local은 로컬 도메인을 나타냅니다.

예: Airplay 서비스 쿼리

dns-sd -B _airplay._tcp local

구성

라우팅된 액세스 네트워크의 컨피그레이션 예

토폴로지

SDG 에이전트의 컨피그레이션

1. mDNS 게이트웨이를 전역적으로 사용하도록 설정합니다.

참고: Cisco IOS XE 17.9.1부터 SDG 에이전트가 쿼리를 처리하고 응답하는 모드를 구성할 수 있습니다. 기본 모드는 반복입니다. 이 모드에서는 엔드포인트에서 쿼리를 받으면 기본적으로 15초의 일정한 간격으로 응답이 전송됩니다. 다른 모드는 온디맨드입니다. 이 모드에서는 엔드포인트에서 쿼리를 수신할 때만 응답이 전송됩니다. On-demand는 이전 Cisco IOS XE 버전에서 엔드포인트의 쿼리를 처리하는 방법입니다.

mdns-sd gateway

active-query timer 1  <----- Optionally enable Active querying to discover mDNS responders that might not send advertisements periodically.

query-response mode on-demand    <----- Sets the response mode to on-demand instead of the default recurring mode (only for 17.9.1 and later releases)

2. 위치 필터 만들기

사용자 지정 정책에서 VLAN 간 서비스 라우팅을 위해 위치 필터가 필요합니다. 이 경우 VLAN 2455와 2481 간의 서비스 라우팅이 필요하므로 이러한 VLAN이 위치 필터 LOCAL-PROXY에 추가됩니다.

mdns-sd location-filter LOCAL-PROXY

match location-group default vlan 2481

match location-group default vlan 2455

3. 원하는 서비스를 허용하는 인바운드 및 아웃바운드 서비스 목록을 만듭니다.

참고: 아웃바운드 서비스 정책에서 허용되는 서비스는 2단계에서 정의한 위치 필터와 연결됩니다. 이는 VLAN 간 서비스 라우팅에 필요합니다.

mdns-sd service-list LOCAL-AREA-SERVICES-IN IN

match airplay

match apple-tv

!

mdns-sd service-list LOCAL-AREA-SERVICES-OUT OUT

match airplay location-filter LOCAL-PROXY

match apple-tv location-filter LOCAL-PROXY

4. 서비스 정책을 생성하고 3단계에서 생성한 서비스 목록을 연결합니다.

mdns-sd service-policy LOCAL-AREA-SERVICE-POLICY

service-list LOCAL-AREA-SERVICES-IN IN

service-list LOCAL-AREA-SERVICES-OUT OUT

5. 원하는 VLAN에서 유니캐스트 mDNS 게이트웨이를 활성화합니다.

vlan configuration 2455

mdns-sd gateway

service-policy LOCAL-AREA-SERVICE-POLICY

source-interface Vlan2455                   <---- This is the source IP address that mDNS packets are going to be send from for this VLAN

!

vlan configuration 2481

mdns-sd gateway

service-policy LOCAL-AREA-SERVICE-POLICY

source-interface Vlan2481                   <---- This is the source IP address that mDNS packets are going to be send from for this VLAN

멀티레이어 네트워크의 컨피그레이션 예

토폴로지

SDG 에이전트의 컨피그레이션

1. mDNS 게이트웨이를 전역적으로 사용하도록 설정합니다.

mdns-sd gateway

source-interface vlan10  <----- This is the IP source that the SDG Agent are going to be use to establish BCP sessions with the Service Peers

2. 위치 필터 만들기

사용자 지정 정책에서 VLAN 간 서비스 라우팅을 위해 위치 필터가 필요합니다. 이 경우 VLAN 2455와 2481 간의 서비스 라우팅이 필요하므로 이러한 VLAN이 위치 필터 LOCAL-PROXY에 추가됩니다.

mdns-sd location-filter LOCAL-PROXY

match location-group default vlan 2481

match location-group default vlan 2455

3. 원하는 서비스를 허용하는 인바운드 및 아웃바운드 서비스 목록을 만듭니다.

참고: 아웃바운드 서비스 정책에서 허용되는 서비스는 2단계에서 정의한 위치 필터와 연결됩니다. 이는 VLAN 간 서비스 라우팅에 필요합니다.

mdns-sd service-list LOCAL-AREA-SERVICES-IN IN

match airplay

match apple-tv

!

mdns-sd service-list LOCAL-AREA-SERVICES-OUT OUT

match airplay location-filter LOCAL-PROXY

match apple-tv location-filter LOCAL-PROXY

4. 서비스 정책을 생성하고 3단계에서 생성한 서비스 목록을 연결합니다.

mdns-sd service-policy LOCAL-AREA-SERVICE-POLICY

service-list LOCAL-AREA-SERVICES-IN IN

service-list LOCAL-AREA-SERVICES-OUT OUT

5. 원하는 VLAN에서 유니캐스트 mDNS 게이트웨이를 활성화합니다.

vlan configuration 2455

mdns-sd gateway

service-policy LOCAL-AREA-SERVICE-POLICY

!

vlan configuration 2481

mdns-sd gateway

service-policy LOCAL-AREA-SERVICE-POLICY

6. 서비스 피어 간의 서비스 라우팅을 사용하도록 서비스 피어 그룹을 구성합니다.

서비스 라우팅을 수행하는 데 필요한 각 서비스 피어 소스 IP를 추가해야 합니다.

mdns-sd service-peer group

peer-group 1

service-policy LOCAL-AREA-SERVICE-POLICY

service-peer 10.1.1.1 location-group default

service-peer 10.1.1.5 location-group default

7. 스위치 간 트렁크 포트에 mDNS 트러스트를 구성합니다.

이 컨피그레이션은 필수 사항은 아니지만 포트가 인그레스 또는 이그레스에서 모든 mDNS 패킷을 삭제하도록 권장됩니다. 이는 이러한 포트에서 mDNS 패킷이 아니라 BCP 패킷을 볼 것으로 예상되기 때문입니다.

int range tw1/0/1, tw1/0/19

mdns-sd trust

서비스 피어의 컨피그레이션

1. mDNS 게이트웨이를 전역적으로 활성화하고 서비스 피어 모드를 구성합니다.

mdns-sd gateway

active-query timer 1

mode service-peer

sdg-agent 10.1.1.3   <------ IP address of the SDG Agent

2. 위치 필터 만들기

사용자 지정 정책에서 VLAN 간 서비스 라우팅을 위해 위치 필터가 필요합니다. 이 경우 VLAN 2455와 2481 간의 서비스 라우팅이 필요하므로 이러한 VLAN이 위치 필터 LOCAL-PROXY에 추가됩니다.

mdns-sd location-filter LOCAL-PROXY

match location-group default vlan 2481

match location-group default vlan 2455

3. 원하는 서비스를 허용하는 인바운드 및 아웃바운드 서비스 목록을 만듭니다.

mdns-sd service-list LOCAL-AREA-SERVICES-IN IN

match airplay

match apple-tv

!

mdns-sd service-list LOCAL-AREA-SERVICES-OUT OUT

match airplay location-filter LOCAL-PROXY

match apple-tv location-filter LOCAL-PROXY

4. 서비스 정책을 생성하고 3단계에서 생성한 서비스 목록을 연결합니다.

mdns-sd service-policy LOCAL-AREA-SERVICE-POLICY

service-list LOCAL-AREA-SERVICES-IN IN

service-list LOCAL-AREA-SERVICES-OUT OUT

5. 원하는 VLAN에서 유니캐스트 mDNS 게이트웨이를 활성화합니다.

서비스 피어 10.1.1.1의 경우:

vlan configuration 2455

mdns-sd gateway

service-policy LOCAL-AREA-SERVICE-POLICY

서비스 피어 10.1.1.5의 경우:

vlan configuration 2481

mdns-sd gateway

service-policy LOCAL-AREA-SERVICE-POLICY

6. 스위치 간 트렁크 포트에 mDNS 트러스트를 구성합니다.

이 컨피그레이션은 필수 사항은 아니지만 포트가 인그레스 또는 이그레스에서 모든 mDNS 패킷을 삭제하도록 권장됩니다. 이는 이러한 포트에서 mDNS 패킷이 아니라 BCP 패킷을 볼 것으로 예상되기 때문입니다.

서비스 피어 10.1.1.1의 경우:

int range tw1/0/1

mdns-sd trust

서비스 피어 10.1.1.5의 경우:

int range Gig1/0/1

mdns-sd trust

문제 해결

라우팅된 액세스 네트워크

1. SDG 에이전트에서 mDNS 쿼리를 보내고 받았는지 확인합니다.

C9500#show mdns-sd statistics vlan <vlan/interface> | i mDNS|send|received

mDNS Statistics

mDNS packets sent                 : 5 <---Validate that this number increments in multiple readings.

mDNS packets rate limited         : 0

mDNS packets received             : 3 <---mDNS queries received and processed by the SDG Agent.

advertisements received          : 0

queries received                 : 3

IPv4 received                  : 3

IPv4 advertisements received : 0

IPv4 queries received        : 3

IPv6 received                  : 0

IPv6 advertisements received : 0

IPv6 queries received        : 0

mDNS packets dropped              : 0

2. SDG 에이전트의 mDNS 캐시에 광고가 있는지 확인합니다.

C9500#show mdns-sd cache

mDNS CACHE

=================================================================================================================================

[<NAME>]                                             [<TYPE>] [<TTL>/Remaining] [Vlan-Id/If-name] [Mac Address] [<RR Record Data>]

CXLabs-W10.local                                        A       4500/3717       31      0050.56b3.d162  10.34.41.104

CXLabs-W10.local                                        A       4500/4224       30      0050.56b3.e409  10.34.37.59

_airplay._tcp.local                                     PTR     4500/4472       31      0050.56b3.d162  test31._airplay._tcp.local

test31._airplay._tcp.local                              SRV     4500/4472       2481      0050.56b3.d162  0       0       3000    CXLabs-W10-3.local

test31._airplay._tcp.local                              TXT     4500/4472       2481      0050.56b3.d162  (1)''

CXLabs-W10-3.local                                      A       4500/4472       31      0050.56b3.d162  10.34.41.104

3. mDNS 서비스와 연결된 VLAN에서 service-policy가 활성화되어 있는지 확인합니다.

C9500#show mdns-sd service-policy association vlan

========== VLAN policy association =============

VLAN            Service-policy

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

1                 LOCAL-AREA-POLICY

2481              LOCAL-AREA-POLICY

2455              LOCAL-AREA-POLICY

4. mDNS 캐시 서비스, 쿼리 발송자 및 응답자가 광고를 하고 있는지 확인합니다.

C9500#show mdns-sd statistics cache all

mDNS cache statistics :

Number of service types : 1

Number of records of type PTR : 1

Number of records of type SRV : 1

Number of records of type A : 3

Number of records of type AAAA : 0

Number of records of type TXT : 1

Top service types by instances :

Service type : (count of service instances)

_mirrorp2s._tcp.local : 1    <------Verify the service is display.

Top advertisers of record :

MAC Address : (count of records)

0050.56b3.d162 : 5

0050.56b3.e409 : 1           <-------Verify that interested MACs are mDNS Querier/Responder displays.

5. 캐시에 항목이 표시되지 않으면 mDNS 패킷만 수신되며 mDNS 응답자를 향한 SDG 에이전트의 교환이 없는 경우 서비스 정책을 검토하고 서비스가 목록에 있는지 확인합니다.

C9500#show mdns-sd service-list

Name                             Type                       Service       Msg-Type                        Source                         Location-filter

========================================================================================================================================================

LOCAL-AREA-SERVICES-IN             IN                           all            any                             -                                       - <-- Service list permit all services Inbound Direction

default-mdns-in-service-list       IN                apple-airprint            any                             -                                       -

IN            apple-remote-login            any                             -                                       -

IN            apple-screen-share            any                             -                                       -

IN                      apple-tv            any                             -                                       -

IN       apple-windows-fileshare            any                             -                                       -

IN             google-chromecast            any                             -                                       -

IN            google-expeditions            any                             -                                       -

IN                   homesharing            any                             -                                       -

IN         multifunction-printer            any                             -                                       -

IN                  printer-ipps            any                             -                                       -

LOCAL-AREA-SERVICES-OUT           OUT                           all            any                           ALL                             LOCAL-PROXY<-- Service list permit all services Outbound Direction

default-mdns-out-service-list     OUT                apple-airprint            any                           ALL            default-mdns-location-filter

OUT            apple-remote-login            any                           ALL            default-mdns-location-filter

OUT            apple-screen-share            any                           ALL            default-mdns-location-filter

OUT                      apple-tv            any                           ALL            default-mdns-location-filter

OUT       apple-windows-fileshare            any                           ALL            default-mdns-location-filter

OUT             google-chromecast            any                           ALL            default-mdns-location-filter

OUT            google-expeditions            any                           ALL            default-mdns-location-filter

OUT                   homesharing            any                           ALL            default-mdns-location-filter

OUT         multifunction-printer            any                           ALL            default-mdns-location-filter

6. 디버그를 수행하여 mDNS 프로세스를 검토합니다.

debug mdns all

멀티레이어 네트워크

서비스 피어 및 SDG 에이전트에서 mDNS 광고 검증

1. 서비스 피어와 SDG 에이전트(Keep-Alive exchange) 간에 BCP 세션이 있는지 확인합니다.

서비스 피어:

C9500#show mdns-sd sp-sdg statistics | i Keep|Message

Messages sent:

Keep-Alive                 : 69439    <---- Validate that this number increments in multiple readings

Messages received:

Keep-Alive Response        : 69420    <---- Validate that this number increments in multiple readings

C9300-2# show udp | i Proto|10991

Proto        Remote      Port      Local       Port  In Out  Stat TTY OutputIF

17       --listen--          --any--         10991   0   0 2001221   0

17(v6)   --listen--          --any--         10991   0   0 2020221   0

SDG 상담원:

C9500# show mdns-sd sp-sdg statistics | i Keep|Message

Messages received:

Keep-Alive                 : 138901   <---- Validate that this number increments in multiple readings

Messages sent:

Keep-Alive Response        : 138901   <---- Validate that this number increments in multiple readings

C9500#show mdns-sd sdg service-peer summary

=========================================================================================================

Service-Peer/Port                                 Cache-Sync                 Uptime          Record Count

Sent       Time

=========================================================================================================

10.1.1.5/10991                                 124     Sep  5 15:24:03 2023  62 Hrs 15 Mins   0

10.1.1.1/10991                                 360     Sep  5 15:32:03 2023  180 Hrs 7  Mins   0

2. 서비스 피어의 mDNS 캐시에 광고가 있는지 확인합니다.

mDNS 캐시에서 볼 수 없는 경우 mDNS 응답기에 연결된 인터페이스에서 패킷 캡처를 수행하고 엔드포인트가 유효한 mDNS 광고를 전송하고 있는지 검증합니다.

C9500#sh mdns cache

mDNS CACHE

=================================================================================================================================

[<NAME>]                                             [<TYPE>] [<TTL>/Remaining] [Vlan-Id/If-name] [Mac Address] [<RR Record Data>]

_airplay._tcp.local                                     PTR     4500/4500       2481    0050.56b3.e9c2  PC-vlan2481._airplay._tcp.local

PC-vlan2481._airplay._tcp.local                         SRV     4500/4500       2481    0050.56b3.e9c2  0       0       3000    CXLabs-WIN10.local

CXLabs-WIN10.local                                      A       4500/4500       2481    0050.56b3.e9c2  10.24.81.11

PC-vlan2481._airplay._tcp.local                         TXT     4500/4500       2481    0050.56b3.e9c2  (1)''

3. Service Peer Advertisement Sent 카운터가 증가하고 있는지 확인합니다.

각 서비스 피어는 모든 서비스 알림 타이머를 SDG 에이전트로 광고를 전송합니다. 기본값은 30초입니다.

C9300-2#sh mdns summary

Global mDNS Gateway

==========================================

mDNS Gateway               : Enabled

Rate Limit                 : 60 PPS (default)

AirPrint Helper            : Disabled

Mode                       : Service-Peer

SDG Agent IP               : 10.1.1.3         <----- SDG Agent configured

Source Interface           : Vl10

ANY Query Forward          : Disabled

Next Advertisement to SDG  : 00:00:12         <----- Time left for sending next advertisement to SDG Agent (Default is every 30 seconds)

Next Query to SDG          : 00:00:12

Active Response Timer      : Disabled

Active Query Timer         : Enabled 1 Minutes

mDNS Query Type            : PTR only

Service Enumeration period : Default

SSO                        : Inactive

C9300-2#show mdns-sd service-peer statistics

mDNS Packet statistics:

Packets received from client  : 11560

Queries                     : 281

IPv4                      : 281

IPv6                      : 0

Advertisements              : 11279

IPv4                      : 11279                      <---- Validate that this number increments in multiple readings

IPv6                      : 0

Packets sent to client        : 23939

Advertisements              : 6

IPv4                      : 6

IPv6                      : 0

Queries                     : 23933

IPv4                      : 23933

IPv6                      : 0

Packets sent to SDG           : 110

Queries                     : 92

Advertisements              : 18                        <---- Validate that this number increments in multiple readings

Packets received from SDG     : 0

C9300-2#show mdns-sd sp-sdg statistics

One min, 5 mins, 1 hour

Average Input rate (pps)   :      0,     0,     0

Average Output rate (pps)  :      0,     0,     0

Messages sent:

Query                      : 92

ANY query                  : 0

Advertisements             : 18                              <---- Validate that this number increments in multiple readings

Advertisement Withdraw     : 15

Interface down             : 0

Vlan down                  : 0

Service-peer cache clear   : 2

Resync response            : 365

Srvc Discovery response    : 0

Keep-Alive                 : 71056

Messages received:

Query response             : 0

ANY Query response         : 0

Cache-sync                 : 395

Get service-instance       : 0

Srvc Discovery request     : 0

Keep-Alive Response        : 71037

4. SDG 에이전트의 mDNS 캐시에 광고가 있는지 확인합니다.

C9500#    show mdns cache

mDNS CACHE

=================================================================================================================================

[<NAME>]                                             [<TYPE>] [<TTL>/Remaining] [Vlan-Id/If-name] [Mac Address] [<RR Record Data>]

_airplay._tcp.local                                     PTR     4500/4500       2481    0050.56b3.e9c2  PC-vlan2481._airplay._tcp.local

PC-vlan2481._airplay._tcp.local                         SRV     4500/4500       2481    0050.56b3.e9c2  0       0       3000    CXLabs-WIN10.local

CXLabs-WIN10.local                                      A       4500/4500       2481    0050.56b3.e9c2  10.24.81.11

PC-vlan2481._airplay._tcp.local                         TXT     4500/4500       2481    0050.56b3.e9c2  (1)''

=========================================================================================================================================================================

5. 디버그를 수행하여 mDNS 프로세스를 검토합니다.

debug mdns all

서비스 피어 및 SDG 에이전트에서 mDNS 쿼리 검증

1. 서비스 피어의 mDNS 쿼리 DB에 쿼리가 있는지 확인합니다.

mDNS query-db에 표시되지 않는 경우 mDNS 쿼리기에 연결된 인터페이스에서 패킷 캡처를 수행하고 엔드포인트가 유효한 mDNS 쿼리를 전송하고 있는지 확인합니다.

C9300-1#show mdns query-db

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

Client MAC       Vlan ID    Location ID                  User Role

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

PTR Name: _airplay._tcp.local

0050.56b3.2ec1     2455        Default                       none

2. 서비스 피어와 SDG 에이전트(Keep-Alive exchange) 간에 BCP 세션이 있는지 확인합니다.

C9300-1#show mdns sp-sdg statistics | i Keep|Message

Messages sent:

Keep-Alive                 : 71232      <---- Validate that this number increments in multiple readings

Messages received:

Keep-Alive Response        : 71218       <---- Validate that this number increments in multiple readings

C9300-1#show udp | i Proto|10991

Proto        Remote      Port      Local       Port  In Out  Stat TTY OutputIF

17       --listen--          --any--         10991   0   0 2001221   0

17(v6)   --listen--          --any--         10991   0   0 2020221   0

3. 서비스 피어 쿼리 전송 카운터가 증가하고 있는지 확인합니다. 또한 수신한 쿼리 응답이 증가하고 있습니다.

서비스 피어는 모든 서비스 쿼리 타이머마다 SDG 에이전트로 쿼리를 전송합니다. 기본값은 15초입니다.

C9300-1#show mdns-sd sp-sdg statistics

One min, 5 mins, 1 hour

Average Input rate (pps)   :      0,     0,     0

Average Output rate (pps)  :      0,     0,     0

Messages sent:

Query                      : 608       <---- Validate that this number increments in multiple readings

ANY query                  : 0

Advertisements             : 2

Advertisement Withdraw     : 0

Interface down             : 0

Vlan down                  : 0

Service-peer cache clear   : 6

Resync response            : 0

Srvc Discovery response    : 0

Keep-Alive                 : 71192

Messages received:

Query response             : 178        <---- Validate that this number increments in multiple readings

ANY Query response         : 0

Cache-sync                 : 395

Get service-instance       : 0

Srvc Discovery request     : 0

Keep-Alive Response        : 71178

4. SDG 에이전트가 응답에서 광고를 보내고 있는지 확인합니다.

C9500#show mdns sp-sdg statistics

One min, 5 mins, 1 hour

Average Input rate (pps)   :      0,     0,     0

Average Output rate (pps)  :      0,     0,     0

Messages received:

Query                      : 704

ANY query                  : 0

Advertisements             : 19

Advertisement Withdraw     : 15

Interface down             : 0

Vlan down                  : 0

Service-peer cache clear   : 8

Resync response            : 366

Srvc Discovery response    : 0

Keep-Alive                 : 142377

Messages sent:

Query response             : 191            <---- Validate that this number increments in multiple readings

ANY Query response         : 0

Cache-sync                 : 791

Get service-instance       : 0

Srvc Discovery request     : 0

Keep-Alive Response        : 142377

5. 디버그를 수행하여 mDNS 프로세스를 검토합니다.

debug mdns all

트러블슈팅에 사용되는 명령

show running-config mdns-sd

show mdns-sd summary

show mdns-sd service-policy association vlan

show mdns-sd service-policy association role

show mdns-sd statistics all

show mdns-sd statistics debug

show mdns-sd cache all

show mdns-sd query-db

show mdns-sd statistics cache all

show mdns-sd service-peer statistics

show mdns-sd sp-sdg statistics

show mdns-sd sdg service-peer summary

show mdns-sd controller summary

show mdns-sd controller detail

show mdns-sd controller statistics

show mdns-sd controller export-summary

show tech-support mdns-sd

debug mdns-sd all

관련 정보

- Catalyst 9500 스위치의 Service Discovery Gateway용 Bonjour 구성 설명서

- Cisco 기술 지원 및 다운로드