1) dig does not interrogate /etc/hosts. To do that you can try a "ping 184.108.40.206" to see if it finds your host.
Note: for this to find your hosts file you have to have an entry in /etc/nsswitch.conf like:
That tells it to search your /etc/hosts file first then look in dns.
2) For reverse dig lookups you have to do "dig -x 220.127.116.11".
3) BIND DNS has to have a forward zone like the one you have AND a reverse ARPA zone that has PTR records equating IPs to names.
For example an arpa for "localhost" might be named "arpa.127.0.0" and contain entries like:
@ IN SOA localhost. root.localhost. (
2006012601 ; serial
10800 ; refresh
3600 ; retry
604800 ; expire
86400 ) ; default_ttl
1 PTR localhost.
A dig -x 127.0.0.1 would return:
; <<>> DiG 9.3.4-P1 <<>> -x 127.0.0.1
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29466
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;18.104.22.168.in-addr.arpa. IN PTR
;; ANSWER SECTION:
22.214.171.124.in-addr.arpa. 86400 IN PTR localhost.
;; AUTHORITY SECTION:
0.0.127.in-addr.arpa. 86400 IN NS localhost.
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Oct 27 16:13:04 2010
;; MSG SIZE rcvd: 77