On my Server 2012 Essentials virtual machine, I was getting five or six messages every day telling me that the server is not connected to the Internet, even though it is. The messages appeared in a balloon alert in my system tray (from the 2012 Essentials Launchpad) as well as in the event log:
Log Name: Microsoft-Windows-Windows Server/Admin
Source: Microsoft-Windows-Windows Server
Event ID: 1280
Level: Error
User: SYSTEM
Computer: SVR2012E.mydomain.local
Description: Critical Alert: Critical Alert: InternetConnectivity is raised at SVR2012E. <Title> The server is not connected to the Internet. <Description> The server is not connected to the Internet. To access websites, you must ensure that the server is connected to the Internet.
Also in the event log:
Log Name: Microsoft-Windows-DeviceSetupManager/Admin
Source: Microsoft-Windows-DeviceSetupManager
Event ID: 202
Level: Warning
User: SYSTEM
Computer: SVR2012E.mydomain.local
Description: The Network List Manager reports no connectivity to the internet.
Analysis and, Hopefully, a Solution
I originally thought maybe there were transient errors in my Internet connection, so I just ignored this for several months. Eventually it became annoying enough to pursue.
First, note that the Windows Server Event ID 1280 is apparently used for any error in that log. I also have Event ID 1280 with text about low disk space on a workstation. So searching on Event ID 1280 is not an accurate way to find solutions to the Internet connection issue.
However, searching on “The server is not connected to the Internet” does bring back numerous results. It was this article that mentioned DNS Forwarders. Aha, I thought; I seem to remember that I had removed DNS forwarders back on SBS 2008, relying solely on root hints. Could that help here?
My current setup has one forwarder pointing to my router. That must be how the Essentials setup wizard configured it:
I couldn’t find any clear guidance on whether this setup is required for Server 2012 Essentials. Well, let’s find out. I deleted the DNS forwarder and, loosely following this article, updated the root hints. (It was interesting that this added IPv6 addresses for some root hints.) Since this, the messages about the server not being connected to the Internet have not appeared.
Update February 28, 2013 – Not Fixed?
I’m still seeing some “The server is not connected to the Internet” messages.
Wait, the forwarder to the router is back! How did that happen?
Sean Daniel talks here about the wacky DNS configuration of 2011 Essentials that apparently applies to 2012 Essentials as well. However in the comments of that article, he states that “the standard server DNS server will obtain forwarders on install,” i.e. this auto-population of forwarders is apparently a standard DNS “feature.”
Now that I think about it, no wonder it’s causing problems, because the first entry in my router’s DNS points to the 2012E server, and the server points to the router as a forwarder, so it becomes an infinite loop.
I can’t find any references about DNS automatically finding and adding the router as a forwarder. I’m pretty sure that didn’t happen in SBS 2008. I tried adding my ISP’s DNS ahead of the router in the list of forwarders, but after a reboot, the router is back at the top of the list.
Robert Pearman has published an article on using a scheduled task to repeatedly remove change or remove the forwarders. Do I really have a schedule a whack-a-mole task to clobber forwarders that keep reappearing?
Maybe I should remove the Server 2012 Essentials IP from the router’s DNS list, and let the Windows Server LAN Configuration service on the clients force DNS to point to the server’s IP when the clients are on the local LAN. I guess that’s the way it’s “supposed” to work. That should theoretically stop the circular DNS pinging that is going on now, but I ‘m worried about hitting DNS resolution issues that others have encountered.
Update to the update: On Windows XP and Server 2003 clients, there is no 2012 Essentials connector, hence no Windows Server LAN Configuration service, so you’ll have to manually set the DNS to point to the server (which better have a fixed IP address).
Update March 2, 2013 – Fixed, I Think
Removing the server’s IP from the list of DNS servers in the router seems to have solved this issue, as well as another issue I was having with a Windows 7 virtual machine where 3CX PBX software services were not starting properly (details here).
One strange problem was that after removing the server from the router’s DNS list, I could not use Remote Desktop to connect to the client (which runs as a virtual machine). It kept telling me the clock was out of sync, which it was not:
“Remote Desktop cannot verify the identity of the remote computer because there is a time or date difference between your computer and the remote computer.”
I had to go to the Hyper-V host and connect to the virtual machine to get in. When I did, I saw that the network adapter’s DNS was still set to Automatic even though the Windows Server LAN Configuration service was running. I had to restart that service to get it to populate the client’s DNS with the server’s IP. Once that was done, I was able to connect via Remote Desktop and the 3CX services start automatically on boot.
The addition of your gateway as the DNS forwarder is part of Essentials, as Sean explains. It is also repeatedly set this way by ‘the server’ as you saw after a reboot.
It is done like this as this is the ‘lowest common denominator’ ie- all networks have a default gateway, and most, if not all, will provide some sort of DNS forwarding feature to the ISP (or it seems in the case of your router, to a configured IP)
Unfortunately the major downfall of Essentials of an OS, is these ‘Essentials Features’ things like the Connector software controlling a clients DNS Server setting, and this behavior you are seeing are all designed with a common goal, which is to make the server very easy to drop into an existing network and work with the server on a dynamic address. Bold ideas indeed, again, unfortunately they don’t work in all scenarios.
You should not worry that the router is set to use an alternate DNS source than the Essentials server, even that the clients pickup that DNS Server address via DHCP, because as Sean explains, the server itself should take care of that for you.
My script is what i considered to be a more effective solution.
Robert, thanks for the comment.
In the comments on Sean’s post, Sean specifically says that the auto-population of DNS “is nothing to do with SBS” (7/19/11) and “Windows DNS will automatically add forwarders to it’s DNS entry. I agree, very irritating, it’s not something the SBS team can control.” (5/31/12). So I went off looking for that as a “standard” DNS feature. I was hoping to find a service to disable or a check box to uncheck, but I couldn’t find any posts describing this as a DNS feature. I think Sean may be mistaken on that not being an SBS thing.
I had my router set up to provide fixed DNS: first the server’s IP, then the two DNS IPs of the ISP. This is the order in which I expect the server and the clients should resolve DNS. I’ve used it in the past when the router was the DHCP server, but then I didn’t have some genie updating the server’s forwarders on every boot.
I kinda get the “lowest common denominator” idea, so I have now removed my server’s IP from the router’s list of DNS servers. If that doesn’t work, I may come back to your script.