I don’t know what else to do. There is just my modem, 2 routers (each configured with an external static ip and connected to a lan card with an internal ip) and my server. I don’t have any other hardware in between. Port 53 is opened in both TCP and UDP.
Is the IP 173.243.94.194 correct? Is that your router? Double-check if you forwarded port 53 TCP AND UDP in your router to the LAN IP of your BIND server. (DNS uses UDP for regular queries.)
Since you already verified before that something is listening on port 53 on your server, and that iptables isn’t blocking the port, that’s all I can think of. You might want to check the syslog at the time of failed query too. To additionally print the process name that’s listening on ports, do netstat -pln | grep :53
But, I have 2 external IP’s assigned to my nameservers: ns1.pcelements.com 173.243.84.34 - IP configured in router A
and ns2.pcelements.com 173.243.94.194 - IP configured in router B
Yes, I can ping from the server to router B )10.0.1.1). I changed the broadcast address on eth3 to 10.0.1.255 and did a reboot on the server, but no change.
I’m getting this output for tcpdump udp port 53:
tcpdump: USB link-layer type filtering not implemented
So, I used this one that I found on Google, although I don’t know if this is what you wanted:
tcpdump -i eth3 port 53
and the output is:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth3, link-type EN10MB (Ethernet), capture size 65535 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
[root@apollo ~]# tcpdump -i eth3 port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth3, link-type EN10MB (Ethernet), capture size 65535 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
Right, you have to tell tcpdump what interface to listen on.
But unfortunately, I’m out of ideas here. All I can say is that for some reason, the DNS query packets don’t reach your server. They are filtered somewhere (it’s possible your ISP does so, for security reasons, i.e. filter DNS packets that aren’t replies to queries by you, after all you’re probably an end user and not a server operator) or not forwarded properly by your router. All I can suggest is to re-check the router in this regard. Maybe someone else can give some more input about this.
I fear this issue is getting too complex for me to try and solve by “remote guessing”. If you’d like, I can offer you personal support by taking a look at your system myself: http://www.virtualmin.com/node/29342
Also, under System Settings -> Re-Check Configuration, I get the following message:
Default IP address is set to 10.0.0.100, but the detected external address is actually 173.243.84.34. This is typically the result of being behind a NAT firewall, and should be corrected on the module configuration page.
I guess both errors are related, but I don’t want to mess up my server this time. Can you guide me so I can solve this?
Thanks!
I figured it out.
In Virtualmin-System Settings-Virtualmin Configuration-Network Settings changed from Default IP Address for DNS Records from –Same as Virtual IP to Automatically Detect external Address.
I deleted the virtual server and created it again.
Works Perfectly! I really appreciate all your help!!!
Thank You!!!