Using the dummy0 interface for a local-only service to be broadcasted by Avahi

Mathieu Trudel-Lapierre mathieu.tl at gmail.com
Tue Jan 10 04:10:17 UTC 2017


On Fri, Dec 30, 2016 at 2:44 PM, Till Kamppeter <till.kamppeter at gmail.com>
wrote:
[...]

> I also get:
>
> till at till-x1carbon:~$ hostname -I
> 192.168.0.15 192.168.122.1 2804:14c:5ba8:8b97::1
> 2804:14c:5ba8:8b97:205:1bff:feb0:7395 fd00:1:1::1
> till at till-x1carbon:~$ hostname -A
> till-x1carbon till-x1carbon till-x1carbon till-x1carbon ippusbxd-printers
> till at till-x1carbon:~$
>
> Does this mean that the first 4 IPs have the host name till-x1carbon and
> the address fd00:1:1::1 has the host name ippusbxd-printers?
>
> "ping ippusbxd-printers" pings the address fd00:1:1::1.
>
>
The man page states for -A:  "Do not make any assumptions about the order
of the output."

It simply means that there are a few names you can use *locally* to refer
to this system; one of which being "ippusbxd-printers"; as discovered by
looking at each configured interface and resolving the address. Nothing
more.

Any service that needs to listen to things and care about hostname will
need to ask the system on its own what the hostname should be. This is
typically done using gethostname() (and it looks like that's what avahi is
doing), or looking at files such as /etc/hostname, or asking a daemon like
systemd-hostnamed. The closer approximation on the command-line would
probably be "getent hosts fd00:1:1::1", but it won't help you if that's not
what avahi cares about.


> Problems:
>
> 1. I would like to assign the name by Zeroconf and not by modifying
> /etc/hosts. How can I do this.
>
> 2. Bonjour/Avahi broadcasting still does not work correctly.
>
> I still register via
>
> error =
>     avahi_entry_group_add_service_strlst(bonjour_data->ipp_ref,
>                 (int)if_nametoindex("ippusbxd"),
>         AVAHI_PROTO_UNSPEC, 0,
>         dnssd_name,
>         "_ipp._tcp", NULL, NULL, 60000,
>         ipp_txt);
>

Set something other than NULL as the "host" parameter? (the second NULL in
that call)


>
> but the "Address:" entry in the Bonjour record visible in avahi-discover
> (Interface: ippusbxd -> local -> Internet Printer) still uses the wrong
> host name:
>
> Address: till-x1carbon.local/fd00:1:1::1:60000
>
> It should be
>
> Address: ippusbxd-printers/fd00:1:1::1:60000
>
> How can I fix this?


I expect that will be fixed when you specify a hostname as you register the
service. Otherwise, NULL just tells avahi to use the hostname it already
knows, which will be what gethostname() returns.

/ Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/ubuntu-devel/attachments/20170109/0327542b/attachment.html>


More information about the ubuntu-devel mailing list