Since I've upgraded from 24.10.4 to SNAPSHOT, I've been unable to configure random suffixes on a DHCPv6 interface - instead, I can only receive ::1 as a suffix.
Previously, a non-random suffix appeared, which could be randomized by configuring net.ipv6.conf.default.stable_secret in /etc/sysctrl.conf. This suffix would randomize again upon each reboot or restart of the interface. This is wonderful for instances like using the router with masquerade6 or for other client-like connections (DNS, DDNS, etc.). RFCs do not require the router to be ::1.
I created a forum thread, and from there a a GitHub issue has been created. I even took the Thanksgiving holiday to constantly revert my device to 24.10.4 (to my family's dismay, which I made a joke about, which angered the developers). I did all of this, in addition to other users discussing the issue to find out that they had no interest in the issue. In fact, each developer ignored me and continued to discuss the feature disappearing and being unnecessary!
This is because by my report, they identified some bug that has persisted thru versions that exposed behavior, but is not desired by the developers.
Unfortunately other users and developers have hijacked both my thread and the GitHub created and linked in thread. I realized that they actually want the new broken behavior because it was actually some bug they had not noticed which exposes this ability.
At this time, I'm merely informing the community and making note to reference when the previous threads are quoted in the future. I would provide a link to the thread, but the developers and others filled it with pejoratives and insults for not testing what they desired - since I didn't realize and had no clues they no interest in my issue. I was even berated for posting in my own thread. In addition to the thread, I was told in the GitHub that I'm distracting from the issue I reported. I was told to make another issue. (???)
Since I don't understand the behavior and politics (and frankly, I didn't know or care about the issue they seem focused on and having me labor for 2 days), I'll just make note here in case someone else observes the behavior and is a confused as I am.
EDIT:
The thread has since been closed and hidden, and altered to remove my clarification about joking about my family being angry about constantly taking the network offline (unbeknownst to me) to test for the developers a different issue
I honestly thought they took concern and care about the issue a user experienced. I learned that isn't the case. In the future developers, please be more mindful of users.
Hi, please be a bit more patient. It takes time in such a big community to solve issues.
Could you tell me if your WAN uplink really uses DHCPv6 as protocol? Because if you use dhcpv6 in the interface settings, it can still use SLAAC.
I’m asking because the ip6ifaceid is only used for SLAAC in odhcp6c, but not for DHCPv6.
So we need to extend /lib/netifd/proto/dhcpv6.sh to support random hostids for DHCPv6.
As I’m just an ordinary user trying to give back something to the community, Let’s work together on the issue to make this work. Thanks!
It's my understanding that the developers refuse to acknowledge or fix the issue as stated (by the users), in fact insulted me and used pejorative for one with mental disability, but OK...one more try.
OK, I realized now why the developers were possibly angry over their issue.
I receive a Prefix Delegation, so I assumed it is DHCPv6 - I realize I could be wrong
The IP (which anyone on 24.10.4 can see) receives 3 addresses:
A /128 IP using the prefix delegation
A link local with some non-random suffix that isn't ::1 (which I understand ::1 was supposed to be the intended default behavior) - the developers got angry I didn't mention this IP which doesn't appear on the GUI, so I'll mention it here
A non-random suffix with a subnet using the prefix delegation (the suffix is identical to the LLA) - at the time it didn't appear to be EUI64 (nor was I looking or expecting it to be - i.e., a bug unnoticed for years), but I was told by a developer that it possibly was while they were identifying how to solve their issue (I don't know because it was bundled with a pejorative that baffled me) - I was also told that EUI64 didn't work, hence my confusion
The latter 2 can be made random by configuring the stable secret and rebooting as described above.
Please let me know if you need more, and please allow time for me to revert or use another device, as I have taken my network offline for multiple hours during the holidays, just to realize there was no progress (my family really did get pissed then and called everyone names - I hope this joke doesn't cause anger).
If someone wishes to easily create a stable secret to test 24.10.4:
euisecret=$(head -c 16 /dev/urandom | hexdump -e '16/1 "%02x""\n"' | sed "s/..../:&/g; s/://")
#or with an RNG
euisecret=$(head -c 16 /dev/hwrng | hexdump -e '16/1 "%02x""\n"' | sed "s/..../:&/g; s/://")
Append net.ipv6.conf.default.stable_secret=$euisecret to /etc/sysctrl.conf
Reviewing my records, I realize the variable in the command was named EUI secret - I had been using this for years (when I needed to generate a new secret of course) and forgot since I just copy/paste into the conf file.
Ummm, you linked where I was told to stop repeating the problem and to create another issue. Now I'm utterly confused.
How (I've asked this a few times over the years and never receive answers about code and scripts, or with markup displayed on gits)?
Are you supposed to copy to CLI?
Am I supposed to compile a custom 24.10.4, and if so, how (I pray that you can understand looking at code for one script at an URL lacks in the endeavor of making a whole firmware)?
Or I'm supposed to save it to /lib/netifd/proto/dhcpv6.sh - if so, how?
Lastly, I noted that I was told I was distracting and to make another issue - please explain how your post in GitHub makes my issue somehow related now - and not designed to cause "more trouble"?
I should also add, copy/pasting code or script from GitHub has never worked for me - I assume because of all the invalid syntax (e.g., minus and plus signs, at signs that are related to code versioning I guess). I've been provided and used (proprietary) code and scripts, they always work; but with Open Source projects, there's a secret you have to guess to make code and script work.
root@OpenWrt:~# cat /etc/odhcp6c.user.d/00-log-env
cat: can't open '/etc/odhcp6c.user.d/00-log-env': No such file or directory
Maybe you meant "add a script" - the one below, or the one here?
(I ask because I'm not sure about the difference between that path and the other /etc/odhcp6c.d)
I'm sure these are things developers know - and I'm aware that developers think others are r@ta#ds (the word used by the developer, not me), if you're not willing or you surmise that you've provided enough details - I thank you and appreciate you. I'll just suffer with it and reconfigure so that traffic does not reveal ::1.
For a work around, I'll probably just use an old device downstream that will continue to run 24.10.4 indefinitely. We tell users to upgrade all the time, imagine the irony.
Just edit the script in your live router.
Either manually apply the proposed changes, or use the patch approach.
E.g. ssh to the router, cd to the correct directory, copy-paste the patch from the github comment to a GUI text editor to a real patch, and then apply it.
(Putty ssh terminal supports copy-paste nicely, and nano has always worked for me in patch copying this way)
Here is what I did just for an example for you while writing this.
I assume the “proposed changes” are the invalid syntax I mentioned - if so, then how do I interpret and remove the invalid syntax, duplicate lines, etc.? Manually?
What "correct directory"?
You've always been kind to me, so I surmise this is just something that developers just can't grasp or understand. It's also possible I'm using the wrong terminology. I'll keep trying though.
You quoted the latter part of meiser's sentence that contained the direct link to his patch proposal in Github creating the support for the random functionality. So I wrote the example for that.
The path is visible in the patch: /lib/netifd/proto/dhcpv6.sh is the file to be patched.
(Ps. I can't really test the script as I have no IPv6 from ISP at the moment)
Pps. The hard part of copying code from browsers is usually whitespace, tabs should be intact, while some browsers or terminals copy spaces instead. Luckily GitHub has the button to copy core snippets in original format)
OK, I'll try...but again, if I'm supposed to copy the GitHub comment meiser made, copying and pasting GitHub has never worked, as there's always invalid syntax in code and scripts (I'm guessing you mentioned nano and PuTTY because you think I have difficulty pasting and or am experiencing whitespace issue, but no, I actually have difficulty with the invalid syntax I'm told to paste that's clearly present on every GitHub link to code/script that I've ever seen). Again, if I'm supposed to interpret, please link instructions or explain (been trying to guess for years).
Even if I type it verbatim (with the syntax errors), it doesn't work. If I'm supposed to remove them, again, I just need those instructions to know how to rewrite it.
Aside from understanding your sentence, still trying to get that to work for reasons stated above.
Edit, here's an example:
root@OpenWrt:~# --- a/lib/netifd/proto/dhcpv6.sh -ash: ---: not found
These errors (or similar ones) appear in all code I see linked online in collaborative coding platforms. I'm sure there's a solution, but if it's manual interpretation and editing, please provide a legend or key describing them (or the program to strip them).