Score:0

Cannot accept IPv6 router advertisements

cn flag

No matter what I try, my Ubuntu Server machine (bare metal) won't accept router advertisements. I am able to pull an IPv6 address from DHCP, ping that address from another machine, but trying to ping back doesn't work. Neither does DNS over IPv6 (likely because it's not accepting router advertisements).

Any ideas? I've run out and exhausted my knowledge of networkd, netplan and networking in general.

As far as I can tell it's because of the kernel flag net.ipv6.conf.enp4s0.accept_ra = 0.

  • If I set the flag to 1 manually, it does nothing
  • If I set the flag and reboot, it reverts to 0
  • If I set the flag and run netplan apply, it reverts to 0
  • If I set the flag and run networkctl reload, it stays at 1 but does nothing
  • If I set the flag and run networkctl reconfigure enp4s0, it reverts to 0
  • If I set the flag in /etc/sysctl.conf and reboot or sysctl -p it stays at or reverts to 0
  • If I set netplan accept-ra: true and run netplan apply it stays at or reverts to 0

Here are my configurations

  • Netplan
  ethernets:
    enp4s0:
      dhcp4: true
      dhcp6: true
      accept-ra: true
  version: 2
  • /run/systemd/network/10-netplan-enp4s0.network
[Match]
Name=enp4s0

[Network]
DHCP=yes
LinkLocalAddressing=ipv6
IPv6AcceptRA=yes

[DHCP]
RouteMetric=100
UseMTU=true
  • /etc/sysctl.conf
net.ipv6.conf.enp4s0.accept_ra = 1
  • sysctl
net.ipv6.conf.enp4s0.accept_dad = 1
net.ipv6.conf.enp4s0.accept_ra = 0
net.ipv6.conf.enp4s0.accept_ra_defrtr = 1
net.ipv6.conf.enp4s0.accept_ra_from_local = 0
net.ipv6.conf.enp4s0.accept_ra_min_hop_limit = 1
net.ipv6.conf.enp4s0.accept_ra_mtu = 1
net.ipv6.conf.enp4s0.accept_ra_pinfo = 1
net.ipv6.conf.enp4s0.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.enp4s0.accept_ra_rt_info_min_plen = 0
net.ipv6.conf.enp4s0.accept_ra_rtr_pref = 1
net.ipv6.conf.enp4s0.accept_redirects = 1
net.ipv6.conf.enp4s0.accept_source_route = 0
net.ipv6.conf.enp4s0.addr_gen_mode = 0
net.ipv6.conf.enp4s0.autoconf = 1
net.ipv6.conf.enp4s0.dad_transmits = 1
net.ipv6.conf.enp4s0.disable_ipv6 = 0
net.ipv6.conf.enp4s0.disable_policy = 0
net.ipv6.conf.enp4s0.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.enp4s0.drop_unsolicited_na = 0
net.ipv6.conf.enp4s0.enhanced_dad = 1
net.ipv6.conf.enp4s0.force_mld_version = 0
net.ipv6.conf.enp4s0.force_tllao = 0
net.ipv6.conf.enp4s0.forwarding = 0
net.ipv6.conf.enp4s0.hop_limit = 64
net.ipv6.conf.enp4s0.ignore_routes_with_linkdown = 0
net.ipv6.conf.enp4s0.keep_addr_on_down = 0
net.ipv6.conf.enp4s0.max_addresses = 16
net.ipv6.conf.enp4s0.max_desync_factor = 600
net.ipv6.conf.enp4s0.mc_forwarding = 0
net.ipv6.conf.enp4s0.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.enp4s0.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.enp4s0.mtu = 1500
net.ipv6.conf.enp4s0.ndisc_notify = 0
net.ipv6.conf.enp4s0.ndisc_tclass = 0
net.ipv6.conf.enp4s0.proxy_ndp = 0
net.ipv6.conf.enp4s0.regen_max_retry = 3
net.ipv6.conf.enp4s0.router_probe_interval = 60
net.ipv6.conf.enp4s0.router_solicitation_delay = 1
net.ipv6.conf.enp4s0.router_solicitation_interval = 4
net.ipv6.conf.enp4s0.router_solicitation_max_interval = 3600
net.ipv6.conf.enp4s0.router_solicitations = -1
net.ipv6.conf.enp4s0.seg6_enabled = 0
net.ipv6.conf.enp4s0.seg6_require_hmac = 0
net.ipv6.conf.enp4s0.suppress_frag_ndisc = 1
net.ipv6.conf.enp4s0.temp_prefered_lft = 86400
net.ipv6.conf.enp4s0.temp_valid_lft = 604800
net.ipv6.conf.enp4s0.use_oif_addrs_only = 0
net.ipv6.conf.enp4s0.use_tempaddr = 0
Score:0
vn flag

I know I'm very late to the party, and I actually have to thank you for putting me on the right path to using netplan for IPv6 as until an hour ago I was a classic /network/interfaces guy by choice. netplan by forced necessity. Anyways, here is what worked for me:

sysctl -w net.ipv6.conf.enp4s0.accept_ra=1 

and in netplan:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp4s0:
      addresses:
        - 192.168.46.210/24
      nameservers:
        addresses: [192.168.46.217]
      routes:
        - to: default
          via: 192.168.46.213
      wakeonlan: true
      accept-ra: true

Just the last line seemed to be needed; I did not need to set the dhcp6 flag

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.