When I upgraded ~10 systems from 13.3 to 14.1 recently, 90%+ of my breakage was due to the localhost source address changing from 127.0.0.1 to 127.0.0.2. This was on two of my systems.

My lo0 config is standard:

    mote 20 % ifconfig lo0
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
            options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
            inet 127.0.0.1 netmask 0xff000000
            inet6 ::1 prefixlen 128
            inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
            groups: lo
            nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>

What's different on the two problematic systems is that they are authoritative nameservers. Following best practices, I use the (bind) server for authoritative queries and unbound for recursive resolver duties. The way I did this was to configure unbound to listen on 127.0.0.2 and then change /etc/resolv.conf to use "nameserver 127.0.0.2". (Which reminds me of another 14.X breakage -- unbound is no longer able to provide me with authoritative sshfp records!)

For 14.1 at least, this has the side effect that the source address for anything in the 127.0.0.0/8 domain becomes 127.0.0.2 instead of 127.0.0.1.

Given a host that has unbound listening on 127.0.0.2:

mote 133 # lsof -np `cat /usr/local/etc/unbound/unbound.pid` | fgrep domain unbound 39496 unbound 3u IPv4 0xfffff8001ee56000 0 UDP 127.0.0.2:domain->*:* unbound 39496 unbound 4u IPv4 0xfffff80037c2ea80 0 TCP 127.0.0.2:domain->*:* (LISTEN)

you can see this with the iperf3 port. Start the server side with:

    iperf3 -s 127.0.0.1

and connect using:

    iperf3 -c 127.0.0.1

The server session will report:

    Accepted connection from 127.0.0.2, port 37306

I believe my configuration is far enough off the well-traveled path that I'm the first to notice this. But there are definitely some programs (e.g. sendmail/opendkim which appears to sign messages from 127.0.0.1 but not from 127.0.0.2!) that are hardwired to know about 127.0.0.1 and deal with it specially/differently...

                Craig

Reply via email to