Rendered at 18:58:49 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
DaSHacka 1 days ago [-]
Related: the name for your Tailnet is randomly-generated from a list of 'tails', and a list of 'scales' in the format `<a tail>-<a scale>.ts.net`.
Many puns and easter-eggs in both! Recommend giving it a quick glance, some are pretty fun. Some examples include 'fable' as a 'tail' (IE 'tale'), and 'universe' as a 'scale'.
Words can be present in both lists when the entity is applicable to both a tail and a scale, so a tailnet named `koi-koi.ts.net` is theoretically possible too.
Found out about it after I randomly lucked into rolling 'miku' as my 'tail' when first creating my account :)
I added "wyrm" into both lists a while back to make wyrm-wyrm possible for some lucky individual.
goo 13 hours ago [-]
Thanks for that, I love my tailnet name {LLLL}-wyrm
Perfect level of apparent sketchiness too.
MadameMinty 21 hours ago [-]
A little upsetting you can't get moon-moon.
LukaD 24 hours ago [-]
Hmm, did they always have this? Mine is `tail<a few random letters + numbers>`.ts.net.
DaSHacka 21 hours ago [-]
That's the default randomly-generated hexadecimal Tailnet name if you dont ever change it to a named one.[0]
You have to go to the DNS pane in the console dashboard[1] and click "Rename tailnet..." to get presented with 4 randomly-selected combos you can choose from, or re-roll for 4 more (infinitely).
Potentially not worth it if you already have an established tailnet with many nodes, its better to do it when first creating it.
I think they make named tailnets opt-in rather than the default to reduce wordspace exhaustion from users that create an account and poke around the dashboard for a few minutes and never visit again.
I think you can only pick a named network once, and it’s an active choice in some setting. There’s some impact to TLS and DNS as well. I haven’t done it yet either, so mine is hexadecimal as well.
Cyph0n 18 hours ago [-]
Interesting! My scale is “dory” :)
zahlman 23 hours ago [-]
Are we counting the long hair as a "tail" or something?
DaSHacka 22 hours ago [-]
Pretty sure it's because of her iconic twin 'tails'
They might be the first to do this. Google could have done it easily with 6006:1e, but they never took the opportunity.
tripdout 21 hours ago [-]
Similar, they do have 1e100.net also.
tzs 21 hours ago [-]
To take it to the next level, try to get a matching IPv4 address and company phone number.
It is theoretical possible because many IP address parsers accept not only a.b.c.d form of IPv4 address, but also a.b.c (8 bit a, b, 16 bit c) and a.b (8 bit a, 24 bit b). (Also a, with 32 bit a).
For example on MacOS and Debian pinging these all ping the same thing: 1.0.0.1, 1.0.1, 1.1, 16777217.
If your US phone number has an area code and prefix that each fit in 8 bits and the area code doesn't match one of the first bytes that has a special meaning in IPv4 then you could have phone number areacode-prefix-number also work as IP address areacode.prefix.number.
himata4113 1 days ago [-]
This makes me think about something. Why don't we support this as a standard?
It would be nice if local ipv6 spelled out "local"
imagine this: local::homelab in your url-bar just working
edit: Yes I know DNS solves this problem, but it would be very neat non the less, making 128bits of packet overhead actually serve a purpose without any software glue.
jjmarr 1 days ago [-]
The `.local` TLD exists as a zeroconf domain name for this purpose on local networks. Your homelab can advertise as `homelab.local` without setting up custom DNS servers.
hgoel 1 days ago [-]
Or .internal if you do setup your own DNS servers.
throw0101c 24 hours ago [-]
.internal is reserved by ICANN, but there is no IETF RFC ('just' a draft (for now)):
Also, link local is almost always `fe80::` [0]. Today for privacy (and simplicity) reasons most devices pick a random address under that like `fe80::6923:83ab:201:273e`. But most operating systems allow configuring a static link address so if you really wanted you could use `fe80::403e:7ab` for something close to "homelab" (and `fe80::cafe` for your coffee maker) you absolutely can.
[0] The allocated range is fe80::/10 so fe(8|9|A|B)[0-F], but in practice it seems rare for devices today to use anything but fe80::.
iknowstuff 1 days ago [-]
mDNS does that. Your devices are already accessible on your network as eg “himatas-iphone.local” with no configuration required.
sigbottle 1 days ago [-]
mDNS my goat. I have a lot of spare machines and I do a lot of various experiments on said machines, some of which could brick the system even on NixOS. I now have a custom usb installer over mDNS and reflashing any compute I have from scratch for the express purpose of destroying it in a few days hasn't been easier
mahboi 1 days ago [-]
mDNS is unreliable
lxgr 24 hours ago [-]
The 128 bits are serving a purpose alright: Globally unique host addressing.
Seems like you want to repurpose them to something completely different (what exactly)?
And what is “interpret this part of an IPv6 address completely differently than in all other contexts” if not software glue?
vel0city 1 days ago [-]
I don't have to imagine, in fact its even easier. I can just go to http://brother in by browser and it goes to my brother printer. Incredible!
abelleisle 21 hours ago [-]
I do the same thing for my homelab's ULA.
My domain is `bitcicle.com`, so I use the internal ULA prefix: `fddf:b17c:1c1e::`.
Makes it easier to remember.
johen8 1 days ago [-]
Sound it out with your mouth:
"What DNS do you use?"
"One hundred one hundred one hundred one hundred"
or
"one hundred, 4 times"
vs.
"f d seven a colon one one five c colon a one e zero colon colon five three"
This is just a rant but IPv6 will never be widely adopted.
In a lot of countries that were not lucky enough to get online early, the ISPs were not able to get IPv4 for every CPE WAN interface. If you go to the by-country tab, you'll find a number of countries are >70%:
The fact that the US has a lot of IPv4, and a lot of software companies are in the US, may mean that a lot of software is IPv4-centric just because the US-centric outlook can ignore IPv6 with little personal impact. If more devs that to dogfood being behind a CG-NAT I think things would change.
WorldMaker 24 hours ago [-]
Mobile networks and consumer home use. "Happy eyeballs" protocols runs on most consumer devices at this point (preferring IPv6 over v4 at all times unless v6 is intolerably slower).
It's mainly just B2B stacks lagging behind today.
wolrah 1 days ago [-]
This has forever been and will forever be the dumbest anti-IPv6 complaint.
How often do you really need to communicate a complete IP address manually, human to human, via voice or handwriting where you can't just copy/paste?
I mean REALLY NEED. Not just "I'm too lazy to set up DNS", not some hypothetical nonsense where you've found yourself on a network that has functional IPv6 but all autoconfiguration beyond SLAAC is disabled, etc. It just doesn't happen at a rate sufficient to justify how much people like you whine about it.
DNS works. You set it up correctly once when you provision the system, it stays working, you never need to think about a raw IP address again until it's time to deploy a new system or something weird happens like changing a NIC. If your DNS is that broken that you can't depend on it, fix that first and stop worrying about trying to remember complete addresses. If you need to tell a colleague what system you're looking at and DNS is not properly configured for that system, "the one ending in 44a1" is more than sufficient 99% of the time in the same way "the one ending in 127" was for v4 and the rest of the time you have computers and copy/paste works.
johen8 1 days ago [-]
Actually yesterday I was at a client doing a demonstration. I am a software developer, but not an IT/network guy, so I just knew to connect to their network, look at ipconfig and tell them the IP of my computer so they could connect to my machine to test the software. I just look at it and said "i'm at zero point fifty four" (it was 192.168.0.54). How would this look in IPv6? (It's a genuine question, because from what I see it would be something like "i'm at f e seven four colon colon colon zero one a", it honestly adds friction.
wolrah 24 hours ago [-]
mDNS autodiscovery by name would be my preferred solution, which should work by default on major OSes as long as the network operator or device administrator hasn't gone out of their way to break it. <yourhostname>.local
Like I said in my previous post, for the most part if you need to actually communicate the raw IP that probably means something has gone wrong and you're now troubleshooting with someone who should have access to a higher level view of the network where "the one ending in 3 charlie echo 5" should be more than sufficient just like it would be if you were communicating a MAC address while troubleshooting DHCPv4 issues.
In the 12 years I've had a dual-stack network I've never had to communicate a full IPv6 address verbally, but if I did I'd pretty much do it the same way I would an IPv4 address. One group at a time, with a pause implying the separator. If there was one or more zero subnets involved that could be shortened with double-colon I'd say that.
For example the record I just got back for Google of 2607:f8b0:4023:141b::71 I'd read off as:
two six zero seven (or maybe twenty-six oh seven)
foxtrot eight bravo zero
four zero two three (or maybe forty twenty-three)
one four one bravo
double colon
seven one
edit: HN makes it way harder than it should be to have multiple lines.
simpleguitar 1 days ago [-]
If you have a Mac or Windows laptop, since they configure mDNS by default, you could say <my-machine>.local. The client will do a mDNS query and get your IPv4 or IPv6 address and connect.
That was the whole point of mDNS.
This will work even on a pure ipv6 network (with no hosts having ipv4 addresses).
mahboi 24 hours ago [-]
I have a completely default single router setup at home. I know .50 is my desktop and .1 is my router. How do I reach that via mDNS instead? Pretty sure this is broken.
~ $ arp -a
? (192.168.50.1) at e8:9c:25:52:83:10 on en0 ifscope [ethernet]
? (192.168.50.9) at 64:9a:63:eb:ed:f1 on en0 ifscope [ethernet]
? (192.168.50.50) at 14:98:77:70:17:a7 on en0 ifscope [ethernet]
dcrazy 24 hours ago [-]
On a Mac, run `dns-sd -B _ssh._tcp` to find all machines advertising SSH on your local network. From there, you can either use the advertised `.local` hostname directly, or you can pass the advertised friendly name to `dns-sd -G v4` to resolve it to an IPv4 address.
AFAIK you must always specify a service like `_ssh._tcp` or `_http._tcp`; you can’t ask dns-sd to just dump all the advertised mDNS services on your network. That might be possible with the underlying `nw_browser_t` APIs, though.
mahboi 23 hours ago [-]
Thanks, so this one works for my Mac (.50) in particular but not my RPi on the same network with an SSH server, because turns out it doesn't advertise that by default.
"you can’t ask dns-sd to just dump all the advertised mDNS services on your network": I ran into this too. So besides the defaults and maybe network itself standing in the way, the tooling around mDNS is user-unfriendly.
justsomehnguy 18 hours ago [-]
Yes, thanks, I do not want even any SSH server to be advertised on mDNS.
mahboi 17 hours ago [-]
Me neither really, I just want to reliably know the hostname<->ipaddr mapping on a network.
justsomehnguy 3 hours ago [-]
Run a classic DNS then.
Or hosts.
You are arguing what mDNS doesn't work the exact way you want therefore mDNS is not working for everyone else.
mahboi 2 hours ago [-]
mDNS doesn't work for the average user. They're also not going to set up regular DNS unless they're trying to cope with IPv6. They memorize IP addresses as needed. It's not just me.
There must be like 3 end users who actually use mDNS knowingly, which is why the tooling feels like an unhappy path. Like there's no way to list all hosts, even though the OS presumably knows that somewhere. Supposedly this is in the spec. The best you can do is list hosts that advertise services.
wolrah 23 hours ago [-]
This is to discover services, which you really shouldn't need to do by hand outside of troubleshooting, your apps should be doing it themselves.
For address discovery which is what we're really talking about here it's just "<hostname>.local"
dcrazy 23 hours ago [-]
I was answering the question of “how do I discover another host’s mDNS hostname?” It turns out that is a per-service question.
wolrah 22 hours ago [-]
> I was answering the question of “how do I discover another host’s mDNS hostname?” It turns out that is a per-service question.
No, it's not. That is a service address, not the host's hostname.
The host's hostname is whatever the computer is named, which if you are in a position where you're wanting to give someone else its IPv4 address or access your own thing via its IPv4 address you definitely can also know it's hostname because it's either shown in the same parts of the GUI or one command away. On a lot of CLI systems it's literally in the prompt.
Either way it's not advertised unless that host is configured to advertise itself, you have to query for it and the host will then respond.
mahboi 22 hours ago [-]
Not every host lets you SSH into it to run commands. The mDNS hostname is not always the same as your system hostname since it can change due to conflicts. Some Linux distros don't even have a built-in util to show your own mDNS name.
wolrah 1 hours ago [-]
> Not every host lets you SSH into it to run commands.
Not sure how this is relevant. The context we're talking about here is someone wanting to communicate to another person how to connect to their laptop. We can assume that this person has sufficient access to the device to get this information.
You're not trying to work backwards from an unknown device here, if you're doing that you presumably have the ability to copy/paste the full address from whatever tool you used to identify the device's existence on the network.
> The mDNS hostname is not always the same as your system hostname since it can change due to conflicts.
And it changes in predictable ways, with the mainstream desktop OSes presenting a notification to the user in case of conflicts. If yours doesn't, consider that a flaw in your OS.
Also, if this is a real issue you run in to more than once in a blue moon it's probably worth picking a more unique name.
> Some Linux distros don't even have a built-in util to show your own mDNS name.
systemctl status avahi-daemon
should do the trick on any mainstream Linux distro, and if you're one of the anti-systemd crowd you presumably know your equivalent.
50 minutes ago [-]
wolrah 24 hours ago [-]
<hostname>.local
Here's me pinging my laptop (macOS 27) from my file server (Ubuntu 24.04)
~ ping persephone.local
PING persephone.local (fd82:74ca:1cef:385a:1897:2e4b:a726:18b6%3) 56 data bytes
64 bytes from fd82:74ca:1cef:385a:1897:2e4b:a726:18b6: icmp_seq=1 ttl=64 time=0.496 ms
64 bytes from fd82:74ca:1cef:385a:1897:2e4b:a726:18b6: icmp_seq=2 ttl=64 time=0.515 ms
^C
--- persephone.local ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.496/0.505/0.515/0.009 ms
mahboi 23 hours ago [-]
Only if you know the name already and no two hosts took the same name, assuming it works at all. Shouldn't those question marks be the hostnames on arp -a? On some networks it shows them, on others it doesn't.
wolrah 22 hours ago [-]
> Only if you know the name already and no two hosts took the same name, assuming it works at all.
We're talking about somebody who knows how to get the IPv4 address of their computer, the hostname is available in basically the same exact place on every single system, and easier to remember, and remains the same on every network unless there's a conflict.
It works as long as the network operator of system admin hasn't gone out of their way to break it.
> Shouldn't those question marks be the hostnames on arp -a? On some networks it shows them, on others it doesn't.
Those question marks will fill in if there is a reverse dns entry in the local DNS server, which is set in IPv4 networks based on the device putting its hostname in the DHCP request. Most consumer combo gateway devices will do this by default as does Windows DHCP, but a lot of business firewall devices don't do it at all or don't do it by default.
Either way, that's not relevant to IPv6, mDNS is the way.
mahboi 22 hours ago [-]
"Most consumer combo gateway devices will do this by default as does Windows DHCP, but a lot of business firewall devices don't do it at all or don't do it by default.": Guess that explains it. I have a home router, but maybe its defaults are more business-like.
I'm pretty frequently in a scenario where I know local v4 addrs but not hostnames, usually on a network that's not my own. But even on my own network cause there's no simple way to discover the names, so not everything is a Linux box I can SSH into to ask the hostname. I'd use mDNS if I could reliably type something in to show all the DNS entries on the LAN, never having to diagnose any issues with this.
lxgr 24 hours ago [-]
I haven’t used Linux in over 10 years on a laptop, but even back then this was very well supported there as well. `ssh foobar.local` just worked, for example.
WorldMaker 23 hours ago [-]
Just as LAN addresses (link local) are usually 192.168.$x.$y and you are just passing $x.$y, with IPv6 they are usually `fe80::$z` and in theory you could just pass $z and the person on the other end can assume `fe80::`. Because of how double colon works $z could be just 54 in a similar situation (especially if link local addresses are statically assigned like most workplaces try to statically assign IPv4 addresses).
Same with ULA addresses like 10.$x.$y.$z for private networks. Most of those you can assume `fd$x::$z` and just need to pass whatever is on the other side of the double colons. (Where $x is optional and likely network-wide.)
mahboi 23 hours ago [-]
They're long though. Just checked and my desktop has fe80::1068:f88b:8b1b:4e45 for en0. They can't be short because of possible collisions, unless you're using DHCP or manually allocating static ones, and DHCP6 isn't broadly supported on hosts or routers.
WorldMaker 23 hours ago [-]
Sure, most systems default to SLAAC which creates random long addresses. You can manually allocate them just fine and short addresses aren't going to cause collisions (and if they did, SLAAC handles it). Some of the networking people most (ab)using 192.168.x.y heavily are manually allocating them.
DHCP6 is pretty well supported on a lot of Enterprise routers, so the fd:: ULA space, which is what DHCP6 is most good for, has no required reason to be long addresses (outside of silly things like this link's mentioned Tailscale fingerprinting/advertising IP).
mahboi 24 hours ago [-]
When, every single network I've ever used has had a broken mDNS. And there's no way I'm managing a DNS server just to have memorable addrs, especially when it's not my own network. Edit: Also this post is about a DNS server address, so you're not going to use DNS to find it.
If you want a real example, I was at a nonprofit event helping with their video livestream. They have a Zowiebox that displays its IP address on a digital display. I reached its web management portal that way on their Windows PC that ofc had no nmap etc installed. Oh and that box is IPv4-only.
lxgr 24 hours ago [-]
How can a network have “a broken mDNS”? mDNS is a distributed protocol spoken by the devices on it, not something centrally/administratively provided like DHCP.
mahboi 24 hours ago [-]
Not saying it's centrally administered, but there are ways it can be centrally broken. I honestly don't even know why mDNS doesn't work on my home network, I didn't change anything.
lxgr 24 hours ago [-]
That’s really strange, it’s definitely something your networking hardware needs to actively do, e.g. by filtering/not forwarding multicast traffic.
24 hours ago [-]
lxgr 24 hours ago [-]
> How often do you really need to communicate a complete IP address manually, human to human, via voice or handwriting where you can't just copy/paste?
Uhh, that one time in 2003 over Teamspeek, but it was really cool and really important, I promise! Definitely important enough to justify the horror that is NAT.
bilkow 22 hours ago [-]
That's just their choice though, they could have used fd00::1 just fine ("f d 0 0 colon colon 1"). The advantage of selecting a complex prefix is to avoid collisions (something IPv4 doesn't do well, in any case), and they probably used 53 as 53 is the default DNS port so it's memorable.
toledocavani 16 hours ago [-]
There are libraries like ip6words to map IPv6 addresses to friendlier names. Of course, it may never be popular but definitely be useful in the scenarios this thread present.
vel0city 1 days ago [-]
It could have easily just been "f d zero zero colon colon 1", They're just trying to be fancy with their network addresses.
justsomehnguy 1 days ago [-]
99.999999% of human population would never even know what DNS is. You are yelling at cloud.
Grimeton 22 hours ago [-]
Yeah the "Dead Beef Cafe" has a nice IP, too.
And a nice MAC...
morley 1 days ago [-]
Is there a technical reason it starts at index 2 instead of 0?
psyonity 1 days ago [-]
The `fd` part indicates it's a ULA, a local private ip address. (like 192.168.0.x)
Many puns and easter-eggs in both! Recommend giving it a quick glance, some are pretty fun. Some examples include 'fable' as a 'tail' (IE 'tale'), and 'universe' as a 'scale'.
Words can be present in both lists when the entity is applicable to both a tail and a scale, so a tailnet named `koi-koi.ts.net` is theoretically possible too.
Found out about it after I randomly lucked into rolling 'miku' as my 'tail' when first creating my account :)
https://github.com/tailscale/tailscale/tree/main/words
Perfect level of apparent sketchiness too.
You have to go to the DNS pane in the console dashboard[1] and click "Rename tailnet..." to get presented with 4 randomly-selected combos you can choose from, or re-roll for 4 more (infinitely).
Potentially not worth it if you already have an established tailnet with many nodes, its better to do it when first creating it.
I think they make named tailnets opt-in rather than the default to reduce wordspace exhaustion from users that create an account and poke around the dashboard for a few minutes and never visit again.
[0] https://tailscale.com/docs/concepts/tailnet-name
[1] https://console.tailscale.com/admin/dns
It is theoretical possible because many IP address parsers accept not only a.b.c.d form of IPv4 address, but also a.b.c (8 bit a, b, 16 bit c) and a.b (8 bit a, 24 bit b). (Also a, with 32 bit a).
For example on MacOS and Debian pinging these all ping the same thing: 1.0.0.1, 1.0.1, 1.1, 16777217.
If your US phone number has an area code and prefix that each fit in 8 bits and the area code doesn't match one of the first bytes that has a special meaning in IPv4 then you could have phone number areacode-prefix-number also work as IP address areacode.prefix.number.
It would be nice if local ipv6 spelled out "local"
imagine this: local::homelab in your url-bar just working
edit: Yes I know DNS solves this problem, but it would be very neat non the less, making 128bits of packet overhead actually serve a purpose without any software glue.
* https://en.wikipedia.org/wiki/Top-level_domain#Reserved_doma...
* https://en.wikipedia.org/wiki/Special-use_domain_name
* https://en.wikipedia.org/wiki/.internal
* https://datatracker.ietf.org/doc/html/draft-davies-internal-...
Not sure how important that is.
Mostly for us humans of course.
IPv4 addresses are generally in base-10, but binary and octal can also technically be used (on the CLI).
Also, link local is almost always `fe80::` [0]. Today for privacy (and simplicity) reasons most devices pick a random address under that like `fe80::6923:83ab:201:273e`. But most operating systems allow configuring a static link address so if you really wanted you could use `fe80::403e:7ab` for something close to "homelab" (and `fe80::cafe` for your coffee maker) you absolutely can.
[0] The allocated range is fe80::/10 so fe(8|9|A|B)[0-F], but in practice it seems rare for devices today to use anything but fe80::.
Seems like you want to repurpose them to something completely different (what exactly)?
And what is “interpret this part of an IPv6 address completely differently than in all other contexts” if not software glue?
My domain is `bitcicle.com`, so I use the internal ULA prefix: `fddf:b17c:1c1e::`.
Makes it easier to remember.
"One hundred one hundred one hundred one hundred"
or
"one hundred, 4 times"
vs.
"f d seven a colon one one five c colon a one e zero colon colon five three"
This is just a rant but IPv6 will never be widely adopted.
Not because of home or B2B use.
Depends on your home. In the US Comcast has had IPv6 for a while:
* https://corporate.comcast.com/comcast-voices/ipv6-deployment...
In a lot of countries that were not lucky enough to get online early, the ISPs were not able to get IPv4 for every CPE WAN interface. If you go to the by-country tab, you'll find a number of countries are >70%:
* https://www.google.com/intl/en/ipv6/statistics.html#tab=per-...
The fact that the US has a lot of IPv4, and a lot of software companies are in the US, may mean that a lot of software is IPv4-centric just because the US-centric outlook can ignore IPv6 with little personal impact. If more devs that to dogfood being behind a CG-NAT I think things would change.
It's mainly just B2B stacks lagging behind today.
How often do you really need to communicate a complete IP address manually, human to human, via voice or handwriting where you can't just copy/paste?
I mean REALLY NEED. Not just "I'm too lazy to set up DNS", not some hypothetical nonsense where you've found yourself on a network that has functional IPv6 but all autoconfiguration beyond SLAAC is disabled, etc. It just doesn't happen at a rate sufficient to justify how much people like you whine about it.
DNS works. You set it up correctly once when you provision the system, it stays working, you never need to think about a raw IP address again until it's time to deploy a new system or something weird happens like changing a NIC. If your DNS is that broken that you can't depend on it, fix that first and stop worrying about trying to remember complete addresses. If you need to tell a colleague what system you're looking at and DNS is not properly configured for that system, "the one ending in 44a1" is more than sufficient 99% of the time in the same way "the one ending in 127" was for v4 and the rest of the time you have computers and copy/paste works.
Like I said in my previous post, for the most part if you need to actually communicate the raw IP that probably means something has gone wrong and you're now troubleshooting with someone who should have access to a higher level view of the network where "the one ending in 3 charlie echo 5" should be more than sufficient just like it would be if you were communicating a MAC address while troubleshooting DHCPv4 issues.
In the 12 years I've had a dual-stack network I've never had to communicate a full IPv6 address verbally, but if I did I'd pretty much do it the same way I would an IPv4 address. One group at a time, with a pause implying the separator. If there was one or more zero subnets involved that could be shortened with double-colon I'd say that.
For example the record I just got back for Google of 2607:f8b0:4023:141b::71 I'd read off as:
two six zero seven (or maybe twenty-six oh seven)
foxtrot eight bravo zero
four zero two three (or maybe forty twenty-three)
one four one bravo
double colon
seven one
edit: HN makes it way harder than it should be to have multiple lines.
That was the whole point of mDNS.
This will work even on a pure ipv6 network (with no hosts having ipv4 addresses).
AFAIK you must always specify a service like `_ssh._tcp` or `_http._tcp`; you can’t ask dns-sd to just dump all the advertised mDNS services on your network. That might be possible with the underlying `nw_browser_t` APIs, though.
"you can’t ask dns-sd to just dump all the advertised mDNS services on your network": I ran into this too. So besides the defaults and maybe network itself standing in the way, the tooling around mDNS is user-unfriendly.
Or hosts.
You are arguing what mDNS doesn't work the exact way you want therefore mDNS is not working for everyone else.
There must be like 3 end users who actually use mDNS knowingly, which is why the tooling feels like an unhappy path. Like there's no way to list all hosts, even though the OS presumably knows that somewhere. Supposedly this is in the spec. The best you can do is list hosts that advertise services.
For address discovery which is what we're really talking about here it's just "<hostname>.local"
No, it's not. That is a service address, not the host's hostname.
The host's hostname is whatever the computer is named, which if you are in a position where you're wanting to give someone else its IPv4 address or access your own thing via its IPv4 address you definitely can also know it's hostname because it's either shown in the same parts of the GUI or one command away. On a lot of CLI systems it's literally in the prompt.
Either way it's not advertised unless that host is configured to advertise itself, you have to query for it and the host will then respond.
Not sure how this is relevant. The context we're talking about here is someone wanting to communicate to another person how to connect to their laptop. We can assume that this person has sufficient access to the device to get this information.
You're not trying to work backwards from an unknown device here, if you're doing that you presumably have the ability to copy/paste the full address from whatever tool you used to identify the device's existence on the network.
> The mDNS hostname is not always the same as your system hostname since it can change due to conflicts.
And it changes in predictable ways, with the mainstream desktop OSes presenting a notification to the user in case of conflicts. If yours doesn't, consider that a flaw in your OS.
Also, if this is a real issue you run in to more than once in a blue moon it's probably worth picking a more unique name.
> Some Linux distros don't even have a built-in util to show your own mDNS name.
systemctl status avahi-daemon
should do the trick on any mainstream Linux distro, and if you're one of the anti-systemd crowd you presumably know your equivalent.
Here's me pinging my laptop (macOS 27) from my file server (Ubuntu 24.04)
We're talking about somebody who knows how to get the IPv4 address of their computer, the hostname is available in basically the same exact place on every single system, and easier to remember, and remains the same on every network unless there's a conflict.
It works as long as the network operator of system admin hasn't gone out of their way to break it.
> Shouldn't those question marks be the hostnames on arp -a? On some networks it shows them, on others it doesn't.
Those question marks will fill in if there is a reverse dns entry in the local DNS server, which is set in IPv4 networks based on the device putting its hostname in the DHCP request. Most consumer combo gateway devices will do this by default as does Windows DHCP, but a lot of business firewall devices don't do it at all or don't do it by default.
Either way, that's not relevant to IPv6, mDNS is the way.
I'm pretty frequently in a scenario where I know local v4 addrs but not hostnames, usually on a network that's not my own. But even on my own network cause there's no simple way to discover the names, so not everything is a Linux box I can SSH into to ask the hostname. I'd use mDNS if I could reliably type something in to show all the DNS entries on the LAN, never having to diagnose any issues with this.
Same with ULA addresses like 10.$x.$y.$z for private networks. Most of those you can assume `fd$x::$z` and just need to pass whatever is on the other side of the double colons. (Where $x is optional and likely network-wide.)
DHCP6 is pretty well supported on a lot of Enterprise routers, so the fd:: ULA space, which is what DHCP6 is most good for, has no required reason to be long addresses (outside of silly things like this link's mentioned Tailscale fingerprinting/advertising IP).
If you want a real example, I was at a nonprofit event helping with their video livestream. They have a Zowiebox that displays its IP address on a digital display. I reached its web management portal that way on their Windows PC that ofc had no nmap etc installed. Oh and that box is IPv4-only.
Uhh, that one time in 2003 over Teamspeek, but it was really cool and really important, I promise! Definitely important enough to justify the horror that is NAT.
And a nice MAC...