Moderator: Qbik Staff
adrien wrote:Hi
We've seen a couple of reports recently about DNS servers stopping responding to WinGate's DNS resolver.
Restarting the engine fixes it, so it seems to be something to do with the client port the resolver uses. It uses the same port for all requests / responses.
Packet captures show responses stop coming, although other responses from the same server to other processes on the WIngate computer show that the DNS server is still responsive.
We are wondering if some recent DNS server release now forces DNS resolvers to not reuse source ports due to DNS cache poisoning issues. It would be unfortunate if that were the
case, since cache poisoning can be addressed without randomising resolver source port.
Either that or some intermediary makes say a UDP connection entry invalid and requests stop making it out to the servers.
Does this happen from any particular version of WinGate onwards?
Regards
Adrien
adrien wrote:HI
I just read through the ticket.
So, are you saying that 6.0.3 works fine, but 6.5.2 / 6.5.3 do not?
If this is the case, then there is some other problem than the one we have been looking into, since the DNS resolver in 6.5.3 basically behaves the same way as 6.0.3.
I note you did some packet captures. There's one change we did for the resolver, relating to handling of ICMP errors on the resolver socket.
When you logged the packet capture, I think you only logged UDP/53 right? Could you repeat the capture but also log ICMP as well? That will show us if an ICMP dest unreachable error is being sent back to the DNS resolver port.
Hopefully we can solve this soon - if 6.0.3 worked and 6.5.2 doesn't that narrows down the scope considerably, especially since you don't have ENS installed.
Regards
Adrien
adrien wrote:Hi
We've seen a couple of reports recently about DNS servers stopping responding to WinGate's DNS resolver.
Restarting the engine fixes it, so it seems to be something to do with the client port the resolver uses. It uses the same port for all requests / responses.
Packet captures show responses stop coming, although other responses from the same server to other processes on the WIngate computer show that the DNS server is still responsive.
We are wondering if some recent DNS server release now forces DNS resolvers to not reuse source ports due to DNS cache poisoning issues. It would be unfortunate if that were the
case, since cache poisoning can be addressed without randomising resolver source port.
Either that or some intermediary makes say a UDP connection entry invalid and requests stop making it out to the servers.
Does this happen from any particular version of WinGate onwards?
Regards
Adrien
adrien wrote:If WinGate isn't directly connected to the internet, then DNS requests will be forwarded out to the internet (presumably to your ISP's DNS server) by some intermediary - a device that sits between WinGate and the internet connection.
If that device is dropping the DNS request packets after a while, that would also cause this. If you have such a device, was its firmware upgraded recently, or is it new?
Regards
Adrien
adrien wrote:Hi
have you checked with your ISP to see if they changed their DNS server software, or patched it about the time you started seeing these problems?
Regards
Adrien
adrien wrote:I'm just wondering if there is some other DNS server you can get WinGate to use.
From the packet captures you sent, it looks like after a while the DNS servers stop responding to WinGate's DNS resolver, but they don't stop responding to other DNS resolvers on the WinGate machine (e.g. the OS resolver, which your browser is using). So, the question is why do they stop responding only to the WinGate resolver?
The packet captures don't show any problem with the composition of the request packets formed by WinGate, so the only other main difference is that WinGate always uses the same socket to send all DNS queries, which means that all the DNS queries will come from the same source port.
The OS resolver on the other hand uses a new socket for every request, so the source port changes for each request.
So there are only a couple of possible options.
a) something between WinGate and your ISP decides it won't forward packets from that source port any more (e.g. the Netscreen)
b) your ISP DNS service decides it won't respond to that source port any more. If you explain your problem to them, they might be able to do something about it.
A quick fix could be as follows.
1. Get your AD DNS server to forward to your ISP DNS Server rather than WinGate. It will then use UDP NAT to do this, but sends each request on a new source port.
2. Get WinGate to use the AD DNS server.
Then the only DNS requests going out of your network will be from the AD DNS server.
Regards
Adrien
adrien wrote:do you have any other firewall software operating on the WinGate computer?
If you tried using a DNS server on your LAN, can you get a packet capture on that computer to make sure that the request packets are getting to it?
The problem with taking packet captures from the WinGate machine when looking for outbound (sent) packets, is that other firewall software may block a packet just after the packet capture software sees it, so you can't be certain if the packet went out on the ethernet or not. Capturing from another machine solves this, since if you see it, it must have been sent by the other computer.
Adrien
adrien wrote:are you going to use MS DNS server or some other?
If MS one, you need to configure the forwarders for it (it's different to the DNS settings for a NIC). Set that to the DNS servers that your WinGate computer is currently using, then set WinGate to use that new DNS server.
Regards
Adrien
adrien wrote:Hi
Which IP are you referring to? There are several.
1. The IP address that WinGate uses as it's DNS resolver
2. The IP address that the network cards on the WinGate machine use as their DNS resolver
3. The IP address that the DNS server you are installing will use as a forwarder
4. The IP address that the network cards on the new DNS server will use as their DNS resolver?
Normally in this case
1. Empty
2. The IP of the new DNS server
3. the IP addresses that WinGate currently uses (Primary DNS:202.96.128.166, Secondary DNS:202.96.128.86)
4. nomally 127.0.0.1 and this is normally set when you set up the DNS server
Regards
Adrien
Regards
Adrien
adrien wrote:Another option is to install the MS DNS server on the WinGate machine itself. That will save you adding another machine.
Then you would disable the DNS service in WinGate, and set the DNS server to use in the WinGate DNS resolver to the Internal IP address of the WinGate computer, so it uses the local DNS server.
That way the rest of your LAN can also use the MS DNS server, which supports more things than the WinGate one does, such as dynamic registration of records etc.
Adrien
adrien wrote:Hi
We've seen a couple of reports recently about DNS servers stopping responding to WinGate's DNS resolver.
Restarting the engine fixes it, so it seems to be something to do with the client port the resolver uses. It uses the same port for all requests / responses.
Packet captures show responses stop coming, although other responses from the same server to other processes on the WIngate computer show that the DNS server is still responsive.
We are wondering if some recent DNS server release now forces DNS resolvers to not reuse source ports due to DNS cache poisoning issues. It would be unfortunate if that were the
case, since cache poisoning can be addressed without randomising resolver source port.
Either that or some intermediary makes say a UDP connection entry invalid and requests stop making it out to the servers.
Does this happen from any particular version of WinGate onwards?
Regards
Adrien
Users browsing this forum: Google [Bot] and 3 guests