That did it!
Perhaps there should be a reboot prompt?
That did it!
Perhaps there should be a reboot prompt?
Usually there is. Will check it later on my RPi4. Maybe the UI experience is not that optimal. ![]()
Ah thanks, now I see it as well. Was looking wrong somehow. So yeah, the part of the GUA behind the prefix is identical to the LLA (after fe80::), containing the full MAC. I wasnāt aware of that, indeed a privacy issue
.
It is clear what a āsubnetā is, but not sure what a āsubnet IDā is. Also this setting is independent of DHCPv6, so I assume, whatever it does, it works with SLAAC as well. Ah, some web search gives the answer: Cisco Learning Network
So the āIDā is the 16 bits behind the prefix (which I cannot change for the ULA in my case), just as you said
.
So I installed hostapd again through the hotspot app and afterwards I donāt get IPv6 anymore through SLAAC at all. For now I could enable it by adding it through ip addr and ip route.
@MichaIng @trendy How would you suggest I troubleshoot further to see what the hotspot is doing?
Do you mean the dietpi-software WiFi hotspot install option?
Is accept_ra set to 2 now for all interfaces?
sysctl -a | grep 'accept_ra '
Else try:
sysctl net.ipv6.conf.default.accept_ra=2 net.ipv6.conf.all.accept_ra=2
This is however done as part of the WiFi hotspot installation, along with a related config file /etc/sysctl.d/dietpi-wifihotspot.conf to set this automatically at boot.
~$ sudo sysctl -a | grep 'accept_ra '
net.ipv6.conf.all.accept_ra = 2
net.ipv6.conf.br-7ae53c7f8e4e.accept_ra = 0
net.ipv6.conf.br-b7aac2199e04.accept_ra = 0
net.ipv6.conf.default.accept_ra = 2
net.ipv6.conf.docker0.accept_ra = 0
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.veth1408172.accept_ra = 2
net.ipv6.conf.veth155f384.accept_ra = 2
net.ipv6.conf.veth6ade40e.accept_ra = 2
net.ipv6.conf.veth6dab4d2.accept_ra = 2
net.ipv6.conf.veth8067cf0.accept_ra = 2
net.ipv6.conf.veth93733a8.accept_ra = 2
net.ipv6.conf.veth9ecb3c9.accept_ra = 2
net.ipv6.conf.vethc980e81.accept_ra = 2
net.ipv6.conf.vethe4095b7.accept_ra = 2
net.ipv6.conf.wlan0.accept_ra = 2
Seems like itās 1 on eth0, and 2 on wlan0, will it cause complications if I disable it on wlan0 since I donāt need IPv6 on that interface and put it on 2 for eth0?
dietpi-wifihotspot.conf
net.ipv4.ip_forward=1
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
Iām guessing I should edit it in this file if I want to change that.
Right now Iāve enabled the hotspot and rebooted but donāt get any network on it anyways weirdly enough.
the net.ipv6.ip_forward will be 1 so you need to have accept_ra set to 2 for the eth0 at least to get the RAs. For the wlan you donāt need it enabled at all, as you donāt expect RAs.
Seemed to have worked flawlessy thank you!
Now I need to figure out why the devices are not getting a connection.
Edit:
Getting this in the journalctl logs:
No subnet declaration for wlan0 (no IPv4 addresses).
** Ignoring requests on wlan0. If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface wlan0 is attached. **
Not configured to listen on any interfaces!
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.
Edit 2:
ifup wlan0 and service isc-dhcp-server start fixed it.
how does it behave after reboot? All working fine still?
Yeah it did, all seems to work fine now on the IPv6 RA part now!
Is there a way to block the subnet to talk to the rest of the eth0 LAN but enable them to talk to a few devices? Was gonna block the traffic between the hotspot and the LAN except to my phone to allow it to talk to the IoT devices
Yes, with firewall rules.
Sorry to revive an old thread but Iām weirdly getting the same issue again after installing Tailscale, Iāve setup an external AP for my network now so no more AP needed from DietPi but after installing the Tailscale package I curiously am not getting IPv6 again.
Iāve reviewed the thread but and made sure that the accept_ra is set to 2 but still get nothing, hereās my current dietpi-tailscale.conf:
net.ipv4.ip_forward=1
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.eth0.accept_ra = 2
Have you verified with:
sudo sysctl -a | grep 'accept_ra '
that everything is correct and no other script is interfering?
Sorry for the late reply.
$ sudo sysctl -a | grep 'accept_ra '
net.ipv6.conf.all.accept_ra = 2
net.ipv6.conf.default.accept_ra = 2
net.ipv6.conf.docker0.accept_ra = 0
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.tailscale0.accept_ra = 2
Interestingly eth0 is on 1, Iāll see if I can dig around for config files, where would be the best to look? From what I can see all the config files in /etc/sysctl.d donāt have any config options for the net.ipv6.conf except dietpi-tailscale.conf where I did change or add net.ipv6.conf.eth0.accept_ra = 2.
Edit:
I edited the dietpi-tailscale.conf and removed the space around the equal sign and now I get the output:
$ cat dietpi-tailscale.conf
net.ipv4.ip_forward=1
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.eth0.accept_ra=2
Curious how it shows with a space when doing the sysctl command but doesnāt like it in the config file but I at least learnt to double check syntaxing of config files in the future!
Now I just need to figure out how to force an IP update without restarting the Pi, I still donāt get one after doing systemctl restart networking.
How about ifup eth0 ?
Curiously the ra setting was reset back to 1ā¦
$ sudo sysctl -a | grep net.ipv6.conf.eth0.accept_ra
net.ipv6.conf.eth0.accept_ra = 1
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_rt_info_max_plen = 0
net.ipv6.conf.eth0.accept_ra_rt_info_min_plen = 0
net.ipv6.conf.eth0.accept_ra_rtr_pref = 1
Thatās interesting, seems that something is indeed messing up with your system.
On-top of that tailscale refuses to boot with the error
$ sudo tailscale up
failed to connect to local tailscaled (which appears to be running as tailscaled, pid 600513). Got error: Failed to connect to local Tailscale daemon for /localapi/v0/status; not running? Error: dial unix /var/packages/Tailscale/var/tailscaled.sock: connect: no such file or directory
Iāve tried restarting the service with no luck, gonna change the tailscale options and see what outcomes I can get, so far restarting the tailscale service doesnāt work.
Iām not good enough with sysctl to troubleshoot from here. Iāll see what I can search up but any pointers would be great.
Alright so Tailscale itself runs when I stop the systemctl service and then works when running manually. The output of systemctl status tailscaled
$ sudo systemctl status tailscaled
ā tailscaled.service - Tailscale node agent
Loaded: loaded (/lib/systemd/system/tailscaled.service; enabled; preset: enabled)
Active: inactive (dead) since Mon 2023-09-18 11:38:02 CEST; 4min 2s ago
Duration: 15.516s
Docs: https://tailscale.com/kb/
Process: 758205 ExecStartPre=/usr/sbin/tailscaled --cleanup (code=exited, status=0/SUCCESS)
Process: 758233 ExecStart=/usr/sbin/tailscaled --state=/var/lib/tailscale/tailscaled.state --socket=/run/tailscale/tailscaled.sock --port=${PORT} $FLAGS (code=exited, status=0/SUCCESS)
Process: 758275 ExecStopPost=/usr/sbin/tailscaled --cleanup (code=exited, status=0/SUCCESS)
Main PID: 758233 (code=exited, status=0/SUCCESS)
Status: "Connected; accountInfo; TailnetIPs"
CPU: 2.073s
The logs arenāt too helpful either on why itās glitching out.