Arch and IPv6
First lets get out of the way the obvious, yes I am running Arch in a server environment. Yes, I'm a stubborn idiot.
So I submitted a ticket about this issue and among a few inquiries was recommended to post here, I've included the steps I've taken thus far as well as output, config files, and commands.
Disable dhcpcd (EDIT: forgot to mention originally)
systemctl stop dhcpcd@enp0s4.service
systemctl disable dhcpcd@enp0s4.service
Remove IP from interface otherwise netctl complains
ip link set enp0s4 down
ip addr delete LINODE_PUB_IPV4 dev enp0s4
Allow for discovery
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A FORWARD -p icmpv6 -j ACCEPT
Use an example as template
cp /etc/netctl/examples/ethernet-static /etc/netctl/enp0s4
/etc/netctl/enp0s4:
Description='A basic static ethernet connection'
Interface=enp0s4
Connection=ethernet
IP=static
Address=('LINODE_PUBLIC_IPV4/24')
#Routes=('192.168.0.0/24 via 192.168.1.2')
Gateway='LINODE_PUBLIC_IPV4_GATEWAY'
DNS=('8.8.8.8' '1.1.1.1' '2001:4860:4860::8888' '2606:4700:4700::1111')
## For IPv6 autoconfiguration
IP6=stateless
## For IPv6 static address configuration
#IP6=static
#Address6=('1234:5678:9abc:def::1/64' '1234:3456::123/96')
#Routes6=('abcd::1234')
#Gateway6='1234:0:123::abcd'
Bring interface up
netctl start enp0s4
Everything comes back correctly, no issues from the netctl status. Pinging IPv4 works properly. While IPv6 reads the correct IP of my linode however ping -6 returns the following:
ping -6 google.com
PING google.com(2607:f8b0:4002:c00::71 (2607:f8b0:4002:c00::71)) 56 data bytes
--- google.com ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6092ms
Ryan from Linodes support team recommended I run the following commands
netstat -rn -6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
::1/128 :: U 256 2 0 lo
2600:3c02::/64 :: UAe 256 1 0 enp0s4
fe80::/64 :: U 256 1 0 enp0s4
::/0 fe80::1 UGDAe 1024 3 0 enp0s4
::1/128 :: Un 0 4 0 lo
ff00::/8 :: U 256 2 0 enp0s4
::/0 :: !n -1 1 0 lo
And
ip -6 route show dev enp0s4
2600:3c02::/64 proto kernel metric 256 expires 2591995sec pref medium
fe80::/64 proto kernel metric 256 pref medium
default via fe80::1 proto ra metric 1024 expires 595sec hoplimit 64 pref medium
Its possible I may jump ship to systemd as Ryan recommended, but for the moment its a matter of my dwindling dignity to figure out what the issue is.
Thanks for your time!
5 Replies
Thanks for the quick reply!
ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether f2:3c:92:e2:0f:10 brd ff:ff:ff:ff:ff:ff
inet 173.230.130.36/24 brd 173.230.130.255 scope global dynamic enp0s4
valid_lft 84458sec preferred_lft 73658sec
inet6 2600:3c02::8fba:b3e1:3fd3:3d20/64 scope global tentative dynamic mngtmpaddr noprefixroute
valid_lft 2591998sec preferred_lft 604798sec
inet6 2600:3c02::f03c:92ff:fee2:f10/64 scope global dynamic mngtmpaddr
valid_lft 2591998sec preferred_lft 604798sec
inet6 fe80::a1ba:c963:b7e6:4673/64 scope link
valid_lft forever preferred_lft forever
sysctl -a | grep net.ipv6
net.ipv6.anycast_src_echo_reply = 0
net.ipv6.auto_flowlabels = 1
net.ipv6.bindv6only = 0
net.ipv6.calipso_cache_bucket_size = 10
net.ipv6.calipso_cache_enable = 1
net.ipv6.conf.all.accept_dad = 0
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_ra_defrtr = 1
net.ipv6.conf.all.accept_ra_from_local = 0
net.ipv6.conf.all.accept_ra_min_hop_limit = 1
net.ipv6.conf.all.accept_ra_mtu = 1
net.ipv6.conf.all.accept_ra_pinfo = 1
net.ipv6.conf.all.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.all.accept_ra_rt_info_min_plen = 0
net.ipv6.conf.all.accept_ra_rtr_pref = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.all.addr_gen_mode = 0
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.dad_transmits = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.disable_policy = 0
net.ipv6.conf.all.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.all.drop_unsolicited_na = 0
net.ipv6.conf.all.enhanced_dad = 1
net.ipv6.conf.all.force_mld_version = 0
net.ipv6.conf.all.force_tllao = 0
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.ignore_routes_with_linkdown = 0
net.ipv6.conf.all.keep_addr_on_down = 0
net.ipv6.conf.all.max_addresses = 16
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.all.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.all.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.ndisc_notify = 0
net.ipv6.conf.all.ndisc_tclass = 0
net.ipv6.conf.all.optimistic_dad = 0
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.regen_max_retry = 3
net.ipv6.conf.all.router_probe_interval = 60
net.ipv6.conf.all.router_solicitation_delay = 1
net.ipv6.conf.all.router_solicitation_interval = 4
net.ipv6.conf.all.router_solicitation_max_interval = 3600
net.ipv6.conf.all.router_solicitations = -1
net.ipv6.conf.all.seg6_enabled = 0
net.ipv6.conf.all.seg6_require_hmac = 0
net.ipv6.conf.all.suppress_frag_ndisc = 1
net.ipv6.conf.all.temp_prefered_lft = 86400
net.ipv6.conf.all.temp_valid_lft = 604800
net.ipv6.conf.all.use_oif_addrs_only = 0
net.ipv6.conf.all.use_optimistic = 0
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_ra_defrtr = 1
net.ipv6.conf.default.accept_ra_from_local = 0
net.ipv6.conf.default.accept_ra_min_hop_limit = 1
net.ipv6.conf.default.accept_ra_mtu = 1
net.ipv6.conf.default.accept_ra_pinfo = 1
net.ipv6.conf.default.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.default.accept_ra_rt_info_min_plen = 0
net.ipv6.conf.default.accept_ra_rtr_pref = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.accept_source_route = 0
net.ipv6.conf.default.addr_gen_mode = 0
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.dad_transmits = 1
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.default.disable_policy = 0
net.ipv6.conf.default.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.default.drop_unsolicited_na = 0
net.ipv6.conf.default.enhanced_dad = 1
net.ipv6.conf.default.force_mld_version = 0
net.ipv6.conf.default.force_tllao = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.ignore_routes_with_linkdown = 0
net.ipv6.conf.default.keep_addr_on_down = 0
net.ipv6.conf.default.max_addresses = 16
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.default.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.default.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.default.mtu = 1280
net.ipv6.conf.default.ndisc_notify = 0
net.ipv6.conf.default.ndisc_tclass = 0
net.ipv6.conf.default.optimistic_dad = 0
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.regen_max_retry = 3
net.ipv6.conf.default.router_probe_interval = 60
net.ipv6.conf.default.router_solicitation_delay = 1
net.ipv6.conf.default.router_solicitation_interval = 4
net.ipv6.conf.default.router_solicitation_max_interval = 3600
net.ipv6.conf.default.router_solicitations = -1
net.ipv6.conf.default.seg6_enabled = 0
net.ipv6.conf.default.seg6_require_hmac = 0
net.ipv6.conf.default.suppress_frag_ndisc = 1
net.ipv6.conf.default.temp_prefered_lft = 86400
net.ipv6.conf.default.temp_valid_lft = 604800
net.ipv6.conf.default.use_oif_addrs_only = 0
net.ipv6.conf.default.use_optimistic = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.enp0s4.accept_dad = 1
net.ipv6.conf.enp0s4.accept_ra = 2
net.ipv6.conf.enp0s4.accept_ra_defrtr = 1
net.ipv6.conf.enp0s4.accept_ra_from_local = 0
net.ipv6.conf.enp0s4.accept_ra_min_hop_limit = 1
net.ipv6.conf.enp0s4.accept_ra_mtu = 1
net.ipv6.conf.enp0s4.accept_ra_pinfo = 1
net.ipv6.conf.enp0s4.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.enp0s4.accept_ra_rt_info_min_plen = 0
net.ipv6.conf.enp0s4.accept_ra_rtr_pref = 1
net.ipv6.conf.enp0s4.accept_redirects = 1
net.ipv6.conf.enp0s4.accept_source_route = 0
net.ipv6.conf.enp0s4.addr_gen_mode = 1
net.ipv6.conf.enp0s4.autoconf = 1
net.ipv6.conf.enp0s4.dad_transmits = 1
net.ipv6.conf.enp0s4.disable_ipv6 = 0
net.ipv6.conf.enp0s4.disable_policy = 0
net.ipv6.conf.enp0s4.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.enp0s4.drop_unsolicited_na = 0
net.ipv6.conf.enp0s4.enhanced_dad = 1
net.ipv6.conf.enp0s4.force_mld_version = 0
net.ipv6.conf.enp0s4.force_tllao = 0
net.ipv6.conf.enp0s4.forwarding = 0
net.ipv6.conf.enp0s4.hop_limit = 64
net.ipv6.conf.enp0s4.ignore_routes_with_linkdown = 0
net.ipv6.conf.enp0s4.keep_addr_on_down = 0
net.ipv6.conf.enp0s4.max_addresses = 16
net.ipv6.conf.enp0s4.max_desync_factor = 600
net.ipv6.conf.enp0s4.mc_forwarding = 0
net.ipv6.conf.enp0s4.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.enp0s4.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.enp0s4.mtu = 1500
net.ipv6.conf.enp0s4.ndisc_notify = 0
net.ipv6.conf.enp0s4.ndisc_tclass = 0
net.ipv6.conf.enp0s4.optimistic_dad = 0
net.ipv6.conf.enp0s4.proxy_ndp = 0
net.ipv6.conf.enp0s4.regen_max_retry = 3
net.ipv6.conf.enp0s4.router_probe_interval = 60
net.ipv6.conf.enp0s4.router_solicitation_delay = 1
net.ipv6.conf.enp0s4.router_solicitation_interval = 4
net.ipv6.conf.enp0s4.router_solicitation_max_interval = 3600
net.ipv6.conf.enp0s4.router_solicitations = -1
net.ipv6.conf.enp0s4.seg6_enabled = 0
net.ipv6.conf.enp0s4.seg6_require_hmac = 0
net.ipv6.conf.enp0s4.suppress_frag_ndisc = 1
net.ipv6.conf.enp0s4.temp_prefered_lft = 86400
net.ipv6.conf.enp0s4.temp_valid_lft = 604800
net.ipv6.conf.enp0s4.use_oif_addrs_only = 0
net.ipv6.conf.enp0s4.use_optimistic = 0
net.ipv6.conf.enp0s4.use_tempaddr = 0
net.ipv6.conf.lo.accept_dad = -1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.accept_ra_defrtr = 1
net.ipv6.conf.lo.accept_ra_from_local = 0
net.ipv6.conf.lo.accept_ra_min_hop_limit = 1
net.ipv6.conf.lo.accept_ra_mtu = 1
net.ipv6.conf.lo.accept_ra_pinfo = 1
net.ipv6.conf.lo.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.lo.accept_ra_rt_info_min_plen = 0
net.ipv6.conf.lo.accept_ra_rtr_pref = 1
net.ipv6.conf.lo.accept_redirects = 1
net.ipv6.conf.lo.accept_source_route = 0
net.ipv6.conf.lo.addr_gen_mode = 0
net.ipv6.conf.lo.autoconf = 1
net.ipv6.conf.lo.dad_transmits = 1
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.lo.disable_policy = 0
net.ipv6.conf.lo.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.lo.drop_unsolicited_na = 0
net.ipv6.conf.lo.enhanced_dad = 1
net.ipv6.conf.lo.force_mld_version = 0
net.ipv6.conf.lo.force_tllao = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.ignore_routes_with_linkdown = 0
net.ipv6.conf.lo.keep_addr_on_down = 0
net.ipv6.conf.lo.max_addresses = 16
net.ipv6.conf.lo.max_desync_factor = 600
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.lo.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.lo.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.lo.mtu = 65536
net.ipv6.conf.lo.ndisc_notify = 0
net.ipv6.conf.lo.ndisc_tclass = 0
net.ipv6.conf.lo.optimistic_dad = 0
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.regen_max_retry = 3
net.ipv6.conf.lo.router_probe_interval = 60
net.ipv6.conf.lo.router_solicitation_delay = 1
net.ipv6.conf.lo.router_solicitation_interval = 4
net.ipv6.conf.lo.router_solicitation_max_interval = 3600
net.ipv6.conf.lo.router_solicitations = -1
net.ipv6.conf.lo.seg6_enabled = 0
net.ipv6.conf.lo.seg6_require_hmac = 0
net.ipv6.conf.lo.suppress_frag_ndisc = 1
net.ipv6.conf.lo.temp_prefered_lft = 86400
net.ipv6.conf.lo.temp_valid_lft = 604800
net.ipv6.conf.lo.use_oif_addrs_only = 0
net.ipv6.conf.lo.use_optimistic = 0
net.ipv6.conf.lo.use_tempaddr = -1
net.ipv6.fib_multipath_hash_policy = 0
net.ipv6.flowlabel_consistency = 1
net.ipv6.flowlabel_reflect = 0
net.ipv6.flowlabel_state_ranges = 0
net.ipv6.fwmark_reflect = 0
net.ipv6.icmp.echo_ignore_all = 0
net.ipv6.icmp.echo_ignore_anycast = 0
net.ipv6.icmp.echo_ignore_multicast = 0
net.ipv6.icmp.ratelimit = 1000
net.ipv6.icmp.ratemask = 0-1,3-127
net.ipv6.idgen_delay = 1
net.ipv6.idgen_retries = 3
net.ipv6.ip6frag_high_thresh = 4194304
net.ipv6.ip6frag_low_thresh = 3145728
net.ipv6.ip6frag_secret_interval = 0
net.ipv6.ip6frag_time = 60
net.ipv6.ip_nonlocal_bind = 0
net.ipv6.max_dst_opts_length = 2147483647
net.ipv6.max_dst_opts_number = 8
net.ipv6.max_hbh_length = 2147483647
net.ipv6.max_hbh_opts_number = 8
net.ipv6.mld_max_msf = 64
net.ipv6.mld_qrv = 2
net.ipv6.neigh.default.anycast_delay = 99
net.ipv6.neigh.default.app_solicit = 0
net.ipv6.neigh.default.base_reachable_time_ms = 30000
net.ipv6.neigh.default.delay_first_probe_time = 5
net.ipv6.neigh.default.gc_interval = 30
net.ipv6.neigh.default.gc_stale_time = 60
net.ipv6.neigh.default.gc_thresh1 = 128
net.ipv6.neigh.default.gc_thresh2 = 512
net.ipv6.neigh.default.gc_thresh3 = 1024
net.ipv6.neigh.default.locktime = 0
net.ipv6.neigh.default.mcast_resolicit = 0
net.ipv6.neigh.default.mcast_solicit = 3
net.ipv6.neigh.default.proxy_delay = 79
net.ipv6.neigh.default.proxy_qlen = 64
net.ipv6.neigh.default.retrans_time_ms = 1000
net.ipv6.neigh.default.ucast_solicit = 3
net.ipv6.neigh.default.unres_qlen = 101
net.ipv6.neigh.default.unres_qlen_bytes = 212992
net.ipv6.neigh.enp0s4.anycast_delay = 99
net.ipv6.neigh.enp0s4.app_solicit = 0
net.ipv6.neigh.enp0s4.base_reachable_time_ms = 30000000
net.ipv6.neigh.enp0s4.delay_first_probe_time = 5
net.ipv6.neigh.enp0s4.gc_stale_time = 60
net.ipv6.neigh.enp0s4.locktime = 0
net.ipv6.neigh.enp0s4.mcast_resolicit = 0
net.ipv6.neigh.enp0s4.mcast_solicit = 3
net.ipv6.neigh.enp0s4.proxy_delay = 79
net.ipv6.neigh.enp0s4.proxy_qlen = 64
net.ipv6.neigh.enp0s4.retrans_time_ms = 1000000
net.ipv6.neigh.enp0s4.ucast_solicit = 3
net.ipv6.neigh.enp0s4.unres_qlen = 101
net.ipv6.neigh.enp0s4.unres_qlen_bytes = 212992
net.ipv6.neigh.lo.anycast_delay = 99
net.ipv6.neigh.lo.app_solicit = 0
net.ipv6.neigh.lo.base_reachable_time_ms = 30000
net.ipv6.neigh.lo.delay_first_probe_time = 5
net.ipv6.neigh.lo.gc_stale_time = 60
net.ipv6.neigh.lo.locktime = 0
net.ipv6.neigh.lo.mcast_resolicit = 0
net.ipv6.neigh.lo.mcast_solicit = 3
net.ipv6.neigh.lo.proxy_delay = 79
net.ipv6.neigh.lo.proxy_qlen = 64
net.ipv6.neigh.lo.retrans_time_ms = 1000
net.ipv6.neigh.lo.ucast_solicit = 3
net.ipv6.neigh.lo.unres_qlen = 101
net.ipv6.neigh.lo.unres_qlen_bytes = 212992
net.ipv6.route.gc_elasticity = 9
net.ipv6.route.gc_interval = 30
net.ipv6.route.gc_min_interval = 0
net.ipv6.route.gc_min_interval_ms = 500
net.ipv6.route.gc_thresh = 1024
net.ipv6.route.gc_timeout = 60
net.ipv6.route.max_size = 4096
net.ipv6.route.min_adv_mss = 1220
net.ipv6.route.mtu_expires = 600
net.ipv6.route.skip_notify_on_dev_down = 0
net.ipv6.seg6_flowlabel = 0
net.ipv6.xfrm6_gc_thresh = 32768
Is dhcpcd running, by chance? If it is, does /etc/dhcpcd.conf contain an uncommented slaac private
line? Also check whether the dhcpcd service is enabled and running (I believe it'll be systemctl status dhcpcd@enp0s4
).
Comment out any slaac private
in /etc/dhcpcd.conf, and disable the dhcpcd service for enp0s4, so it doesn't interfere with netctl.
Ah, I forgot to add that line in the initial post. I had disabled the dhcpcd service before tearing down the interface. For good measure I did try to comment out the slaac private
line in /etc/dhcpcd.conf
and restarted the netctl instance to no avail, unfortunately.