Tiny Core Linux

Tiny Core Extensions => TCE Talk => Topic started by: GNUser on November 23, 2019, 07:49:40 PM

Title: how to fully enable IPv6?
Post by: GNUser on November 23, 2019, 07:49:40 PM
I'm finding that having ipv6-4.19.10-tinycore64.tcz in onboot.lst does not seem to fully enable IPv6.

This is what I see in my Pure64 10.1 laptop after connecting to an IPv6-enabled wireless router (note the absence of inet6 line):

Code: [Select]
tcl$ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 00:26:B6:F6:04:E4 
          inet addr:192.168.43.221  Bcast:192.168.43.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:67 errors:0 dropped:0 overruns:0 frame:0
          TX packets:64 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:13766 (13.4 KiB)  TX bytes:10891 (10.6 KiB)

While in other distros I get this:
Code: [Select]
devuan$ ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.43.211  netmask 255.255.255.0  broadcast 192.168.43.255
        inet6 fe80::9919:79dd:137f:2dcf  prefixlen 64  scopeid 0x20<link>
        ether 00:26:b6:bf:39:5d  txqueuelen 1000  (Ethernet)
        RX packets 1048  bytes 1031550 (1007.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1015  bytes 134380 (131.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

In TCL I'm connecting with wpa_supplicant plus dhclient with these commands:

Code: [Select]
wpa_passphrase "$ssid" "$password" > $auth_file
wpa_supplicant -i $iface -c $auth_file &
dhclient -v -cf /etc/dhcp/dhclient.conf $iface
Can you please help me fully fully enable IPv6?

Title: Re: how to fully enable IPv6?
Post by: GNUser on November 23, 2019, 07:53:35 PM
Sometimes running ip -6 addr and then running ifconfig wlan0 again makes the inet6 line magically appear (but sometimes it doesn't help). Here is a successful run:

Code: [Select]
tcl$ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 00:26:B6:F6:04:E4 
          inet addr:192.168.43.221  Bcast:192.168.43.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:67 errors:0 dropped:0 overruns:0 frame:0
          TX packets:64 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:13766 (13.4 KiB)  TX bytes:10891 (10.6 KiB)

tcl$ ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
6: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::226:b6ff:fef6:4e4/64 scope link
       valid_lft forever preferred_lft forever
7: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 state UNKNOWN qlen 100
    inet6 fe80::8346:e560:d8e8:a007/64 scope link flags 800
       valid_lft forever preferred_lft forever

tcl$ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 00:26:B6:F6:04:E4 
          inet addr:192.168.43.221  Bcast:192.168.43.255  Mask:255.255.255.0
          inet6 addr: fe80::226:b6ff:fef6:4e4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1864 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1893 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1518137 (1.4 MiB)  TX bytes:458418 (447.6 KiB)

Strange. How to fully enable IPv6 right off the bat, without any shenanigans?
Title: Re: how to fully enable IPv6?
Post by: Rich on November 23, 2019, 08:25:05 PM
Hi GNUser
My wired connection has IPV6 without any "shenanigans".
The script I call from bootlocal to set up my Ethernet card:
Code: [Select]
tc@E310:~$ cat /opt/eth0.sh
#!/bin/sh
pkill udhcpc
ifconfig eth0 192.168.1.35 netmask 255.255.255.0 broadcast 192.168.1.255 up
route add default gw 192.168.1.1
echo nameserver 192.168.1.1 > /etc/resolv.conf
echo nameserver 68.237.161.12 >> /etc/resolv.conf
tc@E310:~$

Output of ifconfig:
Code: [Select]
tc@E310:~$ ifconfig -a
dummy0    Link encap:Ethernet  HWaddr 1A:CB:44:DB:0D:33 
          BROADCAST NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 00:13:20:C4:4A:20 
          inet addr:192.168.1.35  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::213:20ff:fec4:4a20/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1043725 errors:0 dropped:0 overruns:0 frame:0
          TX packets:200444 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:436979117 (416.7 MiB)  TX bytes:13560226 (12.9 MiB)

ip_vti0   Link encap:UNSPEC  HWaddr 00-00-00-00-30-30-30-30-00-00-00-00-00-00-00-00 
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:25427 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25427 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:17625665 (16.8 MiB)  TX bytes:17625665 (16.8 MiB)

tunl0     Link encap:UNSPEC  HWaddr 00-00-00-00-30-30-30-30-00-00-00-00-00-00-00-00 
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tc@E310:~$

Output of lsmod (something called ipv6 is listed):
Code: [Select]
tc@E310:~$ lsmod
Module                  Size  Used by    Not tainted
ntfs                   69632  0
ipv6                  241664 56 [permanent]
nfsd                  159744 11
speedstep_lib          12288  0
cpufreq_userspace      12288  0
cpufreq_powersave      12288  0
cpufreq_conservative    12288  0
i915                  925696  2
drm_kms_helper         86016  1 i915
i2c_i801               16384  0
drm                   212992  4 i915,drm_kms_helper
fb_sys_fops            12288  1 drm_kms_helper
syscopyarea            12288  1 drm_kms_helper
sysfillrect            12288  1 drm_kms_helper
sysimgblt              12288  1 drm_kms_helper
iosf_mbi               12288  1 i915
video                  28672  1 i915
intel_agp              12288  0
backlight              12288  2 i915,video
i2c_algo_bit           12288  1 i915
intel_gtt              16384  2 i915,intel_agp
agpgart                24576  3 drm,intel_agp,intel_gtt
squashfs               28672 329
zstd_decompress        53248  1 squashfs
xxhash                 16384  1 zstd_decompress
pcspkr                 12288  0
serio_raw              12288  0
e100                   28672  0
mii                    12288  1 e100
lpc_ich                20480  0
loop                   20480 658
tc@E310:~$
Title: Re: how to fully enable IPv6?
Post by: GNUser on November 23, 2019, 08:26:37 PM
Ah, just realized that dhclient defaults to IPv4. Even specifying IPv6, I'm not doing much better:

Code: [Select]
$ sudo dhclient -v -cf /etc/dhcp/dhclient.conf wlan0; sudo dhclient -6 -v -cf /etc/dhcp/dhclient.conf wlan0
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlan0/00:26:b6:f6:04:e4
Sending on   LPF/wlan0/00:26:b6:f6:04:e4
Sending on   Socket/fallback
DHCPREQUEST for 192.168.10.153 on wlan0 to 255.255.255.255 port 67
DHCPNAK from 192.168.43.1
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
DHCPOFFER of 192.168.43.221 from 192.168.43.1
DHCPREQUEST for 192.168.43.221 on wlan0 to 255.255.255.255 port 67
DHCPACK of 192.168.43.221 from 192.168.43.1
bound to 192.168.43.221 -- renewal in 1549 seconds.
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

no link-local IPv6 address for wlan0

If you think you have received this message due to a bug rather
than a configuration issue please read the section on submitting
bugs on either our web page at www.isc.org or in the README file
before submitting a bug.  These pages explain the proper
process and the information we find helpful for debugging.

exiting.
Title: Re: how to fully enable IPv6?
Post by: GNUser on November 23, 2019, 08:29:47 PM
Thank you, Rich. Interesting that you get an IPv6 address without explicitly asking for one.

In output of lsmod I also see "ipv6":

Code: [Select]
$ lsmod
Module                  Size  Used by    Tainted: G 
ipv6                  270336 24 [permanent]
ccm                    16384  9
cpufreq_userspace      12288  0
cpufreq_powersave      12288  0
cpufreq_conservative    12288  0
i915                 1003520  8
snd_hda_codec_hdmi     32768  1
ath9k                  73728  0
mac80211              262144  1 ath9k
snd_hda_codec_conexant    16384  1
snd_hda_codec_generic    45056  1 snd_hda_codec_conexant
snd_hda_intel          24576  0
drm_kms_helper         94208  1 i915
snd_hda_codec          61440  4 snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_hda_codec_generic,snd_hda_intel
ath9k_common           12288  1 ath9k
ath9k_hw              372736  2 ath9k,ath9k_common
snd_hda_core           36864  5 snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_hda_codec_generic,snd_hda_intel,snd_hda_codec
drm                   253952  7 i915,drm_kms_helper
snd_hwdep              12288  1 snd_hda_codec
snd_pcm                57344  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
ath                    28672  3 ath9k,ath9k_common,ath9k_hw
snd_timer              20480  1 snd_pcm
snd                    45056  8 snd_hda_codec_hdmi,snd_hda_codec_conexant,snd_hda_codec_generic,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
i2c_i801               16384  0
cfg80211              192512  4 ath9k,mac80211,ath9k_common,ath
intel_agp              16384  0
soundcore              12288  1 snd
iosf_mbi               12288  1 i915
intel_gtt              16384  2 i915,intel_agp
agpgart                28672  3 drm,intel_agp,intel_gtt
i2c_algo_bit           12288  1 i915
battery                16384  0
squashfs               28672 212
zstd_decompress        65536  1 squashfs
xxhash                 12288  1 zstd_decompress
video                  32768  1 i915
backlight              12288  2 i915,video
ac                     12288  0
sdhci_pci              24576  0
cqhci                  16384  1 sdhci_pci
sdhci                  32768  1 sdhci_pci
lpc_ich                20480  0
e1000e                126976  0
mmc_core               73728  3 sdhci_pci,cqhci,sdhci
r592                   16384  0
acpi_cpufreq           12288  1
memstick               12288  1 r592
xhci_pci               12288  0
xhci_hcd               98304  1 xhci_pci
loop                   20480 424
Title: Re: how to fully enable IPv6?
Post by: Rich on November 23, 2019, 08:39:57 PM
Hi GNUser
If you execute:
Code: [Select]
sudo sysctl -a | less -Iyou'll find there are lots of ipv6 settings. I noticed there are also dummy0, lo, eth0, etc. settings. I wouldn't be surprised if on your
hardware there are also a bunch of wlan0 settings.
Title: Re: how to fully enable IPv6?
Post by: Rich on November 23, 2019, 08:48:40 PM
Hi GNUser
Here are the settings for my wired connection:
Code: [Select]
tc@E310:~$ sudo sysctl -a | grep -i ipv6 | grep -i eth0
error: permission denied on key 'net.ipv4.route.flush'
error: "Input/output error" reading key "net.ipv6.conf.all.stable_secret"
error: "Input/output error" reading key "net.ipv6.conf.default.stable_secret"
error: "Input/output error" reading key "net.ipv6.conf.dummy0.stable_secret"
error: "Input/output error" reading key "net.ipv6.conf.eth0.stable_secret"
net.ipv6.conf.eth0.accept_dad = 1
net.ipv6.conf.eth0.accept_ra = 1
error: "Input/output error" reading key "net.ipv6.conf.ip_vti0.stable_secret"
net.ipv6.conf.eth0.accept_ra_defrtr = 1
net.ipv6.conf.eth0.accept_ra_from_local = 0
net.ipv6.conf.eth0.accept_ra_min_hop_limit = 1
net.ipv6.conf.eth0.accept_ra_mtu = 1
net.ipv6.conf.eth0.accept_ra_pinfo = 1
net.ipv6.conf.eth0.accept_ra_rtr_pref = 1
net.ipv6.conf.eth0.accept_redirects = 1
net.ipv6.conf.eth0.accept_source_route = 0
net.ipv6.conf.eth0.addr_gen_mode = 0
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.dad_transmits = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth0.disable_policy = 0
net.ipv6.conf.eth0.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.eth0.drop_unsolicited_na = 0
net.ipv6.conf.eth0.enhanced_dad = 1
net.ipv6.conf.eth0.force_mld_version = 0
net.ipv6.conf.eth0.force_tllao = 0
net.ipv6.conf.eth0.forwarding = 0
net.ipv6.conf.eth0.hop_limit = 64
net.ipv6.conf.eth0.ignore_routes_with_linkdown = 0
net.ipv6.conf.eth0.keep_addr_on_down = 0
net.ipv6.conf.eth0.max_addresses = 16
error: "Input/output error" reading key "net.ipv6.conf.lo.stable_secret"
net.ipv6.conf.eth0.max_desync_factor = 600
net.ipv6.conf.eth0.mldv1_unsolicited_report_interval = 10001
net.ipv6.conf.eth0.mldv2_unsolicited_report_interval = 1001
net.ipv6.conf.eth0.mtu = 1500
net.ipv6.conf.eth0.ndisc_notify = 0
net.ipv6.conf.eth0.ndisc_tclass = 0
net.ipv6.conf.eth0.proxy_ndp = 0
net.ipv6.conf.eth0.regen_max_retry = 3
net.ipv6.conf.eth0.router_probe_interval = 60
net.ipv6.conf.eth0.router_solicitation_delay = 1
net.ipv6.conf.eth0.router_solicitation_interval = 4
net.ipv6.conf.eth0.router_solicitation_max_interval = 3600
net.ipv6.conf.eth0.router_solicitations = -1
net.ipv6.conf.eth0.seg6_enabled = 0
net.ipv6.conf.eth0.seg6_require_hmac = 0
net.ipv6.conf.eth0.suppress_frag_ndisc = 1
net.ipv6.conf.eth0.temp_prefered_lft = 86400
net.ipv6.conf.eth0.temp_valid_lft = 604800
net.ipv6.conf.eth0.use_oif_addrs_only = 0
net.ipv6.conf.eth0.use_tempaddr = 0
error: "Input/output error" reading key "net.ipv6.conf.tunl0.stable_secret"
net.ipv6.neigh.eth0.anycast_delay = 99
net.ipv6.neigh.eth0.app_solicit = 0
net.ipv6.neigh.eth0.base_reachable_time = 30
net.ipv6.neigh.eth0.base_reachable_time_ms = 30001
net.ipv6.neigh.eth0.delay_first_probe_time = 5
net.ipv6.neigh.eth0.gc_stale_time = 60
net.ipv6.neigh.eth0.locktime = 0
net.ipv6.neigh.eth0.mcast_resolicit = 0
net.ipv6.neigh.eth0.mcast_solicit = 3
net.ipv6.neigh.eth0.proxy_delay = 79
net.ipv6.neigh.eth0.proxy_qlen = 64
net.ipv6.neigh.eth0.retrans_time = 300
net.ipv6.neigh.eth0.retrans_time_ms = 1001
net.ipv6.neigh.eth0.ucast_solicit = 3
net.ipv6.neigh.eth0.unres_qlen = 86
net.ipv6.neigh.eth0.unres_qlen_bytes = 163840
error: permission denied on key 'net.ipv6.route.flush'
error: permission denied on key 'vm.compact_memory'
error: permission denied on key 'vm.stat_refresh'
tc@E310:~$
I don't know what most of these do, but these look interesting:
Code: [Select]
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
Title: Re: how to fully enable IPv6?
Post by: GNUser on November 23, 2019, 10:40:21 PM
Thanks again, Rich.

I've discovered something interesting: It is only a minute or more after wifi connects (with IPv4) that the IPv6 settings appear.

Code: [Select]
$ sysctl -a | grep wlan0
net.ipv4.conf.wlan0.accept_local = 0
net.ipv4.conf.wlan0.accept_redirects = 1
net.ipv4.conf.wlan0.accept_source_route = 1
net.ipv4.conf.wlan0.arp_accept = 0
net.ipv4.conf.wlan0.arp_announce = 0
net.ipv4.conf.wlan0.arp_filter = 0
net.ipv4.conf.wlan0.arp_ignore = 0
net.ipv4.conf.wlan0.arp_notify = 0
net.ipv4.conf.wlan0.bc_forwarding = 0
net.ipv4.conf.wlan0.bootp_relay = 0
net.ipv4.conf.wlan0.disable_policy = 0
net.ipv4.conf.wlan0.disable_xfrm = 0
net.ipv4.conf.wlan0.drop_gratuitous_arp = 0
net.ipv4.conf.wlan0.drop_unicast_in_l2_multicast = 0
net.ipv4.conf.wlan0.force_igmp_version = 0
net.ipv4.conf.wlan0.forwarding = 0
net.ipv4.conf.wlan0.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.wlan0.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.wlan0.ignore_routes_with_linkdown = 0
net.ipv4.conf.wlan0.log_martians = 0
net.ipv4.conf.wlan0.mc_forwarding = 0
net.ipv4.conf.wlan0.medium_id = 0
net.ipv4.conf.wlan0.promote_secondaries = 0
net.ipv4.conf.wlan0.proxy_arp = 0
net.ipv4.conf.wlan0.proxy_arp_pvlan = 0
net.ipv4.conf.wlan0.route_localnet = 0
net.ipv4.conf.wlan0.rp_filter = 0
net.ipv4.conf.wlan0.secure_redirects = 1
net.ipv4.conf.wlan0.send_redirects = 1
net.ipv4.conf.wlan0.shared_media = 1
net.ipv4.conf.wlan0.src_valid_mark = 0
net.ipv4.conf.wlan0.tag = 0
net.ipv4.neigh.wlan0.anycast_delay = 99
net.ipv4.neigh.wlan0.app_solicit = 0
net.ipv4.neigh.wlan0.base_reachable_time = 30
net.ipv4.neigh.wlan0.base_reachable_time_ms = 30000
net.ipv4.neigh.wlan0.delay_first_probe_time = 5
net.ipv4.neigh.wlan0.gc_stale_time = 60
net.ipv4.neigh.wlan0.locktime = 99
net.ipv4.neigh.wlan0.mcast_resolicit = 0
net.ipv4.neigh.wlan0.mcast_solicit = 3
net.ipv4.neigh.wlan0.proxy_delay = 79
net.ipv4.neigh.wlan0.proxy_qlen = 64
net.ipv4.neigh.wlan0.retrans_time = 99
net.ipv4.neigh.wlan0.retrans_time_ms = 1000
net.ipv4.neigh.wlan0.ucast_solicit = 3
net.ipv4.neigh.wlan0.unres_qlen = 101
net.ipv4.neigh.wlan0.unres_qlen_bytes = 212992
$ sysctl -a | grep ipv6
$

Several seconds after wifi is connected the ipv6 settings finally decide to appear:


Code: [Select]
$ sysctl -a | grep wlan0
net.ipv4.conf.wlan0.accept_local = 0
net.ipv4.conf.wlan0.accept_redirects = 1
net.ipv4.conf.wlan0.accept_source_route = 1
net.ipv4.conf.wlan0.arp_accept = 0
net.ipv4.conf.wlan0.arp_announce = 0
net.ipv4.conf.wlan0.arp_filter = 0
net.ipv4.conf.wlan0.arp_ignore = 0
net.ipv4.conf.wlan0.arp_notify = 0
net.ipv4.conf.wlan0.bc_forwarding = 0
net.ipv4.conf.wlan0.bootp_relay = 0
net.ipv4.conf.wlan0.disable_policy = 0
net.ipv4.conf.wlan0.disable_xfrm = 0
net.ipv4.conf.wlan0.drop_gratuitous_arp = 0
net.ipv4.conf.wlan0.drop_unicast_in_l2_multicast = 0
net.ipv4.conf.wlan0.force_igmp_version = 0
net.ipv4.conf.wlan0.forwarding = 0
net.ipv4.conf.wlan0.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.wlan0.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.wlan0.ignore_routes_with_linkdown = 0
net.ipv4.conf.wlan0.log_martians = 0
net.ipv4.conf.wlan0.mc_forwarding = 0
net.ipv4.conf.wlan0.medium_id = 0
net.ipv4.conf.wlan0.promote_secondaries = 0
net.ipv4.conf.wlan0.proxy_arp = 0
net.ipv4.conf.wlan0.proxy_arp_pvlan = 0
net.ipv4.conf.wlan0.route_localnet = 0
net.ipv4.conf.wlan0.rp_filter = 0
net.ipv4.conf.wlan0.secure_redirects = 1
net.ipv4.conf.wlan0.send_redirects = 1
net.ipv4.conf.wlan0.shared_media = 1
net.ipv4.conf.wlan0.src_valid_mark = 0
net.ipv4.conf.wlan0.tag = 0
net.ipv4.neigh.wlan0.anycast_delay = 99
net.ipv4.neigh.wlan0.app_solicit = 0
net.ipv4.neigh.wlan0.base_reachable_time = 30
net.ipv4.neigh.wlan0.base_reachable_time_ms = 30000
net.ipv4.neigh.wlan0.delay_first_probe_time = 5
net.ipv4.neigh.wlan0.gc_stale_time = 60
net.ipv4.neigh.wlan0.locktime = 99
net.ipv4.neigh.wlan0.mcast_resolicit = 0
net.ipv4.neigh.wlan0.mcast_solicit = 3
net.ipv4.neigh.wlan0.proxy_delay = 79
net.ipv4.neigh.wlan0.proxy_qlen = 64
net.ipv4.neigh.wlan0.retrans_time = 99
net.ipv4.neigh.wlan0.retrans_time_ms = 1000
net.ipv4.neigh.wlan0.ucast_solicit = 3
net.ipv4.neigh.wlan0.unres_qlen = 101
net.ipv4.neigh.wlan0.unres_qlen_bytes = 212992
net.ipv6.conf.wlan0.accept_dad = 1
net.ipv6.conf.wlan0.accept_ra = 1
net.ipv6.conf.wlan0.accept_ra_defrtr = 1
net.ipv6.conf.wlan0.accept_ra_from_local = 0
net.ipv6.conf.wlan0.accept_ra_min_hop_limit = 1
net.ipv6.conf.wlan0.accept_ra_mtu = 1
net.ipv6.conf.wlan0.accept_ra_pinfo = 1
net.ipv6.conf.wlan0.accept_ra_rtr_pref = 1
net.ipv6.conf.wlan0.accept_redirects = 1
net.ipv6.conf.wlan0.accept_source_route = 0
net.ipv6.conf.wlan0.addr_gen_mode = 0
net.ipv6.conf.wlan0.autoconf = 1
net.ipv6.conf.wlan0.dad_transmits = 1
net.ipv6.conf.wlan0.disable_ipv6 = 0
net.ipv6.conf.wlan0.disable_policy = 0
net.ipv6.conf.wlan0.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.wlan0.drop_unsolicited_na = 0
net.ipv6.conf.wlan0.enhanced_dad = 1
net.ipv6.conf.wlan0.force_mld_version = 0
net.ipv6.conf.wlan0.force_tllao = 0
net.ipv6.conf.wlan0.forwarding = 0
net.ipv6.conf.wlan0.hop_limit = 64
net.ipv6.conf.wlan0.ignore_routes_with_linkdown = 0
net.ipv6.conf.wlan0.keep_addr_on_down = 0
net.ipv6.conf.wlan0.max_addresses = 16
net.ipv6.conf.wlan0.max_desync_factor = 600
net.ipv6.conf.wlan0.mldv1_unsolicited_report_interval = 10000
net.ipv6.conf.wlan0.mldv2_unsolicited_report_interval = 1000
net.ipv6.conf.wlan0.mtu = 1500
net.ipv6.conf.wlan0.ndisc_notify = 0
net.ipv6.conf.wlan0.ndisc_tclass = 0
net.ipv6.conf.wlan0.proxy_ndp = 0
net.ipv6.conf.wlan0.regen_max_retry = 3
net.ipv6.conf.wlan0.router_probe_interval = 60
net.ipv6.conf.wlan0.router_solicitation_delay = 1
net.ipv6.conf.wlan0.router_solicitation_interval = 4
net.ipv6.conf.wlan0.router_solicitation_max_interval = 3600
net.ipv6.conf.wlan0.router_solicitations = -1
net.ipv6.conf.wlan0.seg6_enabled = 0
net.ipv6.conf.wlan0.seg6_require_hmac = 0
net.ipv6.conf.wlan0.suppress_frag_ndisc = 1
net.ipv6.conf.wlan0.temp_prefered_lft = 86400
net.ipv6.conf.wlan0.temp_valid_lft = 604800
net.ipv6.conf.wlan0.use_oif_addrs_only = 0
net.ipv6.conf.wlan0.use_tempaddr = 0
net.ipv6.neigh.wlan0.anycast_delay = 99
net.ipv6.neigh.wlan0.app_solicit = 0
net.ipv6.neigh.wlan0.base_reachable_time = 30
net.ipv6.neigh.wlan0.base_reachable_time_ms = 30000
net.ipv6.neigh.wlan0.delay_first_probe_time = 5
net.ipv6.neigh.wlan0.gc_stale_time = 60
net.ipv6.neigh.wlan0.locktime = 0
net.ipv6.neigh.wlan0.mcast_resolicit = 0
net.ipv6.neigh.wlan0.mcast_solicit = 3
net.ipv6.neigh.wlan0.proxy_delay = 79
net.ipv6.neigh.wlan0.proxy_qlen = 64
net.ipv6.neigh.wlan0.retrans_time = 300
net.ipv6.neigh.wlan0.retrans_time_ms = 1000
net.ipv6.neigh.wlan0.ucast_solicit = 3
net.ipv6.neigh.wlan0.unres_qlen = 101
net.ipv6.neigh.wlan0.unres_qlen_bytes = 212992
bruno@box:~$ sysctl -a | grep ipv6
net.ipv6.anycast_src_echo_reply = 0
net.ipv6.auto_flowlabels = 1
net.ipv6.bindv6only = 0
---snip---

At this point (a minute or more after boot), sudo dhclient -6 -v -cf /etc/dhcp/dhclient.conf wlan0 works just fine (as would be expected now that the kernel actually supports ipv6).

Very strange. Since ipv6-4.19.10-tinycore64.tcz is in my onboot.lst, shouldn't the ipv6 settings be available as soon as I get to my desktop after booting?
Title: Re: how to fully enable IPv6?
Post by: Rich on November 23, 2019, 10:57:21 PM
Hi GNUser
... Very strange. Since ipv6-4.19.10-tinycore64.tcz is in my onboot.lst, shouldn't the ipv6 settings be available as soon as I get to my desktop after booting? ...
Two thoughts:
1. Try moving  ipv6-4.19.10-tinycore64.tcz  earlier in your  onboot.lst.
2. I'm also using the  nodhcp  bootcode.  /etc/init.d/dhcp.sh  was separated from  tc-config  because it may take a while to finish.
Title: Re: how to fully enable IPv6?
Post by: GNUser on November 23, 2019, 10:58:41 PM
Just to exclude me being the problem, here is what I'm seeing before I run ANY network-related commands after booting:

Code: [Select]
bruno@box:~$ tce-status -i | grep ip
bzip2-lib
iproute2
iptables
ipv6-4.19.10-tinycore64
p7zip
bruno@box:~$ sysctl -a | grep ipv6
bruno@box:~$

As you can see, ipv6-4.19.10-tinycore64 is loaded but it seems to have no effect.
Title: Re: how to fully enable IPv6?
Post by: GNUser on November 23, 2019, 11:05:16 PM
No luck, Rich. I put ipv6-4.19.10-tinycore64.tcz at the very top of onboot.lst and used the nodhcp boot code.

This is still what I'm seeing when I get to my desktop:

Code: [Select]
bruno@box:~$ tce-status -i | grep ipv6
ipv6-4.19.10-tinycore64
bruno@box:~$ sysctl -a | grep ipv6
bruno@box:~$

Is there a command that I can manually run after getting to my desktop that would force the kernel to "notice" the contents of ipv6-4.19.10-tinycore64.tcz?
Title: Re: how to fully enable IPv6?
Post by: Rich on November 23, 2019, 11:13:36 PM
Hi GNUser
Just to exclude me being the problem, here is what I'm seeing before I run ANY network-related commands after booting:

Code: [Select]
bruno@box:~$ tce-status -i | grep ip
bzip2-lib
iproute2
iptables
ipv6-4.19.10-tinycore64
p7zip
bruno@box:~$ sysctl -a | grep ipv6
bruno@box:~$

As you can see, ipv6-4.19.10-tinycore64 is loaded but it seems to have no effect.

Is it possible something in  iproute2  or  iptables  has been started and is delaying ipv6 ?

Title: Re: how to fully enable IPv6?
Post by: Rich on November 23, 2019, 11:19:34 PM
Hi GNUser
No luck, Rich. I put ipv6-4.19.10-tinycore64.tcz at the very top of onboot.lst and used the nodhcp boot code.

This is still what I'm seeing when I get to my desktop:

Code: [Select]
bruno@box:~$ tce-status -i | grep ipv6
ipv6-4.19.10-tinycore64
bruno@box:~$ sysctl -a | grep ipv6
bruno@box:~$

Is there a command that I can manually run after getting to my desktop that would force the kernel to "notice" the contents of ipv6-4.19.10-tinycore64.tcz?

Does  lsmod  show  ipv6  is loaded at that point in time?
Title: Re: how to fully enable IPv6?
Post by: GNUser on November 23, 2019, 11:36:26 PM
Strong thinking, Rich. No, according to lsmod, ipv6 is not loaded at that point.

I changed my wifi-connect script to this, and now it works as expected:

Code: [Select]
modprobe ipv6
wpa_passphrase "$ssid" "$password" > $auth_file
wpa_supplicant -i $iface -c $auth_file &
dhclient -v -cf /etc/dhcp/dhclient.conf $iface

Turns out the single dhclient command above gets an IPv4 address and an IPv6 address as well, no there's no need to run dhclient a second time with the -6 flag.
Title: Re: how to fully enable IPv6?
Post by: GNUser on November 23, 2019, 11:38:47 PM
Thank you, Rich. You are an amazing resource. This is solved.

curaga and juanito:

/usr/local/tce.installed/ipv6-4.19.10-tinycore64 in ipv6-4.19.10-tinycore64.tcz should probably contain this:

Code: [Select]
#!/bin/sh
modprobe ipv6
Title: Re: how to fully enable IPv6?
Post by: Rich on November 23, 2019, 11:45:25 PM
Hi GNUser
For what it's worth, my  dmesg  shows this:
Code: [Select]
[   28.395220] e100 0000:03:08.0 eth0: NIC Link is Up 100 Mbps Full Duplex
[   33.730665] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[   33.809831] NET: Registered protocol family 10
[   33.887829] Segment Routing with IPv6
Those timestamps coincide with when my desktop appears.
Title: Re: how to fully enable IPv6?
Post by: GNUser on November 24, 2019, 12:04:21 AM
The last two lines from the above show up in my dmesg as well, but it seems ipv6 kernel module is not loaded when I arrive at desktop unless I run modprobe ipv6.

P.S. Now that my ipv6 issue has been solved, I discovered that udhcpc is just as capable a DHCP client as dhclient: Both can grab IPv4 and IPv6 addresses at the same time without being explicitly asked. Given that udhcpc does not require an extension (it is part of the base system), is zero-conf (compared to dhclient, which was a major pain to configure) and has a trivial syntax (e.g., udhcpc -i wlan0), it seems like an obvious winner.
Title: Re: how to fully enable IPv6?
Post by: curaga on November 24, 2019, 03:01:06 AM
Yes, the kernel will only autoload ipv6 when it is needed (another module depends on it, or you run an ipv6 command, or possibly when getting such a packet). However some people will load the ipv6 extension without intending to use ipv6, since nowadays the firewall modules depend on it.
Title: Re: how to fully enable IPv6?
Post by: GNUser on November 24, 2019, 07:24:57 AM
However some people will load the ipv6 extension without intending to use ipv6, since nowadays the firewall modules depend on it.

I discovered this the hard way when setting up my TC-powered IPv4-only home router, which includes a firewall.

I guess a better way (than tce.installed script) to prevent surprises if folks *do* want IPv6 is to mention in the extension's comments section that loading the extension is not enough; the kernel module needs to be loaded, too. FWIW I'd also mention that any firewall requires the extension, although this will be less likely to help folks who are stuck. (Until now I've always wondered why my router needed the extension.)
Title: Re: how to fully enable IPv6?
Post by: Rich on November 24, 2019, 02:51:01 PM
Hi GNUser
I removed  ipv6-KERNEL.tcz  from my onboot.lst to figure out why I installed it and what was causing the  ipv6  driver to load. It was the
NFS services being started. Syslog showed tcp6 and udp6 errors logged by nfsd, rpcbind, rpc.mountd, and rpc.statd. NFS will still
run without it, I just wanted to suppress the error messages.

Code: [Select]
[   33.730665] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).Those timestamps coincide with when my desktop appears.
Thats the  nfsd  module loading.

Quote
Code: [Select]
[   33.809831] NET: Registered protocol family 10
That's the  inet6  protocol being registered.