Categories
Mastering Development System & Network

Why is IPv6 disabled upon reboot even after configuring sysctl.conf?

First of all it cracks me up how many articles are out there to force IPv6 OFF on linux servers. Come on folks, get with the new! 😀

root@hodor:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster
root@hodor:~# uname -a
Linux hodor 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux

I have a repeatable problem where, after a reboot, one of my bridge interfaces and all child / slave interfaces for that bridge have IPv6 disabled. This causes a failure in setting ipv6 address on the host among other things. This is what I see

net.ipv6.conf.br0.disable_ipv6 = 1
net.ipv6.conf.enp175s0f0.disable_ipv6 = 1
net.ipv6.conf.enp175s0f1.disable_ipv6 = 1
net.ipv6.conf.hostveth0.disable_ipv6 = 1

I couldn’t find anything of relevance in /etc/sysctl.d/* . Here is my sysctl.conf:

root@hodor:~# grep -v ^\# /etc/sysctl.conf






net.ipv4.ip_forward=1

net.ipv6.conf.all.forwarding=1



net.ipv6.conf.br0.disable_ipv6 = 0
net.ipv6.conf.br0/5.disable_ipv6 = 0
net.ipv6.conf.br0/90.disable_ipv6 = 0
net.ipv6.conf.enp175s0f0.disable_ipv6 = 0
net.ipv6.conf.enp175s0f1.disable_ipv6 = 0
net.ipv6.conf.hostveth0.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.all.disable_ipv6 = 0

After I sysctl -p I can then manually set my ipv6 and fix all the other little nuances, but that sucks.

Also thought that maybe grub was my culprit, but I see nothing that refers to this kernel parameter.

root@hodor:~# grep -v ^\# /etc/default/grub

GRUB_DEFAULT=0
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200 intel_iommu=on"
GRUB_TERMINAL="console serial"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

Here is /etc/network/interfaces (obfuscated) and there is nothing /etc/network/interfaces.d/:

source /etc/network/interfaces.d/*

auto lo
auto enp5s0
auto enp6s0
iface lo inet loopback
iface enp5s0 inet manual
iface enp6s0 inet manual


auto enp175s0f0
iface enp175s0f0 inet manual


auto enp175s0f1
iface enp175s0f1 inet manual

auto br0
iface br0 inet static
bridge_ports enp175s0f1 enp175s0f0 hostveth0
bridge_stp off
bridge_maxwait 5
address 172.16.10.35
netmask 255.255.254.0
gateway 172.16.10.1
dns-nameservers 172.16.10.1
hwaddress ether 9e:7d:01:6c:32:1b
        pre-up ip link add name hostveth0 type veth peer name dockerveth0
        pre-up ip link set hostveth0 up
        pre-up ip link set dockerveth0 up

iface br0 inet6 static
        address 2600:####:####:###0::face/64
        dns-nameservers 2600:####:####:###0::1
        gateway 2600:####:####:####0::1

auto virttap0
iface virttap0 inet manual
        pre-up modprobe dummy
        pre-up ip link add name virttap0 type dummy
        post-up ip link set virttap0 arp on multicast on

iface br0.5 inet manual
        vlan-raw-device br0

iface br0.90 inet manual
        vlan-raw-device br0

auto br5
iface br5 inet manual
bridge_ports br0.5
bridge_stp off
bridge_maxwait 5

auto br90
iface br90 inet manual
bridge_ports br0.90
bridge_stp off
bridge_maxwait 5

Hopefully this is an easy one. Please help if you can!

Leave a Reply

Your email address will not be published. Required fields are marked *