The default behaviour of these services is to bind to "0.0.0.0", which means "any IP" essentially. That means they will work even when the nic isn't there yet, because localhost is. It also means that once a new nic comes up, they will listen on all its addresses too, without any other changes in configuration or restarts. Same for when an address disappears. It's definitely a good default for network services.
The moment you tell a service to bind to a specific IP, however, if that IP is not available then it will fail. That's where IP_FREEBIND comes in. It requires code changes, though.
The default behaviour of these services is to bind to "0.0.0.0", which means "any IP" essentially. That means they will work even when the nic isn't there yet, because localhost is. It also means that once a new nic comes up, they will listen on all its addresses too, without any other changes in configuration or restarts. Same for when an address disappears. It's definitely a good default for network services.
The moment you tell a service to bind to a specific IP, however, if that IP is not available then it will fail. That's where IP_FREEBIND comes in. It requires code changes, though.
This systemd upstream article talks about the pros and cons of depending on network- online. target: https:/ /www.freedeskto p.org/wiki/ Software/ systemd/ NetworkTarget/. In general, it should be avoided if possible.