Trying to fulfill the documentation for matter i need to set a few kernel values:
I need this to get my docker homeassistant
working in combination with homeassistant-matter-hub
also running in docker
Precondition to use homeassistant-matter-hub
is to modify the daemon.json
for docker like this
- path: /etc/docker/daemon.json
contents:
inline: |
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64",
"experimental": true,
"ip6tables": true,
"default-address-pools": [
{ "base": "172.17.0.0/16", "size": 16 },
{ "base": "172.18.0.0/16", "size": 16 },
{ "base": "172.19.0.0/16", "size": 16 },
{ "base": "172.20.0.0/14", "size": 16 },
{ "base": "172.24.0.0/14", "size": 16 },
{ "base": "172.28.0.0/14", "size": 16 },
{ "base": "192.168.0.0/16", "size": 20 },
{ "base": "2001:db8::/104", "size": 112 }
]
}
So (i guess) i have to do 2 thigs:
- Set kernel options → DONE
sudo rpm-ostree kargs --append=CONFIG_IPV6_ROUTER_PREF=y
sudo rpm-ostree kargs --append=CONFIG_IPV6_ROUTE_INFO=y
- Set kernel parameters
- Created a file
/etc/sysctl.d/60-ipv6.conf
- Added the following content
# IPv6 for homeassistant-matter-hub
net.ipv6.conf.all.forwarding=0
net.ipv6.conf.enp5s0.accept_ra=2
net.ipv6.conf.enp5s0.accept_ra_rt_info_max_plen=64
- rebooted
The Problem
It seems that after the reboot the kernel parameters are not set:
$ sysctl net.ipv6.conf.enp5s0
net.ipv6.conf.enp5s0.accept_dad = 1
net.ipv6.conf.enp5s0.accept_ra = 0
net.ipv6.conf.enp5s0.accept_ra_defrtr = 1
net.ipv6.conf.enp5s0.accept_ra_from_local = 0
net.ipv6.conf.enp5s0.accept_ra_min_hop_limit = 1
net.ipv6.conf.enp5s0.accept_ra_min_lft = 0
net.ipv6.conf.enp5s0.accept_ra_mtu = 1
net.ipv6.conf.enp5s0.accept_ra_pinfo = 1
net.ipv6.conf.enp5s0.accept_ra_rt_info_max_plen = 64
net.ipv6.conf.enp5s0.accept_ra_rt_info_min_plen = 0
net.ipv6.conf.enp5s0.accept_ra_rtr_pref = 1
net.ipv6.conf.enp5s0.accept_redirects = 1
net.ipv6.conf.enp5s0.accept_source_route = 0
net.ipv6.conf.enp5s0.accept_untracked_na = 0
net.ipv6.conf.enp5s0.addr_gen_mode = 1
net.ipv6.conf.enp5s0.autoconf = 1
net.ipv6.conf.enp5s0.dad_transmits = 1
net.ipv6.conf.enp5s0.disable_ipv6 = 0
net.ipv6.conf.enp5s0.disable_policy = 0
net.ipv6.conf.enp5s0.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.enp5s0.drop_unsolicited_na = 0
net.ipv6.conf.enp5s0.enhanced_dad = 1
net.ipv6.conf.enp5s0.force_mld_version = 0
net.ipv6.conf.enp5s0.force_tllao = 0
net.ipv6.conf.enp5s0.forwarding = 1
net.ipv6.conf.enp5s0.hop_limit = 64
net.ipv6.conf.enp5s0.ignore_routes_with_linkdown = 0
net.ipv6.conf.enp5s0.ioam6_enabled = 0
net.ipv6.conf.enp5s0.ioam6_id = 65535
net.ipv6.conf.enp5s0.ioam6_id_wide = 4294967295
net.ipv6.conf.enp5s0.keep_addr_on_down = 0
net.ipv6.conf.enp5s0.max_addresses = 16
net.ipv6.conf.enp5s0.max_desync_factor = 600
net.ipv6.conf.enp5s0.mc_forwarding = 0
net.ipv6.conf.enp5s0.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.enp5s0.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.enp5s0.mtu = 1492
net.ipv6.conf.enp5s0.ndisc_evict_nocarrier = 1
net.ipv6.conf.enp5s0.ndisc_notify = 0
net.ipv6.conf.enp5s0.ndisc_tclass = 0
net.ipv6.conf.enp5s0.optimistic_dad = 0
net.ipv6.conf.enp5s0.proxy_ndp = 0
net.ipv6.conf.enp5s0.ra_defrtr_metric = 1024
net.ipv6.conf.enp5s0.ra_honor_pio_life = 0
net.ipv6.conf.enp5s0.regen_max_retry = 3
net.ipv6.conf.enp5s0.router_probe_interval = 60
net.ipv6.conf.enp5s0.router_solicitation_delay = 1
net.ipv6.conf.enp5s0.router_solicitation_interval = 4
net.ipv6.conf.enp5s0.router_solicitation_max_interval = 3600
net.ipv6.conf.enp5s0.router_solicitations = -1
net.ipv6.conf.enp5s0.rpl_seg_enabled = 0
net.ipv6.conf.enp5s0.seg6_enabled = 0
net.ipv6.conf.enp5s0.seg6_require_hmac = 0
sysctl: permission denied on key 'net.ipv6.conf.enp5s0.stable_secret'
net.ipv6.conf.enp5s0.suppress_frag_ndisc = 1
net.ipv6.conf.enp5s0.temp_prefered_lft = 86400
net.ipv6.conf.enp5s0.temp_valid_lft = 604800
net.ipv6.conf.enp5s0.use_oif_addrs_only = 0
net.ipv6.conf.enp5s0.use_optimistic = 0
net.ipv6.conf.enp5s0.use_tempaddr = 0
So i guess im doing somethign wrong here?
The Target
After successfully finishing this task i want to add this code to my butane file for my next server deployment to not have to perform this task manually anytime soon …