DNS Resolver Host Override not working in Windows
-
I have DNS Resolver -> Host Override setup in pfSense like this:
ShawnHome.mydomain.com ------------------- 192.168.100.100 (LAN IP)
I tested in pfsense -> Diagnostics -> DNS Lookup, and it works. (see the screenshot below)
However, when I go to my Windows box in the same LAN subnet, it doesn’t work.
It shows:
Server: UnKnown
Address: 192.168.100.2
*** UnKnown can't find 192.168.100.100: Non-existent domainBut I have checked the DNS by command “ipconfig /all” and it shows the DNS as 192.168.100.2, which is my pfsense IP. What did do wrong?
-
You do understand looking for a IP would be PTR, so you would have to do a ptr query.. not a query for A..
So depending on what version of nslookup, what specific os your on.. then yeah you could have problems with that.
For example - here is dig
Get back NX; <<>> DiG 9.14.1 <<>> 192.168.9.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61434 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;192.168.9.100. IN A ;; AUTHORITY SECTION: . 3376 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2019043000 1800 900 604800 86400 ;; Query time: 62 msec ;; SERVER: 192.168.3.10#53(192.168.3.10) ;; WHEN: Tue Apr 30 11:20:17 Central Daylight Time 2019 ;; MSG SIZE rcvd: 117
But if do a PTR for it, then it comes back fine.
; <<>> DiG 9.14.1 <<>> -x 192.168.9.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43854 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;100.9.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.9.168.192.in-addr.arpa. 2264 IN PTR i5-win.local.lan. ;; Query time: 9 msec ;; SERVER: 192.168.3.10#53(192.168.3.10) ;; WHEN: Tue Apr 30 11:22:17 Central Daylight Time 2019 ;; MSG SIZE rcvd: 85
You clearly have something not right when you do not come back with your NS name via nslookup
C:\>nslookup Default Server: pi-hole.local.lan Address: 192.168.3.10 > server 192.168.9.253 Default Server: sg4860.local.lan Address: 192.168.9.253
So for example set debug in nslookup - and then ask for IP, and it auto does PTR query
C:\>nslookup Default Server: pi-hole.local.lan Address: 192.168.3.10 > set debug > 192.168.9.100 Server: pi-hole.local.lan Address: 192.168.3.10 ------------ Got answer: HEADER: opcode = QUERY, id = 2, rcode = NOERROR header flags: response, want recursion, recursion avail. questions = 1, answers = 1, authority records = 0, additional = 0 QUESTIONS: 100.9.168.192.in-addr.arpa, type = PTR, class = IN ANSWERS: -> 100.9.168.192.in-addr.arpa name = i5-win.local.lan ttl = 2017 (33 mins 37 secs) ------------ Name: i5-win.local.lan Address: 192.168.9.100
-
Thank you for the reply!
My goal is to setup an internal FQDN with a LAN IP. Something like this:ShawnHome.mydomain.com <---> 192.168.100.100 (LAN IP)
So nslookup A or PTR should all be handled by the DNS Resolver Host Override.
Here is the nslookup debug:
c:\>nslookup 192.168.100.100 Server: UnKnown Address: 192.168.100.2 *** UnKnown can't find 192.168.100.100: Non-existent domain c:\>nslookup Default Server: UnKnown Address: 192.168.100.2 > set debug > 192.168.100.2 Server: UnKnown Address: 192.168.100.2 ------------ Got answer: HEADER: opcode = QUERY, id = 2, rcode = NXDOMAIN header flags: response, auth. answer, want recursion, recursion avail. questions = 1, answers = 0, authority records = 1, additional = 0 QUESTIONS: 2.100.168.192.in-addr.arpa, type = PTR, class = IN AUTHORITY RECORDS: -> 168.192.IN-ADDR.ARPA ttl = 86400 (1 day) primary name server = 168.192.IN-ADDR.ARPA responsible mail addr = (root) serial = 0 refresh = 28800 (8 hours) retry = 7200 (2 hours) expire = 604800 (7 days) default TTL = 86400 (1 day) ------------ *** UnKnown can't find 192.168.100.2: Non-existent domain >
I am running nslookup on a windows server btw. If I lookup the A record, it still doesn't shows the IP I setup in the Host Override, but the external IP address.
c:\>nslookup shawnhome.mydomain.com Server: UnKnown Address: 192.168.100.2 Non-authoritative answer: Name: mydomain.com Address: 99.x.x.x Aliases: shawnhome.mydomain.com
Funny thing is pfsense diagnostic shows host override working, but the windows nslookup doesn't use it to solve the dns, even though ipconfig shows the DNS is the pfsense box.
What else should I check? -
Post a screen of your host override definition. Are you running Resolver in forwarding mode?
-
@KOM said in DNS Resolver Host Override not working in Windows:
Post a screen of your host override definition. Are you running Resolver in forwarding mode?
I setup a facebook.com override just for testing and of course it doesn't work in windows either.
Question is, why does my Windows not taking the pfsense DNS?
-
Well, for the facebook example you're doing it wrong. The proper way to do it would be host = www, domain = facebook.com. In your example, you have facebook as the host and com as the domain which is incorrect. Now since facebook is doing a redirect, you would have to use resolver's Custom Options to redirect facebook.com to localhost:
server: local-zone: "facebook.com" redirect local-data: "facebook.com 3600 IN A 127.0.0.1"
-
Thanks for the reply, KOM!
OK, I changed the www.facebook.com entry and I also changed the IP.
It resolves perfectly in my pssense box, not my Windows. Why? -
You sure your not doing some sort of redirect on your lan rules? Sending your queries for dns somewhere else?
You can tell something is clearly wrong since you should resolve the PTR for that 192.168.100.2 to your pfsense name..
its really as simple as create the rule that is what answers both for A or ptr..
here..
> aaa.testdomain.com Server: sg4860.local.lan Address: 192.168.9.253 ------------ Got answer: HEADER: opcode = QUERY, id = 9, rcode = NXDOMAIN header flags: response, auth. answer, want recursion, recursion avail. questions = 1, answers = 0, authority records = 0, additional = 0 QUESTIONS: aaa.testdomain.com.local.lan, type = A, class = IN ------------ ------------ Got answer: HEADER: opcode = QUERY, id = 10, rcode = NXDOMAIN header flags: response, auth. answer, want recursion, recursion avail. questions = 1, answers = 0, authority records = 0, additional = 0 QUESTIONS: aaa.testdomain.com.local.lan, type = AAAA, class = IN ------------ ------------ Got answer: HEADER: opcode = QUERY, id = 11, rcode = NOERROR header flags: response, auth. answer, want recursion, recursion avail. questions = 1, answers = 1, authority records = 0, additional = 0 QUESTIONS: aaa.testdomain.com, type = A, class = IN ANSWERS: -> aaa.testdomain.com internet address = 100.100.100.100 ttl = 3600 (1 hour) ------------ ------------ Got answer: HEADER: opcode = QUERY, id = 12, rcode = NOERROR header flags: response, auth. answer, want recursion, recursion avail. questions = 1, answers = 0, authority records = 0, additional = 0 QUESTIONS: aaa.testdomain.com, type = AAAA, class = IN ------------ Name: aaa.testdomain.com Address: 100.100.100.100 > 100.100.100.100 Server: sg4860.local.lan Address: 192.168.9.253 ------------ Got answer: HEADER: opcode = QUERY, id = 13, rcode = NOERROR header flags: response, auth. answer, want recursion, recursion avail. questions = 1, answers = 1, authority records = 0, additional = 0 QUESTIONS: 100.100.100.100.in-addr.arpa, type = PTR, class = IN ANSWERS: -> 100.100.100.100.in-addr.arpa name = AAA.testdomain.com ttl = 3600 (1 hour) ------------ Name: AAA.testdomain.com Address: 100.100.100.100 >
You have anything in the customer box... I would up your logging to like 5, and set it to log queries and answers.
in custom option box
server: log-queries: yes log-replies: yes
Do your queries what do you see?
-
pfsense DNS resolver -> Customer Options is clear/empty.
Clearly, I know something is wrong, but I don't know where to troubleshoot other than ipconfig/all to check the DNS.
The only thing I can think of would be the VPN I installed, but it is disconnected now.When I do nslookup in windows, it shows:
Server: UnKnown Address: 192.168.100.2
So the address is correct and it should talk to my pfsense, right? Then why doesn't pfsense return the correct result as what shows in the Diagnostic box?
I can set the log level from 1 to 5. Then what?
BTW, I am new to pfsense, and I am not a network guru...
-
If you were asking pfsense for its own name which is what the 192.168.100.2 is then it would be answering.
Yes a VPN policy route rule could keep it from talking to pfsense - please post up your lan rules, do you have any floating rules. Your not doing any port forwards on your lan interface are you?
Logging in unbound will show us that it actually got asked... For example
Apr 30 13:34:05 unbound 42007:1 info: 192.168.9.100 aaa.testdomain.com. A IN NOERROR 0.000000 1 63 Apr 30 13:34:05 unbound 42007:1 info: 192.168.9.100 aaa.testdomain.com. A IN
here is where I asked for aaa.testdomain.com who asked 192.168.9.100, and that it was answered..
My guess is your not asking unbound on pfsense at all, or its totally borked. Did you mess with the ACLs?
My guess is your redirecting to something other than pfsense for dns.
BTW, I am new to pfsense, and I am not a network guru...
hehe - don't worry that pretty clear from the get go ;) hehehehe
-
Firewall Floating rules is empty.
How do I post my lan rules?
NAT/Port Forwarding:
YES! I do a lot NAT to route the traffic on WAN, but nothing on LAN interface, and nothing about 53 port to mess up the DNS.The logs at "Status/System Logs/System/DNS Resolver" are massive but doesn't show anything when do nslookup in windows.
Not sure what ACLs is. Guess I am not using it.
Also, I can browse Internet on this Windows box without any problems. So some DNS must be working...
-
@shawn8888 said in DNS Resolver Host Override not working in Windows:
How do I post my lan rules?
Simple screenshot works best..
So are you logs over flowing? Turn the logging down back to 1 and just leave in my
server: log-queries: yes log-replies: yes
In the custom option box.. you should then see the queries your clients are asking for... If your NOT... then unbound is not being asked - for whatever reason that is... pfsense is no actually 192.168.100.2 - there is a different 192.168.100.2 on your network? You have some rule forcing dns out some other path, etc. etc.
But if unbound doesn't actually get asked, then its not possible for it to return your overrides.
So some DNS must be working...
Doesn't have to be pfsense, could be proxy your using as well..
-
OK, Here is the LAN rules:
DNS Resolver -> Display Custom Options
I input the code below as you requested:server: log-queries: yes log-replies: yes
So I went to pfSense Diagnostics -> dns lookup
And I got this in my log:Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 . NS IN Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 . NS IN NOERROR 0.000000 1 228 Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 www.facebook.com. A IN Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 www.facebook.com. A IN NOERROR 0.000000 1 50 Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 www.facebook.com. AAAA IN Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 www.facebook.com. AAAA IN NOERROR 0.000000 1 34 Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 www.facebook.com.phub.net.cable.rogers.com. AAAA IN Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 www.facebook.com.phub.net.cable.rogers.com. AAAA IN NXDOMAIN 0.000000 1 121 Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 www.facebook.com. CNAME IN Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 www.facebook.com. CNAME IN NOERROR 0.000000 1 34 Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 www.facebook.com.phub.net.cable.rogers.com. CNAME IN Apr 30 15:22:45 unbound 83793:0 info: 127.0.0.1 www.facebook.com.phub.net.cable.rogers.com. CNAME IN NXDOMAIN 0.000000 1 121
However, when I do nslookup in Windows, I got nothing!
But I can ping 192.168.100.2.
c:\>ping 192.168.100.2 Pinging 192.168.100.2 with 32 bytes of data: Reply from 192.168.100.2: bytes=32 time<1ms TTL=64 Reply from 192.168.100.2: bytes=32 time<1ms TTL=64 Reply from 192.168.100.2: bytes=32 time<1ms TTL=64 Reply from 192.168.100.2: bytes=32 time<1ms TTL=64 Ping statistics for 192.168.100.2: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
Any other ideas?
-
well if unbound is not showing you that it got asked, then it didn't get asked.
How exactly is this box your doing the queries from connected to pfsense that is on 192.168.100.2?
Look in your windows arp table on windows - the mac is pfsense mac?
example
$ arp -a Interface: 192.168.9.100 --- 0x10 Internet Address Physical Address Type 192.168.9.3 00-08-a2-0c-e6-24 dynamic 192.168.9.10 00-11-32-7b-29-7d dynamic 192.168.9.11 00-11-32-7b-29-7e dynamic 192.168.9.65 02-11-32-29-00-3b dynamic 192.168.9.99 70-6e-6d-f3-11-93 dynamic 192.168.9.101 00-13-3b-2f-67-63 dynamic 192.168.9.201 00-13-3b-2f-67-63 dynamic 192.168.9.206 00-21-70-7b-a9-a7 dynamic 192.168.9.253 00-08-a2-0c-e6-24 dynamic
My pfsense is that .253 -- and that is its mac..
look on your status interfaces page
LAN Interface (lan, igb0) Status up MAC Address 00:08:a2:0c:e6:24 - ADI Engineering IPv4 Address 192.168.9.253 Subnet mask IPv4 255.255.255.0
If that shows valid - you sure yoru box is not running something that is hijacking your dns queries..
Run a sniff on your box when you dns query.. Wireshark is free and easy to use - install it on your windows machine... Do some nslookups like you were doing and then post up the pcap so we can take a look..
-
Here is the arp. I have installed vmware workstation, so there are some v-NICs
c:\>arp -a Interface: 192.168.193.1 --- 0x4 Internet Address Physical Address Type 192.168.193.254 00-50-56-f8-2e-d8 dynamic 192.168.193.255 ff-ff-ff-ff-ff-ff static 224.0.0.2 01-00-5e-00-00-02 static 224.0.0.22 01-00-5e-00-00-16 static 224.0.0.251 01-00-5e-00-00-fb static 224.0.0.252 01-00-5e-00-00-fc static 230.0.0.1 01-00-5e-00-00-01 static 234.48.35.103 01-00-5e-30-23-67 static 239.192.152.143 01-00-5e-40-98-8f static 239.255.255.250 01-00-5e-7f-ff-fa static 255.255.255.255 ff-ff-ff-ff-ff-ff static Interface: 192.168.100.100 --- 0x7 Internet Address Physical Address Type 192.168.100.1 c0-c1-c0-7d-dd-22 dynamic 192.168.100.2 00-50-56-9a-31-cd dynamic 192.168.100.3 94-0c-6d-1b-08-8e dynamic 192.168.100.52 a4-e4-b8-6c-55-b4 dynamic 192.168.100.103 74-d4-35-07-1f-b5 dynamic 192.168.100.140 00-0c-29-a9-96-19 dynamic 192.168.100.150 18-03-73-cf-7e-1e dynamic 192.168.100.151 00-0c-29-13-e6-79 dynamic 192.168.100.155 00-11-32-2c-a6-03 dynamic 192.168.100.190 00-0c-29-82-d9-11 dynamic 192.168.100.255 ff-ff-ff-ff-ff-ff static 224.0.0.2 01-00-5e-00-00-02 static 224.0.0.22 01-00-5e-00-00-16 static 224.0.0.251 01-00-5e-00-00-fb static 224.0.0.252 01-00-5e-00-00-fc static 230.0.0.1 01-00-5e-00-00-01 static 234.48.35.103 01-00-5e-30-23-67 static 239.192.152.143 01-00-5e-40-98-8f static 239.255.255.250 01-00-5e-7f-ff-fa static 255.255.255.255 ff-ff-ff-ff-ff-ff static Interface: 169.254.54.84 --- 0x12 Internet Address Physical Address Type 169.254.255.255 ff-ff-ff-ff-ff-ff static 224.0.0.2 01-00-5e-00-00-02 static 224.0.0.22 01-00-5e-00-00-16 static 224.0.0.251 01-00-5e-00-00-fb static 224.0.0.252 01-00-5e-00-00-fc static 230.0.0.1 01-00-5e-00-00-01 static 234.48.35.103 01-00-5e-30-23-67 static 239.192.152.143 01-00-5e-40-98-8f static 239.255.255.250 01-00-5e-7f-ff-fa static 255.255.255.255 ff-ff-ff-ff-ff-ff static c:\>
My pfsense runs on a ESXi host as a VM. And the MAC is 00-50-56-9a-31-cd, which seems correct.
I have never tried Wireshark before and I will post the log as soon as I can.
-
Here is some log from Wireshark when I did a
c:\>nslookup www.facebook.com Server: UnKnown Address: 192.168.100.2 Non-authoritative answer: Name: star-mini.c10r.facebook.com Addresses: 2a03:2880:f105:83:face:b00c:0:25de 157.240.12.35 Aliases: www.facebook.com
From the log, I can read that my Windows (100.100) DID talk to pfsense (100.2), but not handled by unbound.
One more thing to mention, I did install BIND for some testing before, but it is disabled, same with DNS forwarder. Only DNS Resolver is enabled right now.
-
OK, you're definitely talking to pfsense for DNS. You queried it for www.facebook.com and it returned a result for both IPv4 and IPv6. Did you add the host override for www.facebook.com?
-
@KOM
Yes!
And for testing and fun, I disabled DNS resolver and run nslookup in Windows, and still able to resolve. Does that make any sense?
c:\>ipconfig /flushdns Windows IP Configuration Successfully flushed the DNS Resolver Cache. c:\>nslookup www.facebook.com Server: UnKnown Address: 192.168.100.2 Non-authoritative answer: Name: star-mini.c10r.facebook.com Addresses: 2a03:2880:f10e:83:face:b00c:0:25de 157.240.14.35 Aliases: www.facebook.com
-
So you have something else listening on 53 on pfsense then and not unbound..
lets see what is listening on 53
[2.4.4-RELEASE][admin@sg4860.local.lan]/: sockstat | grep :53 unbound unbound 42007 3 udp4 192.168.3.253:53 *:* unbound unbound 42007 4 tcp4 192.168.3.253:53 *:* unbound unbound 42007 5 udp6 2001:470:snipped:3::253:53 *:* unbound unbound 42007 6 tcp6 2001:470:snipped:3::253:53 *:* unbound unbound 42007 7 udp4 192.168.9.253:53 *:* unbound unbound 42007 8 tcp4 192.168.9.253:53 *:* unbound unbound 42007 9 udp4 192.168.2.253:53 *:* unbound unbound 42007 10 tcp4 192.168.2.253:53 *:* unbound unbound 42007 11 udp4 192.168.6.253:53 *:* unbound unbound 42007 14 tcp4 192.168.6.253:53 *:* unbound unbound 42007 15 udp4 192.168.4.253:53 *:* unbound unbound 42007 16 tcp4 192.168.4.253:53 *:* unbound unbound 42007 17 udp4 192.168.7.253:53 *:* unbound unbound 42007 18 tcp4 192.168.7.253:53 *:* unbound unbound 42007 19 udp4 127.0.0.1:53 *:* unbound unbound 42007 20 tcp4 127.0.0.1:53 *:* unbound unbound 42007 21 udp6 ::1:53 *:* unbound unbound 42007 22 tcp6 ::1:53 *:* [2.4.4-RELEASE][admin@sg4860.local.lan]/:
-
@johnpoz said in DNS Resolver Host Override not working in Windows:
sockstat | grep :53
You are right. seems BIND is running.
But I checked the settings and it's disabled.
And what is this "named"???