Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Aug 2018 19:29:28 +0300
From:      Sergey Akhmatov <sergey@akhmatov.ru>
To:        freebsd-net <freebsd-net@freebsd.org>
Subject:   Multicast group 224.0.0.1 membership drops when adding interface alias twice
Message-ID:  <9b2c592b-a93f-f2d7-c586-c927279f246e@akhmatov.ru>

next in thread | raw e-mail | index | archive | help
Hello,

I've hit some strange behavior and not sure if its a bug and where it 
is, kernel or ifconfig. Tested on 11.1-REALESE and 11-STABLE

When I add first IP to interface it automatically joins multicast group 
224.0.0.1 (All hosts), for example:

# ifconfig lo1 create

# ifconfig lo1 inet 127.1.0.1/24

# ifconfig lo1
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
         inet 127.1.0.1 netmask 0xffffff00
         nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
         groups: lo

# ifmcstat -i lo1
lo1:
         inet 127.1.0.1
         igmpv3 rv 2 qi 125 qri 10 uri 3
                 group 224.0.0.1 mode exclude


When I run ifconfig with the same IP and "alias" keyword, nothing 
changes on the interface, which is expectable. But interface leave 
multicast group:

# ifconfig lo1
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
         inet 127.1.0.1 netmask 0xffffff00
         nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
         groups: lo

# ifmcstat -i lo1

<empty>


The same works for ethernet interfaces, I chose lo1 for example as the 
easiest way to reproduce without breaking things.

A few words why am I doing this:

It's not me, It's /etc/network.subr and /sbin/dhclient-script always add 
IP to interface with "alias" keyword whether it's the first IP or not.

I use reroot frunction (reboot -r) for diskless network-bootable 
systems. They boot minimal memory-disk root via tftp, obtain IP DHCP, 
create and populate another memory disk with full-system and reroot into 
it. Such reboot doesn't change kernel state, meaning interfaces are 
already configured, and when /etc/rc.d/netif  hits, it adds IPs which 
are already there wiping default 224.0.0.1 multicast membership, which 
breaks some site-specific things for me.

I've found workaround, just wiping IPs from interfaces before reroot, 
but the whole situation took some time to investigate and looks like a 
bug to me. My skills are not enough to find out if it's ifconfig or 
kernel internals.

Any thoughts if it deserves bug-report?




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9b2c592b-a93f-f2d7-c586-c927279f246e>