diff --git a/diskimage_builder/elements/simple-init/post-install.d/80-simple-init b/diskimage_builder/elements/simple-init/post-install.d/80-simple-init index 4c5a79ae..48913bc4 100755 --- a/diskimage_builder/elements/simple-init/post-install.d/80-simple-init +++ b/diskimage_builder/elements/simple-init/post-install.d/80-simple-init @@ -37,3 +37,16 @@ case "$DIB_INIT_SYSTEM" in exit 1 ;; esac + +if [[ ${DIB_SIMPLE_INIT_NETWORKMANAGER} != 0 ]]; then + # If we are using NetworkManager then we have to avoid having the kernel + # configure ipv6 addresses on an interface (via router advertisements) + # until NetworkManager starts. If the interface is configured by the + # kernel before NetworkManager then NetworkManager will ignore the + # interface and not configure ipv4 on it. It does this because it assumes + # some other entity is in control of the interface. + # Debian has a many year old long bug report detailing this behavior with + # the most interesting comment being at the end: + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755202#331 + echo 'net.ipv6.conf.default.router_solicitation_delay=15' >> /etc/sysctl.conf +fi