I have Ubuntu 12.04 with BIND9, working just as a caching server (forwarding to 8.8.8.8).When I use, for example, dig +norecurse @l.root-servers.net www.uniroma1.it, I obtain the following output; <<>> DiG 9.8.1-P1 <<>> +norecurse @l.root-servers.net www.uniroma1.it; (1 server found);; global options: +cmd;; connection timed out; no servers could be reachedUsing Wireshark I discovered that the outgoing queries are correct, but there aren't any incoming answers. Why?P.S. Using simply dig www.uniroma1.it I obtain the correct answers.
dig @nameserver doesn't work
dns;bind
Your command works fine here.  My guess is that a firewall, either at your location or at your ISP, is blocking the DNS requests or responses.  The normal dig www.uniroma1.it likely works because said firewall is allowing requests to certain servers, like the ones provided by your ISP and maybe 8.8.8.8.