[Samba] which DNS backend ?

mathias dufresne infractory at gmail.com
Mon Mar 7 11:54:26 UTC 2016

2016-03-05 15:39 GMT+01:00 Allen Chen <achen at harbourfrontcentre.com>:

> On 3/5/2016 4:27 AM, Rowland penny wrote:
>> On 05/03/16 04:54, Allen Chen wrote:
>>> On 2/29/2016 4:10 AM, Rowland penny wrote:
>>>> On 28/02/16 23:05, Reindl Harald wrote:
>>>>> Am 28.02.2016 um 23:54 schrieb Rowland penny:
>>>>>> On 28/02/16 22:42, Reindl Harald wrote:
>>>>>>> Am 28.02.2016 um 23:10 schrieb Rowland penny:
>>>>>>>> On 28/02/16 21:56, Reindl Harald wrote:
>>>>>>>>> Am 28.02.2016 um 22:22 schrieb John Gardeniers:
>>>>>>>>>> Thanks Rowland. Perhaps because I expected these basic issues to
>>>>>>>>>> have
>>>>>>>>>> been resolved long ago I never thought to check the SOA records.
>>>>>>>>>> You are
>>>>>>>>>> perfectly correct - the second DC is not listed
>>>>>>>>> since when is more than one NS listed in the SOA?
>>>>>>>>> http://rscott.org/dns/soa.html
>>>>>>>>> MNAME ("Primary NS") - This entry is the domain name of the name
>>>>>>>>> server that was the original source of the data (this entry MUST be
>>>>>>>>> your primary nameserver). This is your primary nameserver, and
>>>>>>>>> MUST be
>>>>>>>>> the one and only server that you ever update. You must not update
>>>>>>>>> the
>>>>>>>>> secondary server(s) -- they will update automatically, based on
>>>>>>>>> this
>>>>>>>>> the SOA record. Problem? This should be a fully qualified domain
>>>>>>>>> name .
>>>>>>>>> OK, I see where you are coming from, but, this is referring to a
>>>>>>>> normal
>>>>>>>> dns server that replicates to other secondary dns servers. AD dns
>>>>>>>> works
>>>>>>>> a little differently, all AD dns servers replicate dns records to
>>>>>>>> each
>>>>>>>> other and each AD DC is supposed to be authoritative for the dns
>>>>>>>> domain,
>>>>>>>> this does not happen if your first DC goes down when you are using
>>>>>>>> the
>>>>>>>> internal dns server. As an aside, my first DC shutdown for some
>>>>>>>> reason,
>>>>>>>> I didn't notice for a couple of hours, until I tried to 'ssh' into
>>>>>>>> it, I
>>>>>>>> didn't notice because *everything* else just kept working on my
>>>>>>>> second DC
>>>>>>> well, that's not the business of the SOA record
>>>>>>> it's a matter of NS-records
>>>>>> If you only have one Authoritative nameserver (which is what you have
>>>>>> with the internal dns) and it disappears, then you don't have
>>>>>> *anything*
>>>>>> that will respond to a request for info about AD dns domain
>>>>> sorry, but that's not a matter of SOA
>>>>> all your NS-records are authoritative, no matter if the yare master or
>>>>> slave, the format of the SOA record is pretty clear
>>>>> https://support.dnsimple.com/articles/soa-record/
>>>>> ns1.dnsimple.com admin.dnsimple.com 2013022001 86400 7200 604800 300
>>>>> nothing will change the SOA format because it's defined far away from
>>>>> samba and the implementation https://www.ietf.org/rfc/rfc1912.txt
>>>>> otherwise show me how you imageine a SOA record listing more than one
>>>>> nameserver would look like when the second filed is by defintion the admin
>>>>> contact
>>>> Everything you say is valid except for when it comes to AD dns.
>>>> When you want data from a zone, you start with the SOA record, you ask
>>>> 'who holds the records for this zone?', it replies with the nameserver that
>>>> holds the zone records. OK so far ?
>>>> Only problem is that with AD, *every* DC that runs a dns server holds
>>>> the zone records. Now if you have only one NS record in the SOA (or if only
>>>> one NS record is returned, like the internal dns server does), then only
>>>> one DC will be asked for the zone records, if this DC is down, you don't
>>>> have a nameserver to ask!
>>>> Every windows DC that runs a dns server is authoritative for the dns
>>>> domain and has a SOA record. The only way I have found of doing this with a
>>>> Samba DC, is to use Bind9 and add the second DCs NS record to the SOA, this
>>>> SOA is stored in AD.
>>>> Rowland
>>>> When I read this discussion about DNS, I got my big problem fixed which
>>> involves two DCs(I use samba internal DNS).
>>> I want to share my experience with you:
>>> The big problem is when the first DC is down, users cannot log in to
>>> win7 machine, while the second DC is still working.
>>> The problem is that the internal DNS doesn't have a NS record for the
>>> second DC. After I use windows tool to add this record, shutdown the first
>>> DC and users can log in without any  issue.
>>> The SOA record is set up correctly when I build the DC. So nothing is
>>> wrong with the SOA stuff in samba internal DNS.
>>> Allen
>> Now that is interesting, when I tested, even when you added the second NS
>> record to the SOA, you only got one NS record (the first DC) and you
>> couldn't login anywhere if the first DC went down.
>> What version of Samba are you using ?
>> Rowland
>> It is Samba 4.1.13 on CentOS 6.2 32bit for both main site and remote site
> connected via OpenVPN.
> I get two NS records from any Linux system using this command:
> # dig NS mydomain.com @dc1
> and
> # dig NS mydomain.com @dc2
> What I understand is:
> 1. SOA record is used for zone transfer, and samba uses its on way to
> manage zone data.

