[avahi] Strange MDNS response from Axis cameras

Iván Sánchez Ortega i.sanchez at mirame.net
Tue Feb 7 04:13:38 PST 2006

Hi there,

As this is my first message to this mailing list, I might as well introduce 
myself briefly. I'm Iván Sánchez, from Spain. Linux junkie, PHP programmer, 
Computer Science student. Quite some experience with webservers and IP 
networking, near-zero experience with Avahi and MDNS.

The fact is, I'm currently working with some Axis IP cameras [1]. Wonderful 
gadgets, they've got a 100Mhz µprocessor running Linux, featuring a webserver 
and some uPnP/zeroconf support. My goal is to detect a large number of these 
cameras in a large network, by using avahi.
[1] http://www.axis.com/products/video/camera/

However, I'm running into some problems. One of the cameras is returning a 
"strange" MDNS response, pointing to a non-existant IP address. I managed to 
capture that response with ethereal (my workstation is 01:00:5e:xx:xx:xx, the 
camera is 00:40:8c:xx:xx:xx at

Frame 339 (354 bytes on wire, 354 bytes captured)
Ethernet II, Src: (00:40:8c:xx:xx:xx), Dst: 01:00:5e:xx:xx:xx 
Internet Protocol, Src: axis-00408cxxxxxx.local (, Dst: (
User Datagram Protocol, Src Port: 5353 (5353), Dst Port: 5353 (5353)
Domain Name System (response)
    Transaction ID: 0x0000
    Flags: 0x8400 (Standard query response, No error)
    Questions: 0
    Answer RRs: 8
    Authority RRs: 0
    Additional RRs: 0
        axis-00408cxxxxxx.local: type A, class IN, addr
        axis-00408cxxxxxx.local: type A, class FLUSH, addr
        AXIS 213 - 00408CXXXXXX._http._tcp.local: type SRV, class FLUSH, 
priority 0, weight 0, port 80, target axis-00408cxxxxxx.local
        AXIS 213 - 00408CXXXXXX._http._tcp.local: type TXT, class FLUSH
        AXIS 213 - 00408CXXXXXX._axis-video._tcp.local: type SRV, class FLUSH, 
priority 0, weight 0, port 80, target axis-00408cxxxxxx.local
        AXIS 213 - 00408CXXXXXX._axis-video._tcp.local: type TXT, class FLUSH
        AXIS 213 - 00408CXXXXXX._rtsp._tcp.local: type SRV, class FLUSH, 
priority 0, weight 0, port 554, target axis-00408cxxxxxx.local
        AXIS 213 - 00408CXXXXXX._rtsp._tcp.local: type TXT, class FLUSH

This translates to:

ivan at silverspark:~$ avahi-browse -acr
= eth0 IPv4 AXIS 213 - 00408CXXXXXX               Web Site             local
   hostname = [axis-00408cxxxxxx.local]
   address = []
   port = [80]
   txt = []

So, it seems that the camera is returning two addresses: the "real" address 
(, and an ad-hoc zeroconf address ( Avahi gets 
the non-existant, non-working ad-hoc address, while windoze's uPnP gets the 
"real", good address. I haven't tried with Apple's Zeroconf.

So, questions:

Avahi doesn't get the correct IP address from this camera. Who is to blame for 
this: Axis' implementation of MDNS responses, or Avahi's bad interpretation 
of it?

The cameras publish the _axis-video and _rtsp services. However, applications 
(such as the zeroconf:/ kioslave aren't aware of these services and ignore 
them. What would be the way to do this?

Thanks for reading all this,
Iván Sánchez Ortega <i.sanchez at mirame.net> <ivansanchez at escomposlinux.org>

"I loathed every day and regret every day I spent in school.  I like to be 
taught to read and write and add and then be left alone."
 -    Woody Allen

More information about the avahi mailing list