LINUX.ORG.RU
ФорумAdmin

Samba. BDC. Добавление машины.


0

0

Имеется две связных через VPN сети. В одном офисе есть PDC, в другом - BDC. Настроена репликация LDAP (syncrepl). PDC работает напрямую с provider LDAP, BDC - с customer.

При попытке добавления машины в домен __в сети с BDC__ стандартными средствами Windows оно пишет «не найдено имя пользователя». Добавление же машин в домен в главной, где находится PDC, сети происходит нормально.

На BDC /var/log/samba/log.machinename:

  _samr_create_user: Running the command `/usr/sbin/smbldap-useradd -t 5 -w "production02$"' gave 0 
[2010/02/28 20:51:52,  5] lib/username.c:Get_Pwnam_alloc(133) 
  Finding user PRODUCTION02$ 
[2010/02/28 20:51:52,  5] lib/username.c:Get_Pwnam_internals(77) 
  Trying _Get_Pwnam(), username as lowercase is production02$ 
[2010/02/28 20:51:52,  5] lib/username.c:Get_Pwnam_internals(85) 
  Trying _Get_Pwnam(), username as given is PRODUCTION02$ 
[2010/02/28 20:51:52,  5] lib/username.c:Get_Pwnam_internals(104) 
  Checking combinations of 0 uppercase letters in production02$ 
[2010/02/28 20:51:52,  5] lib/username.c:Get_Pwnam_internals(110) 
  Get_Pwnam_internals didn't find user [PRODUCTION02$]! 
[2010/02/28 20:51:52,  3] passdb/pdb_interface.c:pdb_default_create_user(353) 
  pdb_default_create_user: failed to create a new user structure: NT_STATUS_NO_SUCH_USER 

Как объяснил zgen (здоровья ему на многие лета) (http://www.linux.org.ru/jump-message.jsp?msgid=4598921&cid=4603301), после добавления скриптом smbldap-useradd некоторой стандартной информации в LDAP, samba ищет эту запись и вносит дополнительные, samba.scheme-специфичные аттрибуты. Как раз второй этам у ней и не удаётся.

Думается, что smbldap-useradd добавляет запись в LDAP, следуя редиректу, который посылает клиента на provider-LDAP, а вот сама samba пытается найти эту запись уже на своём, customer-LDAP сервере. Но на неё ещё ничего реплицироваться не успело.

Делаю, чтобы и BDC использовал первичный LDAP-сервер: меняю значения в smb.conf passdb backend и в /etc/smbldap-tools/smbldap.conf.

Проблема остаётся. Ничего не понимаю.

В итоге пришлось сам клиентский комп везти в главный офис и там его добавлять в домен (В LDAP-то я бы её ручками добавил, но не знаю, что и где надо дописывать во всякие реестры windows, чтобы оно увидело, что машина - вот в этом домене).

Вопрос: следует ли мне настраивать во втором офисе контроллер домена как BDC или сделать 2 PDC с репликацией LDAP? Или делать репликацию provider-provider ? Что именно меняет запись domain master в smb.conf с «yes» на «no»?

winbind не используется - всё через pam_ldap & nss_ldap. getent passwd везде нормально отрабатывает.

PDC smb.conf http://pastebin.com/kGWYU43e

BDC smb.conf http://pastebin.com/tVxdYH8X

Debian lenny.

Много неверно.

Думается, что smbldap-useradd добавляет запись в LDAP, следуя редиректу

скрипт должен добавлять в PDC, следуя логике настроек, где write д.б. master=provider, а read slave=customer (хотя можно тоже provider, только зачем?).

smbldap-useradd вообще не следует никаким редиректам, это в нем в принципе не реализовано (лень искать ссылку в доку, где это английским по белому написано), он просто добавляет туда, куда ему сказали.

samba ищет эту запись и вносит ... Как раз второй этам у ней и не удаётся.

Ессно, это очень-очень правильно с ее стороны, иначе в случае проблем с репликой результат будет устрашающий. Тут несколько этапов:

1) smbldap добавляет базовый maccount в provider
n) тут_процесс_реплики_в_customer_занимающий_время
2) samba тут же ищет maccount в customer и почему-то не находит, первое, что приходит в голову - это банально - реплика еще не дошла, т.е. в customer банально такой записи еще нет
3) облом

Еще вариант - это криво-криво настроенный lookup на BDC - тут вариантов кривости так много, что писать их все не имеет смысла.

Что же касается описанного, то правильный процесс идет так:

1) smbldap добавляет базовый maccount в provider
n) тут_процесс_реплики_в_customer_занимающий_время
2) samba ждет N sec, затем ищет maccount в customer
3) Найдя, пытается менять запись maccount в customer, но получает error и ссылку на provider
4) идет на provider и меняет запись там.
n) тут_процесс_реплики_в_customer_занимающий_время
5) ждет, затем проверяет что запись и нужные ей поля добавлены
6) возвращает success.

За время ожидания перед поиском отвечает параметр smb.conf (не путать с -t у smbldap, он тоже нужен):
http://smb-conf.ru/ldap-replication-sleep-g.html

И время синхронизировать не забудьте между серверами.

Вопрос: следует ли мне настраивать во втором офисе контроллер домена как BDC или сделать 2 PDC с репликацией LDAP?


Это каждый выбирает сам, если схема такая, что в каждом офисе кроме главного - только один контроллер домена, то лучше делать PDC/PDC (в случае, если 2 - то pdc+bdc), но у каждого д.б. своя база. У того, кто в этой схеме псевдо BDC она д.б. в ro с ref на provider - это даст возможность не ломаться в случае, если vpn вдруг пропал - чтение будет локально, и только запись (изменения паролей пользователя или динамическая смена ключей у maccounts)будет отключаться.

Что именно меняет запись domain master в smb.conf с «yes» на «no»?

В доке ведь написано, почему не читаем?

The option domain master specifies to set nmbd, the Samba server daemon, as a domain master browser for its given workgroup. This option usually must be set to Yes only on one Samba server for all other Samba servers on the same network and workgroup.

В конфиги не смотрел - времени очень мало. Как настраивать LDAP тоже не пишу:

1) Я на syncrepl еще не перешел
2) Времени объяснять банальные вещи пока нет.

Надеюсь чем-то помог.

zgen ★★★★★
()
Ответ на: комментарий от zgen

>master=provider, а read slave=customer
Да, так всё и настроено.

За время ожидания перед поиском отвечает параметр smb.conf (не путать с -t у smbldap, он тоже нужен)

У меня он установлен в 5000 (5 секунд), а репликация проходит каждые 2 минуты. Наверное, в этом косяк, но вот, как я уже писал, что даже при указании и для samba и для smbtools главный LDAP-сервер в качестве единственного хранилища всё= попытки добавить компьютер заканчивается неудачей.
Нужно попробовать установить большие слипы для самбы. Или форсировать реплику. Как-то там это в syncrepl можно было.

Спасибо за объяснения.

markevichus ★★★
() автор топика
Ответ на: комментарий от markevichus

но вот, как я уже писал, что даже при указании и для samba и для smbtools главный LDAP-сервер в качестве единственного хранилища всё= попытки добавить компьютер заканчивается неудачей.


А тут уже свой лог нужен, с PDC samba и ldap, в нем тоже можно посмотреть - какие запросы samba делает, и что именно не находит, обычно на этом этапе все или почти все становится понятно.

Нужно попробовать установить большие слипы для самбы.

больше 5 секунд нельзя, по крайней мере по документации.

Или форсировать реплику. Как-то там это в syncrepl можно было.

Я бы начал с простого. С того, почему в случае с одним PDC в главном офисе машина в домен не цепляется, а потом уже наворачивали бы реплику и прочую муть.

zgen ★★★★★
()
Ответ на: комментарий от markevichus

Кстати, если вы vpn только для samba поднимаете, то я бы например не стал - к LDAP обращения все равно внутри ssl, смысла кочевряжится с vpn нет.

zgen ★★★★★
()
Ответ на: комментарий от zgen

>Я бы начал с простого. С того, почему в случае с одним PDC в главном офисе машина в домен не цепляется

В главном офисе с PDC машина нормально добавляется. Мне сегодня пришлось тащить тачку из второго офиса, добавлять в главном и отвозить обратно. Сейчас она нормально работает во второй сети.

markevichus ★★★
() автор топика
Ответ на: комментарий от markevichus

Я не про это, а про то, что PDC в филиале с LDAP базой в главном офисе на RW проверять надо.

zgen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.