2

So I have a Server 2008 machine which also acts as a PDC, and provides DNS to all other machines. Now, the server has 2 NICs, one on a 172.16.0.0/24 LAN, and one on a 192.168.47.0/24 LAN. Every other machine on the network has one NIC, and belongs to one network or the other.

DHCP is working fine, but hostname/DNS lookups using the server name of the PDC sometimes resolves to the wrong NIC.

Now, DNS does have hostname entries for the pdc for both addresses, but I can’t have a computer not on that network getting a resolved address it can’t reach.

Ex: Computer pdc1 has addresses 192.168.47.1 and 172.16.0.1. Client client1 has a NIC physically on the 192.168.47 network. For that reason, DHCP works fine, it gets an address. However, when it looks up the address for pdc1, it gets 172.16.0.1, which isnt reachable and causes lots of problems.

My question is, what is the standard way to prevent this situation? I know I’m not the only one with a PDC on separate NICs, where the client computers need to look up the server name and get the address on the network it’s actually on.

I know a cheap solution is to add the correct address to each clients host file, but this is a workaround since the relationship is now managed on each client pc and not the domain controller.

Any tips are appreciated!

13
  • 2
    My question is, what is the standard way to prevent this situation? - Connect the server only to one of the networks and use routing to facilitate communication with the other network.
    – joeqwerty
    Jan 7, 2018 at 18:14
  • FYI there is no such thing as a PDC anymore. Now they are FSMO Role Masters. Jan 7, 2018 at 19:32
  • @joeqwerty Or connect the server to both networks and configure routing properly.
    – kasperd
    Jan 7, 2018 at 23:42
  • @kasperd what do you mean by configure the routing? Packets are already implicitly routed through the correct nic on the server to make it to the client machine. It's not like I'm losing traffic, I'm just resolving the wrong lookup name for a particular client PC. How would the configuration of the routing table help hostname lookup?
    – prelic
    Jan 7, 2018 at 23:45
  • @joeqwerty that really isn't an option, and even if it were, having multiple servers just so each can only be connected to one LAN doesn't really seem like the right solution.
    – prelic
    Jan 7, 2018 at 23:46

3 Answers 3

3

By default Microsoft DNS server use round robin when serving DNS queries. It means it returns one or another address in circural fashion. In your case, you should reconfigure it to use network prioritization, according to this document:

DNS subnet priorities

3
  • 1
    I thought dns priorities would just prefer one over any other, but it seems like it prioritizes based on similarity to the originating requesting computers IP address. Is that right? That might be just what I need.
    – prelic
    Jan 7, 2018 at 18:42
  • Yes, similarity is taken into account, on ip or mask level
    – kakaz
    Jan 7, 2018 at 18:43
  • That seems like exactly what I need, thanks. Marked as answered.
    – prelic
    Jan 7, 2018 at 18:49
0

what is the standard way to prevent this situation?

Do not use multihome, use routing to ... route between Networks.

1
  • I don't think this about routing. If I only have one computer, and it has 2 LANs, and it's a DNS server, all I want is to know is which ip is chosen if I say "ping computername". Turns out it isn't some round robin thing, it has to do with network binding order. I don't think routing comes into play here. I'm not positive of that, but intuitively it doesn't make sense.
    – prelic
    Apr 14, 2018 at 0:53
0

I figured out that the order in which an IP is chosen during DNS host name lookup is based on the network adapter binding order. This seems to solve the issue.

1
  • AKA "routing" ...
    – bjoster
    Apr 16, 2018 at 10:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .