2

I have a computer that is hooked up to my entertainment center that runs an EyeTV media server. I hadn't used it in over a year because we moved and I couldn't pick up any stations, but I bought a new outdoor antenna and now have stuff to watch. I have a bookmark to the server that uses my computer's name (roberts-mac-mini.local) and when I tried to access it from my iPhone 6s, it eventually timed out. This also happens on my iPad Mini.

The thing is, if I use the DHCP address, it works. Also, if I enter roberts-mac-mini.local into Safari on my laptop, it works! It's only when trying to access .local domains from iOS devices that it doesn't work.

Additionally, I cannot ssh via the Terminus app nor can I ping any of my 3 macs using a network utility app using their .local addresses.

Oddly, occasionally, it DOES work, though I have not been able to figure out why.

I just called and spoke to Apple Support. They screen shared with me on my iPhone and I demonstrated how I could access the computer using the DHCP address but not with the .local address. I showed them ping for 2 .local addresses as well. They had me eventually "Reset all settings" on the iPhone and the .local domains all started working for all 3 computers I'm running! It's a pretty drastic fix though. It's going to take me all day going back through my settings and getting everything back to normal. And I'd rather not do this on my iPad. Does anyone know a more nuanced fix to this issue or why it's happening in the first place? I don't want to go back and fix all my settings only to find out that I've re-introduced the issue.

6
  • Change your TLD. .local is problematic (trying to find the Apple support doc, but they keep moving things). Rename your domain to .home or .lan or something else. I believe the issue has to do with Rendezvous protocol and DNS not "agreeing" on how to use .local. It's been a long time for me, and I don't have my notes to refer to.
    – Allan
    Mar 3 '19 at 14:43
  • Wondering if the iOS device is looking on the cellular network. Try turning off cellular data. Just a thought... Mar 3 '19 at 17:31
  • Just an update... I spoke with Apple Support a few days ago and they had me “Reset All Settings”... which worked... temporarily. It had worked the rest of that day. A few days later after finally getting my settings back to normalcy, I tried to use my eyetv media server using the .local address and it didn’t work again. Also: it seems to be working on my iPad mini, contrary to what I’d previously claimed and I’m not sure whether it “started” working or whether it has always worked and I had just assumed it didn’t work.
    – hepcat72
    Mar 8 '19 at 13:22
  • Apple's use of .local meets the standard tools.ietf.org/html/rfc6762
    – mmmmmm
    Mar 10 '19 at 17:45
  • It’s definitely the resolution of DNS that is the problem. I don’t know about the standard and how meeting the standard is evaluated, but I doubt that Apple allows 3rd party apps from interfering with DNS resolving, so this problem seems very likely to be Apple’s fault. The user should not even be able to inadvertently cause it to stop working. And all the anecdotal evidence I’ve come across lays heavy suspicion on bonjour and/or the mechanism it triggers to cache DNS resolutions.
    – hepcat72
    Mar 10 '19 at 18:31
0

I figured out a temporary work-around:

  • Turn airplane mode on and off

This flushes the DNS cache on the iPhone, which caches DNS resolutions set by Apple's Bonjour, which uses .local for things like airplay and printer service broadcasting.

Once you do this with airplane mode, access to .local addresses on your network should start working, but it's only a temporary fix. Once Bonjour tramples over the DNS settings, it will stop working again. You can repeat this trick to restore access, but for a more permanent fix, you'll just have to use your DHCP-assigned IP address.

If you need .local DNS resolution to work reliably, Apple needs to fix this issue, so I suggest you submit feedback to them.

I blogged about the issue here.

4
  • Turns out that this handy trick will also allow your phone to detect speakers connected to an airport express when they’re not showing up in the control center! Neat-o! I had been just power-cycling my phone whenever that happened (which is a fairly frequent occurrence and usually affects a portion of my AirPort expresses). Or I used the remote app to play from my laptop. Such a simple solution and you get immediate results.
    – hepcat72
    Mar 11 '19 at 2:32
  • Wow, this trick works for a lot of things. It also fixes when computers on my network are not showing up in the bonjour menu in my VNC app. And not just my Mac Mini with my eyetv media server, my MacBook Air as well.
    – hepcat72
    Mar 11 '19 at 10:56
  • 1
    Thank for you writing about this! I really can't believe that this happens because of iOS. For several months I thought something is wrong with my local network setup. It is unbelievable how quickly it stops working again! On macOS it doesn't seem to break. Oct 30 '20 at 20:29
  • 1
    For a better explanation of what is happeneing see stevessmarthomeguide.com/multicast-dns and the RFC datatracker.ietf.org/doc/html/rfc6762
    – mmmmmm
    Aug 20 at 11:07
