How does tower.local "work"?


daithi
Go to solution Solved by John_M,

Recommended Posts

I used to access my old router at dlink.local - I thought nothing of it because I figured my router just handled it and intercepted the url.

 

I've recently started using unraid and the url tower.local just worked out of the box with no input from me. How does this happen? Is it possible to set my Docker containers up like that as well? Sonarr.local or krusader.local for example.

Link to comment
  • Solution

The .local domain is a special case. It's a pseudo-top level domain that has been set aside for use by the multicast DNS (mDNS) service, originally developed by Apple as Rendezvous and more recently known as Bonjour, with the aim to provide "zero-configuration networking". Apple released the protocol to the open source community in a series of RFCs and it has been adopted and incorporated into other operating systems, e.g. the avahi daemon provides mDNS for Linux. Instead of querying a centralised DNS server, mDNS requests are multicast to all hosts on the local network and if an mDNS-supporting host recognises its own name it responds with its IP address, using a similar data structure to that used by a conventional DNS server. For a particular container to support mDNS it would need to be built with avahi included.

  • Like 3
Link to comment
7 hours ago, John_M said:

The .local domain is a special case. It's a pseudo-top level domain that has been set aside for use by the multicast DNS (mDNS) service, originally developed by Apple as Rendezvous and more recently known as Bonjour, with the aim to provide "zero-configuration networking". Apple released the protocol to the open source community in a series of RFCs and it has been adopted and incorporated into other operating systems, e.g. the avahi daemon provides mDNS for Linux. Instead of querying a centralised DNS server, mDNS requests are multicast to all hosts on the local network and if an mDNS-supporting host recognises its own name it responds with its IP address, using a similar data structure to that used by a conventional DNS server. For a particular container to support mDNS it would need to be built with avahi included.

AVAHI is harder than it seems to get running on some containers, at least with the tiny bit I played with it. Sucks but what can you do. 

 

Sort of related, a docker that can essentially act as an internal reverse proxy that supports broadcasting a bunch of .local mDNS domains and then routing said requests would be absurdly useful. Does that exist? 

Link to comment
13 hours ago, daithi said:

Is it possible to set my Docker containers up like that as well? Sonarr.local or krusader.local for example.

 

It's possible through a slightly different means.

 

Use IPVLAN for those dockers so they each have a unique IP.

Setup dnsmasq on your router.

Configure the hostname.local as entries for the specified IPs.

 

I have emby.local, transmission.local, eggdrop.local, and speedtest.local pointing to the respective IP addresses.

Link to comment
20 hours ago, John_M said:

The .local domain is a special case. It's a pseudo-top level domain that has been set aside for use by the multicast DNS (mDNS) service, originally developed by Apple as Rendezvous and more recently known as Bonjour, with the aim to provide "zero-configuration networking". Apple released the protocol to the open source community in a series of RFCs and it has been adopted and incorporated into other operating systems, e.g. the avahi daemon provides mDNS for Linux. Instead of querying a centralised DNS server, mDNS requests are multicast to all hosts on the local network and if an mDNS-supporting host recognises its own name it responds with its IP address, using a similar data structure to that used by a conventional DNS server. For a particular container to support mDNS it would need to be built with avahi included.

Thanks that's interesting. Time for a dive down a rabbit hole

 

 

8 hours ago, BRiT said:

 

It's possible through a slightly different means.

 

Use IPVLAN for those dockers so they each have a unique IP.

Setup dnsmasq on your router.

Configure the hostname.local as entries for the specified IPs.

 

I have emby.local, transmission.local, eggdrop.local, and speedtest.local pointing to the respective IP addresses.

I might try something like this. I really just want it for the ease of my password manager! Having everything pointed to 192.168...... works but it's cumbersome.

Link to comment

Not sure if anyone will read this but I just discovered that in BitWarden if you change the Match Detection of a URI to Host instead of Default Match Detection it won't suggest passwords that don't match the trailing Port. That's good enough for me that I don't need to mess around with anything else.

Link to comment
  • 2 months later...
On 9/16/2022 at 9:01 PM, Evedoescomputerstuff said:

AVAHI is harder than it seems to get running on some containers, at least with the tiny bit I played with it. Sucks but what can you do. 

 

Sort of related, a docker that can essentially act as an internal reverse proxy that supports broadcasting a bunch of .local mDNS domains and then routing said requests would be absurdly useful. Does that exist? 

I'm setting up something similar to this right now. I'm planning to use nginx to route my internal traffic to my dockers' ports based on which name is used to access the server. I've set up Avahi to broadcast the mDNS addresses all pointing to the docker host. Right now, I'm just having issues getting Windows 10 to resolve the mDNS addresses.

 

Link to comment
  • 1 month later...
On 12/1/2022 at 7:57 PM, OverripeDuck said:

I'm setting up something similar to this right now. I'm planning to use nginx to route my internal traffic to my dockers' ports based on which name is used to access the server. I've set up Avahi to broadcast the mDNS addresses all pointing to the docker host. Right now, I'm just having issues getting Windows 10 to resolve the mDNS addresses.

 

FYI, Windows will only resolve mDNS without subdomains, wont do 2 dots... so foo.bar is ok, notso.foo.bar is no good on windows.  ref: https://andrewdupont.net/2022/01/27/using-mdns-aliases-within-your-home-network/

Edited by biaspoint
grammar
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.