Bug 50560 - Samba 4.19.6 не правильная работа с DNS
Summary: Samba 4.19.6 не правильная работа с DNS
Status: NEW
Alias: None
Product: Branch p10
Classification: Unclassified
Component: samba (show other bugs)
Version: не указана
Hardware: x86_64 Linux
: P5 blocker
Assignee: Evgeny Sinelnikov
QA Contact: qa-p10@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-06-06 18:29 MSK by Ярослав Белых
Modified: 2024-06-11 16:11 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ярослав Белых 2024-06-06 18:29:50 MSK
Добрый день.
В Samba 4.19.6 в режиме контроллера домена Samba AD выявлены несколько ошибок при работе с DNS.
I. При миграции FSMO ролей не обновляется запись DNS _ldap._tcp.pdc._msdcs.domain.loc (где domain.loc -FQDN домена).
Если выполнить принудительное пересоздание записей DNS, то создается вторая запись _ldap._tcp.pdc._msdcs.domain.loc

Способ воспроизведения:
Проверяем записи DNS
# samba-tool dns query localhost _msdcs.pak-patriot.ru _tcp.pdc SRV -P
  Name=, Records=0, Children=0
  Name=_ldap, Records=1, Children=0
    SRV: dc01.domain.loc. (389, 0, 100) (flags=f0, serial=1, ttl=900)

Проверяем FSMO роли
# samba-tool fsmo show
SchemaMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc

Допустим на dc02 мы выполняем миграцию DSMO ролей
samba-tool fsmo transfer --role=all -U administrator
 
После выполнение операции, получаем 
# samba-tool fsmo show
SchemaMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc
ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=loc

Проверяем записи DNS
# samba-tool dns query localhost _msdcs.pak-patriot.ru _tcp.pdc SRV -P
  Name=, Records=0, Children=0
  Name=_ldap, Records=1, Children=0
    SRV: dc01.domain.loc. (389, 0, 100) (flags=f0, serial=1, ttl=900)

Запись DNS не изменилась.
Данная ошибка приводит к тому, что при запросе операций, которые должны выполнятся на контроллере домена с ролями PDC, обращения клиентов или доверенных серверов будет происходит не на тот контроллер домена. А если контроллер домена DC01 будет удален, то домен останется вообще без записей PDC в DNS, что приведет к проблемам при обслуживание домена с помощью утилит RSAT, не будет работать доверие...

Если на dc02 выполнить операцию принудительного создания записей DNS для контроллера домена, то будет создана вторая запись _ldap._tcp.pdc._msdcs.domain.loc

Способ воспроизведения:
# samba_dnsupdate --verbose --all-names
Проверяем записи DNS
# samba-tool dns query localhost _msdcs.pak-patriot.ru _tcp.pdc SRV -P
  Name=, Records=0, Children=0
  Name=_ldap, Records=2, Children=0
    SRV: dc01.domain.loc. (389, 0, 100) (flags=f0, serial=1, ttl=900)
    SRV: dc02.domain.loc. (389, 0, 100) (flags=f0, serial=1, ttl=900)

Если удалить запись для dc01, то домен будет работать нормально.
Однако, такое поведение изначально не допустимо.

II. Не создаются SRV записи корневая запись типа A для нового контроллера домена.

Способ воспроизведения.
В домен, где все контроллеры находятся под управлением Samba DC AD 4.19.6, обновленные с предыдущих версий (в частности 4.14.10) вводится новый контроллер домена на Samba 4.19.6. Для него не создаются SRV записи, а так же запись типа A для имени, совпадающей с именем основная зоны domain.loc.

C Уважением,
Ярослав Белых
Comment 1 Nikolai Zurabishvili 2024-06-11 16:11:29 MSK
samba-4.19.6-alt2

Стенды (обновлены до p10):

Server 10.2 office x86-64 - dc и dc2

Условия:
Настроен контроллер домена и реплика samba AD с BIND9_DLZ

Шаги:
1. Проверить запись DNS

# samba-tool dns query localhost _msdcs.samba.testdomain _tcp.pdc SRV -P
  Name=, Records=0, Children=0
  Name=_ldap, Records=1, Children=0
    SRV: dc.samba.testdomain. (389, 0, 100) (flags=f0, serial=110, ttl=900)
2. На dc2 выполнить # samba-tool fsmo transfer --role=all -U administrator
3. Проверить запись DNS # samba-tool dns query localhost _msdcs.samba.testdomain _tcp.pdc SRV -P

Фактический результат: Запись не изменилась 

Ожидаемый результат: Запись изменилась:
# samba-tool dns query localhost _msdcs.samba.testdomain _tcp.pdc SRV -P
  Name=, Records=0, Children=0
  Name=_ldap, Records=2, Children=0
    SRV: dc.samba.testdomain. (389, 0, 100) (flags=f0, serial=110, ttl=900)
    SRV: dc2.samba.testdomain. (389, 0, 100) (flags=f0, serial=110, ttl=900)

Доп: # samba_dnsupdate --verbose --all-names добавляет новую запись dns