I want to configure an address on eth0:ipv4ll, even if eth0 is itself configured. Eth0 will never be configured with an ipv4ll address, it's set to DHCP. The system in question is used both in a regular network, and out of it, and needs to ipv4ll address all the time.
I set up a line in the interfaces file as such:
iface eth0:ipv4ll inet ipv4ll
But, this merely gets a log note that avahi-auotipd isn't configuring the interface because it already has a routable address on it.
Yes, eth0 has an address. But eth0:ipv4ll isn't eth0.
I can't figure out where exactly avahi-autoipd is being run, or I'd simply add --force-binding to the line.
Is there a better way?
I looked at the ifupdown source and definition file and the ipv4ll interface type is just a manual up/down wrapper. You can configure an avahi-autoipd interface in /etc/network/interfaces as a manual type:
If you have eth0 configured for dhcp then you also need to comment out the line in /etc/dhcp/dhclient-enter-hooks.d/avahi-autoipd that causes the avahi interface to be killed off when dhcp configures itself. Once you do these things then you will be able to use an eth0 and eth0:0 (which gets renamed to eth0:avahi after you ifup eth0:0, oddly).
Well, it seems that ifup calls avahi-autoipd directly, from a static string inside the binary.
Kind of inflexible.
I'll be pursuing another solution. I'd welcome advice in any case. For instance, I wonder if there is a better choice than ifupdown, which also seem s to know too much about Network Manager.