0

I found an additional workaround after trying the above solutions without luck:

  1. On iOS, go to the Wi-Fi settings of the home/office network you are connected to.
  2. Go to Configure DNS and set it to manual.
  3. Then add the following search domain: .local

After that it immediately started working for me. I just found this solution so can't tell yet if it would stay stable over time but so far it works fine.

Perhaps entering the search domain somehow triggers iOS to actually do the proper DNS lookup request for .local domains. (In my case the local router would come back with the correct internal IP for the domain as I entered it into the LAN DNS settings of the router.)

4
  • I think what it does is stop mDNS lookups as they are now lower in the DNS lookup order
    – mmmmmm
    Aug 20 at 10:14
  • I haven't had any bonjour/mDNS .local issues in a long time, but I know that DNS and mDNS are 2 different things. I'm not sure that you're having/solving the same problem. We're your .local addresses ever working? What services are you accessing through mDNS?
    – hepcat72
    Aug 20 at 11:12
  • They are the same thing - just different ways of locating things. If you have a mDNS resolver it will use multicast - see en.wikipedia.org/wiki/.local and MS suggestion of what to do if you have Macintosh computers on your AD
    – mmmmmm
    Aug 20 at 11:33
  • Or read the RFC6762 "Any DNS query for a name ending with ".local." MUST be sent to the mDNS IPv4 link-local multicast address 224.0.0.251 (or its IPv6 equivalent FF02::FB). " So any DNS MUST do an mDNS lookup for .local
    – mmmmmm
    Aug 20 at 11:38
0

The issue is that .local is not a normal domain name and you should not be using it in a normal DNS

See Wikipedia for a discussion - note that Microsoft have changed their recommendations over time

RFC6762 says

Any DNS query for a name ending with ".local." MUST be sent to the mDNS IPv4 link-local multicast address 224.0.0.251 (or its IPv6 equivalent FF02::FB).

But for small networks you don't actually need a DNS, just use the machine's name and add .local to the end. If all devices have mDNS resolvers installed (which all Apple devices do and the first blog entry explains how to install for Windows and some Linux) then 'it just works'.

If you need DNS for other reasons then don't use .local as a domain but I have seen .internal suggested but there is no defined standard.

Microsoft and similar extracts from the Wikipedia article suggests

Generally, we recommend that you register DNS names for internal and external namespaces with an Internet registrar. This includes the DNS names of Active Directory domains, unless such names are subdomains of DNS names that are registered by your organization name. For example, corp.example.com is a subdomain of example.com. Registering your DNS name with an Internet registrar may help prevent a name collision. A name collision may occur if another organization tries to register the same DNS name, or if your organization merges with another organization that uses the same DNS name.

Several blogs give more readable explanations including https://stevessmarthomeguide.com/multicast-dns/

Blockquote

7
  • I don't understand how this answers the original question. When my phone could not access any .local addresses on my network, it also had trouble accessing other Bonjour services such as airplay devices and media servers. You obviously know a lot more about networking than I do, so I'm hopeful you might actually have a permanent fix you can suggest. Did you take a look at the blog post linked in my answer? That said, I have not had this issue cents iOS 14, so I think Apple actually fixed the problem.
    – hepcat72
    Aug 20 at 11:40
  • 1
    It is followin Allan's comment and this answer apple.stackexchange.com/a/425967/237 that implies that there is a local DNS. The answer is the thing that brought this question to my attention. I agree that the question itself is not clear but as there are people who have read it as having a local DNS server then I answered
    – mmmmmm
    Aug 20 at 11:46
  • @hepcat72 and also by your answer and blog saying Apple has it wrong and your understanding of .local. There are two possible separate issues here have a .local DNS server which is wrong or Apple Bonjour not working well. Answers should be clear on what the issue they are answering
    – mmmmmm
    Aug 20 at 11:50
  • I see. Let me ask... So when you say ".local DNS server which is wrong", I assume you mean an mDNS server, like the one on my router? If that's the case, then I believe there's no problem with that since when 1 device has the described issue, other devices do not (when trying to resolve the same domain). So i think it's the latter case: Apple has (/had) it wrong.
    – hepcat72
    Aug 20 at 12:07
  • I just reread my old question and realized I should clarify. I HAVE run into cases where one iOS device doesn't have the issue and another does. In my question, I stated both iOS devices I tried weren't working, which I'm sure was true at the time, though I have hence seen the case where one worked and the other didn't.
    – hepcat72
    Aug 20 at 12:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .