Unable to ping domain.local, but can ping server.domain.local
It sounds like your clients aren't using your DCs for DNS. This is a requirement for things to function properly unless you've gone through very specific steps to offload name resolution to other servers.
Your Windows clients should point to your DC(s) and only your DC(s) for name resolution.
Try the following in a command prompt:
nslookup domain.local
What is the output?
Try a reverse lookup as well:
nslookup {ip}
What about:
nbtstat -a domain.local
If you try to connect to \\domain.local are you prompted for a Username or Password? Try connecting to potential shares on domain.local.
For example:
\\domain.local\ADMIN$
\\domain.local\C$
Are you prompted for a Username or Password when connecting to these shares? Are there even any shares on your domain controller? Maybe there are but have you allowed access to them? When attempting to connect to your domain controller (\\domain.local) it is quite possible (and makes sense) that your domain controller doesn't have any shares. Can other systems access those shares on \\domain.local?
Its important to understand that \\server.domain.local is completely different then \\domain.local. Those are 2 different servers you are connecting to (assuming \\server has a different A record than \\domain.local).
Just because you cant ping domain.local doesn't mean you are having connectivity issues. ICMP echo request/reply (depending on the environment) can either be on of off on the domain controller (hence you getting a reply or not). In my environment, I don't get a reply when I ping my DC.
Are other systems on your network experiencing similar issues with the server taking 30 secs to respond with an IP? There are a variety of potential culprits, but if the the issue is isolated to one system/subnet/etc., check the following:
Are you having issues connecting to other systems? Is there some kind of 3rd party firewall in place? (Zone alarm?) Check the event log on the DC... anything?
Give us as much information as you can, test from different systems to isolate the problem. Once you can determine there are shares, other systems can access them, etc etc etc. than we can determine what the potential root issue is.