[Samba] IP aliases of DCs to prevent DNS timeouts

vincent at cojot.name vincent at cojot.name
Fri Apr 27 16:07:23 UTC 2018


Hi All,

In my environment, I have a total of 4 DCs (Samba 4.7.6) running in VMs. 
Their uptime schedule goes like this:
dc00 : usually 100% unless there's a failure.
dc01 : same as above
dc02 : a few days per week.
dc03 : a few days per month.

This has the consequence that a DNS A lookup on the AD domain shows 4 IPs, 
2 of which are usually not up.

Because I don't have shared storage in this setup and since all of the 
VM's hosting the DC's are orchestrated externally, I decided to come up 
with the following sequence:

- When any of dc01, dc02 or dc03 goes down, relocate its IP on dc00 so 
that the IP address answers DNS on behalf of the dc that's down.
- When the VM comes back up, remove the IP alias from dc00 and let the VM 
grab it.

On a normal given day, when dc02 and dc03 are both down, this is what it 
looks like on dc00:

# ip -4 -o a|cut -c-60
1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft for
4: bond0    inet 10.0.131.248/22 brd 10.0.131.255 scope glob	# < dc00's main IP.
4: bond0    inet 10.0.131.250/22 scope global secondary bond	# < dc02's main IP. 
4: bond0    inet 10.0.131.251/22 scope global secondary bond	# < dc03's main IP.

While this appears to work fine and solves the DNS issue of hanging on DNS 
requests, I'm wondering if this might be causing problems in the future or 
induce issues that I wouldn't be having if I only had two DC's instead.
I think DRS replication would probably be impacted but since it 
negociates a p-to-p channel with its peer(s) I don't think it would cause 
corruption.

Also, one thing to note is that this forced me to move from the 
SAMBA_INTERNAL DNS backend to BIND9_DLZ so that bind would be able to 
answer DNS queries on IP aliases. (otherwise nslookup complained that I 
asked 10.0.131.251 but it was a different IP that answered).

Any guidance welcomed. :)

Vincent



More information about the samba mailing list