Skip to main content

Wireshark capture playbooks for AV/UC

Reference procedures for capturing and analysing common AV and UC network traffic with Wireshark. Each playbook documents the prerequisites, capture filter, display filter, and what to look for in the output.

⚠ Disclaimer These playbooks are provided as-is, for educational and planning purposes only. Capture techniques should only be used on networks you are authorised to inspect — always verify with your security team and follow applicable privacy laws. The Tech Space makes no warranty and accepts no liability. Full disclaimer →
10 playbooks
Last updated 2026-05

Overview

Each playbook below is a self-contained procedure for capturing a specific category of AV or UC traffic with Wireshark. Use these when you have a SPAN/mirror port, an inline tap, or are running Wireshark on the device under test itself.

All playbooks include both the Wireshark display filter (used after capture) and the tshark capture filter (BPF, used to limit what's captured in the first place). Where useful, they also reference the matching scenario in the Wireshark Filter Generator which can produce the filter dynamically.

Note These procedures assume Wireshark 4.0 or later. Some filter syntax (notably the TLS layer rename from ssl to tls) changed in earlier releases.

Contents

Playbook 01
Layer 2
~5 min

Capture by MAC address

Capture every frame where a known MAC address appears as source or destination. Use this when you know the physical device but not its IP, or when investigating an unfamiliar device on the network.

Prerequisites

  • Capture interface configured for promiscuous mode.
  • Connection to a SPAN/mirror port, inline tap, or a hub-equivalent device that sees the target's traffic.
  • The target MAC address (12 hex characters).

Procedure

  1. Start Wireshark and select your capture interface.
  2. Apply the capture filter shown below to limit the trace to traffic involving the MAC. This is optional — you can also capture broadly and filter later with the display filter.
  3. Run the capture for at least 30 seconds (longer if the device is idle).
  4. Apply the display filter and review the resulting frames.
Display filter
eth.addr == aa:bb:cc:dd:ee:ff
Capture filter (BPF)
ether host aa:bb:cc:dd:ee:ff
tshark equivalent
tshark -i any -f "ether host aa:bb:cc:dd:ee:ff"

The filter generator can produce this scoped to your device: wireshark-filter#mac

What to look for

  • Source IP in any ARP reply — reveals the IP address the device is currently using.
  • VLAN tag in 802.1Q frames — confirms switch port configuration.
  • Broadcast/multicast traffic the device is sending or receiving — useful for service-discovery diagnostics.
Tip If the device hasn't broadcast recently, force it to ARP by pinging an unused IP from it (if you have local access), or wait for the next DHCP renewal cycle.

Common issues

Capture returns no frames despite the device being active:

  • Interface is not in promiscuous mode.
  • You're on an access port instead of a SPAN/mirror port. Switch only sends frames destined for your MAC.
  • The target device is on a different VLAN than what your mirror is capturing.
  • For wireless networks: only the AP sees client MAC traffic — capture there if possible.
Playbook 02
UDP 53
~10 min

Trace DNS queries from a device

Identify hostnames that a device resolves during operation. This is the foundation for firewall whitelisting work, identifying unexpected outbound connections, and verifying cloud-service reachability.

Prerequisites

  • Capture interface with visibility into the device's outbound traffic (SPAN, inline tap, or local capture).
  • The device's IP address (or subnet if multiple devices).
  • Plan to capture during boot, sign-in, and idle periods — cached resolutions can mean a steady-state capture misses queries.

Procedure

  1. Apply the capture filter to limit volume.
  2. Reboot the device or trigger the workflow you want to observe.
  3. Capture for 10–20 minutes.
  4. Apply the display filter, then open Statistics → DNS for a deduplicated query summary.
  5. Export the unique-name list via File → Export Packet Dissections → as CSV if you need it for a ticket.
Display filter
dns and ip.src == 10.0.0.50
Capture filter (BPF)
host 10.0.0.50 and port 53

Scoped generator: wireshark-filter#firewall (firewall discovery covers DNS plus TCP SYN and TLS SNI).

Key fields to inspect

FieldDescription
dns.qry.nameHostname being resolved.
dns.qry.typeRecord type (A, AAAA, CNAME, SRV, etc.).
dns.flags.rcodeResponse code. 0 = success; 3 = NXDOMAIN; anything else = problem.
dns.resp.addrResolved IP address in the response.
dns.timeTime from query to response. >1 sec suggests a slow resolver.
Note If the device uses DNS-over-HTTPS (DoH) or DNS-over-TLS (DoT), plain DNS captures will be sparse. Use the firewall discovery playbook and rely on TLS SNI extraction instead.

Common issues

  • Empty result set — device may use a non-standard DNS server or DoH. Confirm via the device's configuration page or use the TLS SNI playbook.
  • All queries returning NXDOMAIN — DNS server is misconfigured or unreachable; the device will be effectively offline for cloud services.
  • Queries succeed but no subsequent TCP traffic — DNS works but firewall is blocking the destination. Cross-check with tcp.flags.syn == 1 and ip.src == <device>.
Playbook 03
Multi-protocol
~30 min

Identify outbound destinations (firewall discovery)

Combined workflow to identify everything a device needs to reach. Use when whitelisting a new device on a restricted egress firewall, validating an existing policy, or auditing what an unfamiliar device is reaching out to.

Prerequisites

  • SPAN/mirror port visibility into the device's traffic.
  • Target device IP or subnet (e.g. 10.0.0.50 or 10.0.0.0/24).
  • Time to observe a boot + sign-in + idle cycle (typically 15–30 minutes).
  • Vendor documentation of expected endpoints (Microsoft Learn, Cisco Help Hub, etc.) as a reference baseline.

Procedure

  1. Start capture with a broad filter that catches DNS, TCP setup, and HTTPS:
Capture filter (BPF)
host 10.0.0.50 and (port 53 or tcp[tcpflags] & tcp-syn != 0 or tcp port 443)
  1. Reboot the device. Sign in. Trigger any workflows (test call, share content, idle for 10 min).
  2. Apply each display filter below in turn to extract the four destination lists.
  3. Cross-reference the lists. Gaps between DNS and TLS SNI usually indicate hardcoded IPs or hostname pinning — these are the most interesting findings.
  4. Build the firewall ticket from the deduplicated FQDN list (preferred) plus any standalone destination IPs.

Display filters

DNS queries (primary — hostnames to whitelist)

dns and ip.src == 10.0.0.50

Use Statistics → DNS → Queries by Name for a deduplicated list.

Outbound TCP connection attempts

tcp.flags.syn == 1 and tcp.flags.ack == 0 and ip.src == 10.0.0.50

Use Statistics → Endpoints to extract unique destination IPs. Sort by destination address.

TLS SNI (hostnames in HTTPS handshakes)

tls.handshake.extensions_server_name and ip.src == 10.0.0.50

The Server Name Indication is visible even in encrypted traffic. Often catches endpoints DNS missed.

Internet-bound only (exclude RFC1918)

ip.src == 10.0.0.50 and not (ip.dst == 10.0.0.0/8 or ip.dst == 172.16.0.0/12 or ip.dst == 192.168.0.0/16)

Generator with subnet support: wireshark-filter#firewall

Tip Prefer FQDN-based firewall rules over IP-based where supported — cloud destination IPs change over time, but hostnames stay stable.
Important Often-forgotten outbound services to include in the ticket: NTP (UDP 123), syslog (UDP 514), SNMP (UDP 161). Most AV/UC devices need at least NTP.
Playbook 04
SIP + RTP
~15 min

SIP signalling and RTP media

Capture call setup signalling and the media streams it negotiates. Use to investigate one-way audio, codec negotiation issues, registration failures, and call quality complaints.

Prerequisites

  • Capture visibility into the SIP endpoint and (ideally) the SIP server's network path.
  • Endpoint IP address.
  • Plan to capture during call setup — signalling completes in a few seconds, then is silent.

Procedure

  1. Start the capture with the BPF filter below.
  2. Place a test call from the endpoint.
  3. Apply the display filter, then use Telephony → VoIP Calls to reassemble call legs.
  4. For media-only analysis: Telephony → RTP → RTP Streams — shows packet loss, jitter, and lets you play back captured audio.
Display filter (signalling + media, scoped to endpoint)
(sip or rtp or rtcp) and ip.addr == 10.0.0.50
Capture filter (BPF)
host 10.0.0.50 and (port 5060 or port 5061 or (udp portrange 16384-32767))

Generator entries: wireshark-filter#sip · wireshark-filter#rtp

Key fields and what they tell you

FieldIndicates
sip.MethodINVITE / REGISTER / ACK / BYE — overall call state.
sip.Status-CodeSIP response code. 200 = OK; 401 = auth challenge; 403 = forbidden; 487 = cancelled.
sdp.media_attrSDP attributes including codec negotiation.
rtp.payload_typeCodec in use (0 = PCMU/G.711, 8 = PCMA, 9 = G.722, etc.).
RTP Streams reportPacket loss percentage, max jitter, and stream duration.

Common issues

  • SIP completes (200 OK + ACK) but only one RTP stream visible — one-way audio. Far end is sending media to an IP/port the network doesn't deliver. Common with NAT without ICE/TURN.
  • SDP shows mismatched codecs — call connects but no audio because both ends fall back to incompatible codecs.
  • High packet loss in RTP Streams report — investigate QoS marking and switch port stats with the network errors playbook (RTP loss often mirrors TCP retransmit patterns on the same path).
Playbook 05
UDP 4321 / 4440-4459 / PTP
~30 min

Dante audio and PTP clock sync

Capture Dante discovery, audio media flows, and PTPv2 clock-sync traffic. Use when investigating audio dropouts, glitches, channel loss, or clock instability.

Prerequisites

  • SPAN/mirror port on the audio VLAN. Dante is L2-sensitive — a routed capture point may miss multicast.
  • Dante device IP (or audio VLAN subnet).
  • Dante Controller open in another window for cross-reference (Clock Status tab in particular).

Procedure

  1. Mirror the audio VLAN to your capture port.
  2. Start the capture during a period of audio activity.
  3. Capture for 5–10 minutes including a known-bad period if the issue is intermittent.
  4. Apply filters below to isolate each protocol layer.
Display filter (combined Dante + PTP)
(udp.port == 4321 or (udp.port >= 4440 and udp.port <= 4459) or ptp) and ip.addr == 10.50.0.0/24
Capture filter (BPF)
port 4321 or portrange 4440-4459 or port 319 or port 320

Generator entry: wireshark-filter#dante

PTP analysis (clock stability)

Filter for PTP Announce messages and confirm a single master:

ptp.v2.messagetype == 0x0b

Expected output: one source IP sending Announce messages consistently. Multiple sources = grandmaster election storm = the most common cause of Dante dropouts.

Important Audio dropouts that correlate with PTP master changes are nearly always a network configuration issue (a non-Dante PTP device joining the VLAN, BMCA priority misconfiguration, or a switch with a broken PTP boundary clock implementation).

Common issues

  • Missing multicast Dante flows — IGMP snooping enabled without a querier on the VLAN. See the IGMP playbook.
  • Sporadic packet drops — switch port speed/duplex mismatch or output discards. Check show interfaces counters errors on the switch.
  • Inconsistent PTP — multiple grandmasters or BMCA flapping. Set explicit priority on the intended master device in Dante Controller.
Playbook 06
UDP 5353
~10 min

mDNS / Bonjour discovery

Capture multicast DNS service-discovery traffic. Used by AirPlay, NDI, Sonos, Spotify Connect, Apple devices, many AV control protocols, and printers.

Prerequisites

  • Capture visibility on the VLAN where the device is announcing.
  • mDNS multicast runs on 224.0.0.251:5353 (IPv4) and FF02::FB (IPv6).

Procedure

  1. Apply the capture filter.
  2. Trigger the discovery (boot a device, refresh a service list in the controller app).
  3. Filter by service-name fragment in the display filter to isolate one protocol.
Display filter (all mDNS)
mdns
Display filter (NDI services only)
mdns and dns.qry.name contains "_ndi"
Capture filter (BPF)
udp port 5353

Generator entry: wireshark-filter#mdns

Common service names

ServiceUsed by
_airplay._tcpApple TV, AirPlay-enabled speakers, screen mirroring.
_raop._tcpRemote Audio Output Protocol (AirPlay audio).
_googlecast._tcpChromecast and Google-cast-enabled devices.
_ndi._tcpNewTek NDI senders and receivers.
_sonos._tcpSonos speakers.
_spotify-connect._tcpSpotify Connect targets.
_workstation._tcpGeneric device announcement.
Note mDNS doesn't traverse Layer 3 boundaries by default. If discovery works on the same VLAN but fails across subnets, you need an mDNS reflector or Bonjour Gateway on the router/L3 switch.
Playbook 07
IGMP
~15 min

IGMP multicast diagnostics

Validate IGMP querier presence, group memberships, and snooping behaviour. Essential for any multicast-dependent service: Dante audio, NVX / NAV / SDVoE video, NDI, and AVB.

Prerequisites

  • Capture on the VLAN carrying multicast traffic.
  • If possible, capture from the switch's CPU or a SPAN that includes the IGMP querier's port.

Procedure

  1. Capture for at least 2 minutes — IGMP queries are typically sent every 60-125 seconds.
  2. Use the filters below to break down by message type.
Display filter (all IGMP)
igmp
Filter for queries only
igmp.type == 0x11
Filter for membership reports only
igmp.type == 0x16 or igmp.type == 0x22
Capture filter (BPF)
igmp

Generator entry: wireshark-filter#multicast

What to verify

CheckExpected
Querier presenceAt least one IGMP General Query every 125 seconds (default).
Querier sourceShould be a router or the switch with the lowest IP if no router.
Membership reportsOne per group your device wants to receive.
Leave messagesSent when devices stop receiving a group. Common to see during reboots.
Warning IGMP snooping enabled on the switch but no querier on the VLAN = multicast traffic is pruned within minutes. This is the most common cause of "Dante audio works for 5 minutes after reboot, then stops".
Playbook 08
UDP 67 / 68
~10 min

DHCP transactions

Capture the DISCOVER / OFFER / REQUEST / ACK exchange. Useful for diagnosing IP assignment failures, slow boot due to DHCP retries, and vendor-class fingerprinting (Microsoft Teams Rooms, Cisco IP phones).

Prerequisites

  • Capture during a cold boot or DHCP renewal.
  • Capture visibility on the client's VLAN — DHCP relay traffic is unicast and may not appear if you're capturing from a different segment.

Procedure

  1. Start the capture.
  2. Power-cycle the client (or run dhclient -r && dhclient on Linux clients).
  3. Apply the display filter and trace the four-message exchange.
Display filter (IPv4 DHCP)
bootp
Scoped to a specific MAC
bootp and bootp.hw.mac_addr == aa:bb:cc:dd:ee:ff
Capture filter (BPF)
port 67 or port 68

Generator entry: wireshark-filter#dhcp

Key DHCP options to inspect

OptionFieldPurpose
12bootp.option.hostnameHostname advertised by client.
50bootp.option.requested_ip_addressIP the client wants to keep (re-lease).
53bootp.option.dhcpMessage type (1=DISCOVER, 2=OFFER, 3=REQUEST, 5=ACK, 6=NAK).
55bootp.option.request_list_itemParameter request list — what options the client wants.
60bootp.option.vendor_class_idVendor class — used to trigger MTR-specific configs.
61bootp.option.client_idClient identifier (often the MAC).
Tip If you see multiple DISCOVERs without an OFFER, either the DHCP server is unreachable, the IP pool is exhausted, or a DHCP relay is misconfigured. Confirm by capturing on both client VLAN and the relay's upstream interface.
Playbook 09
LLDP / LLDP-MED
~10 min

LLDP-MED for PoE diagnostics

Capture Link Layer Discovery Protocol advertisements to confirm device PoE class negotiation, port assignment, and VLAN configuration.

Important LLDP frames do not traverse switches. You must capture from a device on the same switch port as the device under investigation. Options: a hub-equivalent inserted in-line, the switch's CPU (via monitor session with the source interface), or a SPAN configured for the local interface.

Prerequisites

  • Physical access to the device's switch port or a configured SPAN of that port.
  • Allow up to 60 seconds for the next LLDP advertisement after plugging in (default TX interval is 30 sec).

Procedure

  1. Set up port mirroring or insert the capture device inline.
  2. Start capture with the LLDP filter.
  3. Wait at least 60 seconds for two advertisement cycles.
  4. Inspect the LLDP-MED Power TLV in the packet detail pane.
Display filter
lldp
Capture filter (BPF — LLDP multicast destination)
ether host 01:80:c2:00:00:0e

Generator entry: wireshark-filter#cdp-lldp

Key LLDP-MED TLVs to inspect

TLVWhat it tells you
System NameSwitch hostname.
Port DescriptionSwitch port the device is plugged into.
Port VLAN IDConfigured VLAN.
LLDP-MED Extended Power-via-MDINegotiated PoE class, requested power, and actual allocation. The key TLV for PoE issues.
LLDP-MED Network PolicyVoice VLAN / DSCP advertisement (used by IP phones).
Note If the Power-via-MDI TLV is absent from the device's advertisement, LLDP-MED is either disabled on the device or unsupported. The switch can still classify via 802.3at/bt hardware signalling but PoE+ negotiation will be limited to Class 0 baseline.
Playbook 10
TCP
~20 min

TCP retransmits and resets

Identify packet loss, connection problems, and latency-driven issues using Wireshark's built-in TCP analysis. Run this first when users report degraded performance, drops, or intermittent connectivity.

Prerequisites

  • Capture visibility on the affected endpoint (SPAN or local capture).
  • Capture during a known-bad period if the issue is intermittent.

Procedure

  1. Start capture (broad — TCP analysis depends on seeing both directions of the stream).
  2. Apply one of the display filters below.
  3. For deeper analysis: Statistics → Conversations → TCP shows per-flow throughput, retransmit counts, and round-trip times.
  4. For visual diagnostics: Statistics → TCP Stream Graphs → Round Trip Time per conversation.
All TCP analysis flags
tcp.analysis.flags
Retransmits only
tcp.analysis.retransmission
RST flags (connection abort)
tcp.flags.reset == 1
Scoped to a specific endpoint
(tcp.analysis.flags or tcp.flags.reset == 1) and ip.addr == 10.0.0.50

Generator entry: wireshark-filter#errors

What the TCP analysis flags mean

FlagWhat Wireshark detected
RetransmissionA previously-seen segment was re-sent — usually the receiver didn't ACK in time.
Fast Retransmission3+ duplicate ACKs triggered an immediate retransmit. Indicates a single lost packet.
Duplicate ACKReceiver got an out-of-order segment and is signalling the gap.
Out-Of-OrderA segment arrived earlier than its sequence number suggests.
Previous segment not capturedWireshark inferred a gap from sequence numbers but didn't see the missing segment — could be a capture gap or a real loss.
Zero WindowReceiver advertised a window of 0 — it's not ready for more data.
Tip A few retransmits per session are normal on a healthy WAN. Concern thresholds: >1% retransmission rate, or any visible pattern (e.g. retransmits clustering around the same time-of-day).

Common issues

  • High retransmit rate on a single endpoint — check switch port stats for errors, replace cable, confirm PoE class isn't underpowered.
  • Bursty retransmits across many endpoints — investigate WAN saturation or QoS misconfiguration.
  • Frequent RST flags from one peer — often a stateful firewall or load balancer tearing connections it doesn't recognise.