SOA is used when nsupdate (or samba_dnsupdate which uses nsupdate by
default) to know where to push zone modification. This seems to me normal
as NS means a server you can trust to resolve names (authoritative for
replies) and SOA means a server you can use to push modification
(authoritative for modification).
This means your SOA is out of order, no DNS zone modification is possible.

> 2. in samba world, SOA is not that important, but you have to make sure
> the same SOA record is set up across all DCs.

As nsupdate is relying on SOA to push modifications, SOA is important, in
Samba too. Or I missed something...

>     This makes sense when the first DC is dead, the SOA still points to
> dead one, and for new added DC you make sure you have a NS record for the
> new one.

I expect with your DC tagged as SOA down you can't add new DC. You can add
them of course, but the process can't finish correctly as no SOA is there
to take in account DNS zone mods pushed by that new DC. No references in
DNS for a DC means a non-existent DC for clients. So the DC is not really

>     This will guarantee the name resolution is still working across all
> DCs. and it has nothing to do with SOA. right?

DNS resolution is guaranteed by a strong DNS infrastructure, well deployed,
well used. No matter NS or SOA for resolution IF your request reach a
server which know the whole zone you requested (which our case with AD when
we use AD DNS server as client resolver).

As I explained several time, for me, NS is used only when the DNS
configured on client side as resolver (ie in /etc/resolv.conf for instance)
is not able to resolve name AND don't know yet a NS to forward the request

1) non AD queries, NS can be used.
Client is configured with resolver = AD DNS server(s). No other DNS server
Client tries to resolve google.com which is not your AD domain.
AD DNS server receive a request to google.com, this server don't know
google.com. This server find a root server for NS of google.com zone.
AD DNS forward google.com request to one of google's name server, receives
the request, forward it to the client.

2) AD query to AD DNS server, no NS is used.
Client is configured with resolver = AD DNS server(s). No other DNS server
Client is configured with DC1 as first DNS resolver
Client is configured with DC2 as second DNS resolver
DC 1 and DC2 are AD DNS server.
Client request _ldap._tcp.samba.domain.tld, this request is sent to DC1,
the first server.
DC1 is out of order, DC1 don't reply.
Client time out.
Client send request to DC2
DC2 knows the answer, send it to the client.

>     Though I don't know if Samba DC uses SOA record or not. Maybe some one
> from dev can answer this.

nsupdate do. So samba_dnsupdate do to by default.

> 3. I use windows tool to manage site settings to keep remote site log in
> to remote dc, and main site log in to main dc.

Same here.

> 4. Windows clients use my company's DNS servers, and these DNS servers
> forward AD DC domain query to my two DCs.

That's what I've planed to do too. For now, as I'm still in tests, AD DNS
server forward to main DNS infra when needed.
Both are valid choices to me.

> 5. I use samba internal DNS

Bind ;)

> Allen

More information about the samba mailing list