Ping Ff02:1
astrid.tech
astrid.tech
We build a machine containing six cameras. All of them come with the same default IPv4 address, but the MAC address is based on the serial number, so the IPv6 address is, too. Employees enter the six serial numbers by scanning Datamatrix codes in order, and I can calculate the IPv6 addresses from that, connect and change their IPv4 addresses all in parallel.
Ten years ago I did the same thing on a different product with weird ARP shenanigans. The IPv6 approach is way faster and cooler.
.. Now if we could get local socket support for talking to your own device and avoid arbitrary port reservation on localhost, that would make me happy.
Sometimes public keys should be rotated, and this would indeed expire links. And sometimes they shouldn’t be (a key pair in a TPM-like device in an embedded system would make a lot of sense).
> I think just having trust on first use would bridge most of the gap for local devices.
This has the exact same key rotation problem. And you can get quite close to TOFU with an HTTP page that links to a a hypothetical HTTPS+key link.
https://bugzilla.mozilla.org/show_bug.cgi?id=700999
Also W3 issue:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=27234
Edit: added w3 issue I missed linked in the bugzilla issue
Also calling web browsers made by "stupid people" without even properly evaluating the effectiveness of your own network hack seems rather hypocritical. :)
It is very common (or perhaps almost ubiquitous since most routers will respond, idk) to get responses and works by default for most devices. It will not work if you:
- Have no IPv6 devices on your network
- The hosts on your network have a firewall that filters the packets or configuration that disables pinging (I think Windows disabled ping by default since Vista)
- You have some fancy network with host isolation (trading usability for security), often seen with enterprise vendors
- It autodetected the wrong interface to send the packets out on. I don't know how ping does this, perhaps it tries to just send it everywhere. Can't quickly find it but the Arch wiki says you have to specify the interface (for me it works without, so clearly that's not exactly accurate, but I imagine it may not do what you want)
For anyone wanting to replicate this "provides" query on Debian, I use `apt-file search /bin/ping` to list what packages have a file with that name -- this will also match `/usr/bin/ping6` (both prefixes and suffixes will match) but that was fine in this case. (If you just do `apt search ping` or something, you get a huge list of any package mentioning the word ping, which may be what you want when searching for something more broadly; and if you use `apt search /bin/ping` it comes up empty because it doesn't have file path data.)
Edit: now that I had looked up which utility it is, I figured I'd check the "is documentation enough" on how it finds which interface to use. It looks to me like it is `getaddrinfo` that decides it: https://github.com/iputils/iputils/blob/master/ping/ping.c#L...
> pkgfile $(which ping)
core/iputils
That doesn't provide a `ping6`, presumably as `ping -6` is the preferred solution. $ ping -6 ff02::1%eth2
Did I miss some kernel tunable or nftables setting? Unicast ping works fine.You shouldn't need `-6`, given it's a v6 address.
I do have a link local address directly on that NIC. I also use VLANs sometimes, but none are configured right now on this link. Slightly edited below to hide my MAC but:
$ ip -6 address show dev eth2 | grep link
inet6 fe80::aef0:b837:fafa:fefe/64 scope link noprefixroute
The same command works fine on my Debian and OpenWRT boxes, but not on my Arch desktop.You seem to be here to complain more than to actually learn, else you'd've said what results you got, and you'd communicate better by not using acronyms without context (TFA: trans fatty acids? Thanks for asking?)
Regarding the comment about web browsers being made by stupid people, we're all allowed to have opinions. Most of the common web browsers have tons of stupid design choices, and generalizing that stupid design choices come from stupid people just sounds like a flippant remark, not a denigration of a whole group of people. The people I know who work on web browsers would wholeheartedly agree with the author's comment (I've heard many similar sentiments).
The information in this article is useful, and everyone even remotely in IT would benefit by keeping this page bookmarked :)
"The Fucking Article." Etymologically derived from "RTFM," but now mostly used as a casual abbreviation to refer to the article that a comment thread is about. People who have traumatic childhood memories of soap in their mouths sometimes pretend it stands for "The Fine Article" or "The Featured Article."
That's the context: "ping ff02::1%enp34s0" just doesn't get any responses at all. And yes, I have both global and link local IPv6 addresses on the interface.
Apparently not?
"PING ff02::1%enp34s0(ff02::1%enp34s0) 56 data bytes"
...and nothing else at all?
> What year is it? "ping6" hasn't been a thing for well over a decade now that standard ping works with IPv6 just fine.
Ummm... Perhaps that's true about your specific OS, but there are plenty of other OSes for which this isn't true, like macOS and the BSDs.
> Too vague to respond.
I was trying to make the point that you were the one being too vague. We can guess at things, but saying "nothing happened" is not the same as saying, "I did this thing, and this is the result I got", where the result isn't described as "nothing" ;)
> "PING ff02::1%enp34s0(ff02::1%enp34s0) 56 data bytes"
> ...and nothing else at all?
Correct, at least until I send ^C and get a report of 100% packet loss.
> Perhaps that's true about your specific OS, but there are plenty of other OSes for which this isn't true, like macOS and the BSDs.
It's true on Linux and FreeBSD anyway, the two OSes I have installed in my home. Granted, FreeBSD does hardlink ping6 to the same binary for ancient script compatibility, but the standard ping works just fine. OpenBSD is the same. The days of IPv6 being a weird experimental protocol requiring separate commands are long over (I can't check Mac OS, don't own any Apple products).
Often, something is (seemingly) bad because of a lack of time or other resource, because a boss or standard told them to make it bad, because there is some bigger issue being avoided, etc...
Especially when it comes to browsers, vendors are making trade-offs, and supporting a very rare case like this when URLs are often very sensitive security-wise seems like one I could understand being wary of. Does a user understand what devices they are connecting to in that situation?
It's probably intended as a joking remark, maybe even an "all people are stupid" thing poorly done, but even so, I think it perpetuates a bad way of thinking about flaws in software.
The platform-specific nature of <zone_id> makes it difficult to impossible to validate the well-formedness of the URL (see https://tools.ietf.org/html/rfc4007#section-11.2 , as referenced in 6874, to fully appreciate this special hell). Even if we could reliably parse these (from a URL spec standpoint), it then has to be handed 'somewhere', and that opens a new can of worms.
This sentiment is the fundamental attribution error [1] in a nutshell: "Others do stupid things because they're stupid, I do stupid things because stupid circumstances and other people made me" :)
And while I can see that it's being used flippantly here and not intended as an insult, I still don't think it's fair to the many decidedly non-stupid browser devs out there.
[1] https://en.wikipedia.org/wiki/Fundamental_attribution_error
> ping6 ff02::1%en1
for example.
I wasn't able to get it to work on Windows (I can get the command to work in WSL but it seems to sit alone in an internal network). Any advice welcome.
It can also be that there are simply no other devices responding to this on your network, especially if those are also Windows (more infos/options in my other comment https://news.ycombinator.com/item?id=40503155)
However, if I do the same from my rpi, a few devices respond (my tv box, the rpi itself, etc)... including my windows machine!
According to https://superuser.com/a/467559, "The Windows ping program cannot send a ping request to broadcast addresses". That's multicast, there's no broadcast in ipv6; but maybe there's the same issue. I tried a quick https://learn.microsoft.com/en-us/dotnet/api/system.net.netw... and it times out too.
Windows has "ipv6-literal.net" as a helper. It's particularly useful if you're trying to smuggle link local addresses into a UNC path:
``` netsh interface ipv6 show interfaces ```
Get your interface id first, you're looking for the IDX number. There might be several.
ping ff02::1%LAN_INTERFACE_ID
So, example:
``` ping ff02::1%22 ```
Windows ping wrt the firewall is not very smart, it won't let the response packets through. So you need to disable your firewall to see systems responding.
Sadly, ping won't display the src address. It will state that "ff02::1%22" responded... But if you look in wireshark you can tell the other systems on your network received and responded to the packet.
ping ff02::1%<INTERFACE> -c 2 -i 100 -w 4