PDA

Показать полную графическую версию : Samba + Nis + Wins, проблемы с разрешением имён хостов


hasherfrog
06-10-2005, 11:50
Сложная ситуация, попытаюсь подробно объяснить:

Сетка, маленькая, гетерогенная. DHCP нет, DNS нет, адреса статические. В качестве PDC, WINS и Master-browser'а выступает samba-2.2.7a-8.9.0. Имена хостов берутся через nis (с другой машины). В самбе включена поддержка wins-сервера и определён порядок разрешения имён так:
wins support = yes
name resolve order = hosts lmhosts wins bcast
По документации слово hosts подразумевает использование NIS. Файл lmhosts пустой (только локалхост), опции wins и bcast (по идее) вообще не должны задействоватся, всё уже разрешается на уровне hosts (кстати, попытка навязать ещё адреса в lmhosts ничего не дала).

Пинги по IP в сетке ходят нормально. А вот по именам - нет. На никсовых машинах всё работает, а в виндах...

На виндовых машинах в опциях TCP/IP определён WINS-сервер (машина с самбой). Все (вот тут внимание!) виндовые машины на пинг по именам откликаются, никсовые машины с самбой - откликаются, а вот никсовые (без самбы) и отключенные (но присутствующие в ypcat hosts записи) машины дают "неизвестный узел" через пару секунд. При пинге по IP с принудительным разрешением имён (ping -a IP) пинг проходит, но имя не резольвится.

Что это может быть? Почему такая странная ситуация. Есть дилетантское подозрение, что samba (как wins-сервер) возвращает машине (осуществляющей ping) нормальный IP по имени, но виндовая машина ещё и сама пытается выполнить броадкастовое разрешение имени по netbios-ssn (и обламывается). Бред, не обращайте внимания :]

Проблема не критична, можно и DNS какой0нибудь соорудить или ещё что-то проще, но хотелось бы узнать всё-таки причину происходящего.

mar
06-10-2005, 23:49
что-то из области бредятины :( Причем, очень похоже, что бредятина действительно виндовая - у них ведь, у зараз netbios (netbeue) с некоторых пор зашит вовнутрь намертво, - может действительно пытаются решить за всех все проблемы?.

hasherfrog
04-04-2006, 14:39
Забыл отписаться :]

Почти прав был.
Есть дилетантское подозрение, что samba (как wins-сервер) возвращает машине (осуществляющей ping) нормальный IP по имени, но виндовая машина ещё и сама пытается выполнить броадкастовое разрешение имени по netbios-ssn (и обламывается).
почти в том смысле, что броадкаст - да, был, но...

Фишка повторилась в другом месте, уже на Самбе 3.0.3-5, fedora core 2. На самом деле всё оказалось проще... Типа проще... %] Просмотр TCP-шных пакетов NetBios'а показал, что wins-сервер-то и не пашет вовсе :] А всё свелось к одной "кем-то забытой строке" в smb.conf:
dns proxy = no
По умолчанию ("dns proxy = yes") и wins-server эмулируется нормально.

Но вот возникла другая трабла.

Почему-то wins ни с того, ни с сего заимел привычку отключаться. Подозреваю, что это происходит по ночам (бу-у-у-у :]), когда Самба чего-то там проверяет и заново "снимает" состояние сети (в логах остаётся запись "вот я проверила, всё ништяк, я мастер домена", но нет надписи "я ещё и локал браузер мастер"). Почему так?

BuGfiX
04-04-2006, 18:01
Взято из man smb.conf:


os level (G)

This integer value controls what level Samba advertises itself as for browse
elections. The value of this parameter determines whether nmbd(8) has a chance
of becoming a local master browser for the workgroup in the local broadcast area.

Note :By default, Samba will win a local master browsing election over all Microsoft
operating systems except a Windows NT 4.0/2000 Domain Controller. This means
that a misconfigured Samba host can effectively isolate a subnet for browsing
purposes. This parameter is largely auto-configured in the Samba-3 release series
and it is seldom necessary to manually over-ride the default setting. Please refer to
chapter 9 of the Samba-3 HOWTO document for further information regarding the
use of this parameter.

Default: os level = 20

Example: os level = 65


В общем, попробуйте поставить os level побольше.

hasherfrog
04-04-2006, 20:58
Побольше, это сколько? :-) Уже 65. К тому же, в логах нет записей о "перевыборах" мастер-браузера. Боюсь, тут что-то другое. Я совсем недавно читал, что больше 32 компов в подсетке требуют ещё один wins-сервер. Я wins proxy один сделал сегодня, завтра посмотрим, что они вдвоём за ночь учудят...

Guest 80 247 100
05-04-2006, 12:07
hasherfrog
больше 32 компов в подсетке требуют ещё один wins-сервер
вроде нет, сейчас около 150 компов - wins-сервер один...

kim-aa
05-04-2006, 12:16
Почему-то wins ни с того, ни с сего заимел привычку отключаться. Подозреваю, что это происходит по ночам (бу-у-у-у :]), когда Самба чего-то там проверяет и заново "снимает" состояние сети (в логах остаётся запись "вот я проверила, всё ништяк, я мастер домена", но нет надписи "я ещё и локал браузер мастер"). Почему так?
smb.conf надо однако. Без него сапсем плохо видно, однако. Часть с пописанием шар, не надо, однако.

больше 32 компов в подсетке требуют ещё один wins-сервер
Брехня однако, Мастер Wins, все равно 1, остальные резервные.

mar
05-04-2006, 13:48
Я совсем недавно читал, что больше 32 компов в подсетке требуют ещё один wins-сервер.
а ссылку можно? я давно, конечно с самбой дела всерьез не имела, но не думаю, что это что-то новое? (Такого не помню)

hasherfrog
05-04-2006, 15:30
mar
тут: http://www.opennet.ru/base/net/samba_wins2.txt.html

kim-aa
:-)

Guest 80 247 100
Видимо, правильно говорить не "винс-сервер", а "бэкап-сервер" (статья).

P.S. а может, я вообще всё неправильно понял.
P.P.S. у меня обнаружился ещё один багззз, нарушено было "доверие" между двумя серверами (самбы разных версий), поправил, теперь жду следующей ночи :]

mar
05-04-2006, 15:40
а, так это backup browser.
Backup browser кэширует browsing lists у себя и инициирует
перевыборы, если не может найти master browser.
интересно, они сами себя такими назначают в ходе broadcast-запросов-выборов, или их надо такими делать, скажем, меняя os level ?

hasherfrog
05-04-2006, 16:18
Вот! Вот как раз интересно! Вроде как этих backup browser назначает сам "выбранный" master browser. Дальше - туман :]

тут (http://www.microsoft.com/resources/documentation/Windows/2000/server/reskit/en-us/Default.asp?url=/resources/documentation/Windows/2000/server/reskit/en-us/cnet/cnfi_brs_tbmu.asp)
Подозреваю, что [wins proxy = yes] как раз даёт самбовским машинам играть в игру "выбери меня backup-browser'ом". Потому что ключа реестра MaintainServerList в самбе нет :]

kim-aa
05-04-2006, 20:04
интересно, они сами себя такими назначают в ходе broadcast-запросов-выборов, или их надо такими делать, скажем, меняя os level ?
os level это значение заявляемое потенциальным Мастер-броузером сети (правильнее сказать сегмента сети) во время Выборов.
У кого os level выше тот и побеждает на выборах.
Единственное исключение в доменной структуре. Контроллер домена Win обязательно должен быть мастер броузером домена.

hasherfrog
05-04-2006, 20:10
kim-aa
Но при определении backup browser'ов значение os level не учитывается?
Или учитывается? Когда PDC стал PDC, он смотрит на чужие os level'ы?

kim-aa
05-04-2006, 20:23
Я как-то пояснял вопрос (но не в этой эхе). Привожу без купюр (лень замучила)
* * *
Если на Linux системе нет Samba (т.е. она не видна в сети и ее ресурсы нельзя использовать с WIN машин, т. е. она используется для почты, web или как полочка для фикуса, то нижеследующее можно не читать).
1) "Нажатие на сетевое окружение" - это просмотр сети.
За функцию просмотра сети, т.е. создание, хранение, обновление списка Win машин
отвечает Главный Браузер сети (Master Browser).
Когда Win Машина входит в сеть она "громогласно заявляет", что нужен браузер, если браузер откликается, то "Good" - машина вносится в список + машина запоминает куда ей за списком лезть, если нет - инициируется процесс выбора нового Master browser (Так же выборы начинаются если Мастер браузер долго не откликается на запросы).
Алгоритм там достаточно сложный, но в 2х словах его можно описать так:
Чем выше версия Win, тем больший вес на выборах. Сервера имеют однозначное преимущество над станциями не зависимо от версий. Контроллер домена имеет преимущество над серверами своего домена.
В добавок к Браузеру сети, в Win доменах, существует должность Браузера домена, который Отрабатывает функции браузера сети, но только для конкретного домена (доменов).
Если сеть с единственным сервером - контроллером домена, то он и является Master Browser + Domain Browser одновременно.

Перейдем к Samba.
файл smb.conf

#########################################################
# Подозрительные Опции
#########################################################

#Быть браузером сети
#Если поставить NO то Samba не будет учавствовать в выборах.
local master = no

# Вес на "выборах" 255 - max, т.е. по сути всегда Browser,
# Если есть WIN контроллер домена, то 255 ни в коем разе не включать
# 33 - по умолчнию.
os level = 33

# Быть браузером домена.
# Если есть WIN контроллер домена, то ни в коем разе не включать
domain master = no

# Форсирование выборов при запуске - "быть мастером, во что бы то ни стало"
# Если есть WIN контроллер домена, то ни в коем разе не включать
preffered master = no


# Явное Указание включить разрешение (сопоставление) WINS имен через DNS
# если DNS Сервер не описывает имеющуюся WINS сеть, то будет бяка.
dns proxy = no


#-----------------------------------------------------------------------
# Быть Wins сервером
wins support = yes
# На пробу можно переставить в NO.

# Использовать данные имеющегося WINS сервера.
# wins server = X.X.X.X

# - Неоходимо указать СУЩЕСТВУЮЩИЙ WINS сервер, или закоментировать.
# - Можно или быть WINS сервером или Использовать данные, но не одновременно.

#-----------------------------------------------------------------------
#Имя домена
workgroup = Domain
# Для работы в домене, надо вписать имя Существующего домена.

# Быть контроллером домена
# Если есть WIN контроллер домена Domain, то ни в коем разе не включать.
Domain Logons = no


##########################################################################
# Влияющие опции, но вряд ли
##########################################################################

# В каких WINS сетях о себе объявлять.
# Желательно или точно указать сеть или закоментировать.
remote announce = X.X.X.255


Когда PDC стал PDC, он смотрит на чужие os level'ы
В своем домене, по моему, нет. Сразу выдвигает семя на роль Мастер-браузера домена.
А в остальной сети (если еще есть рабочие группы или домены) он обычно выигрывает за счет преимущества в os level.
Как разбираются 2 домена без доверительных отношений - тайна великая есть.

попробуйте выставить
preffered master = уеs

Guest 80 247 100
06-04-2006, 08:54
kim-aa
# В каких WINS сетях о себе объявлять.
# Желательно или точно указать сеть или закоментировать.
remote announce = X.X.X.255

ээээ, а я всегда считал этот параметр позволяет задать список IP-адресов, по которым демон nmbd будет переодически анонсировать себя. Т.е. тут ставятся IP-адреса "серверов просмотра" %о))) ... типа
remote ennounce = 192.168.1.66 192.168.2.123/WORKGROUPNAME
разве нет???

по существу интересно, как сделать САМБУ одним из backup-browser's сети. Или действительно этовсё выбирается при выборах в сети..?

mar
06-04-2006, 09:14
kim-aa
выбор master browser по os level, - тут как раз понятно - это очень старая вещь. А вот кто назначает backup - не понятно. Поскольку Os-level единственный параметр, кторый влияет на какие-то выборы, и было спрошено :)

kim-aa
06-04-2006, 13:37
http://de.samba.org/samba/docs/using_samba/ch07.html

Browser elections are decided in multiple rounds of self-elimination. During each round, potential browsers broadcast election request datagrams containing their qualifications to notify other potential browsers that an election is happening and that if the recipient is more qualified, it should also broadcast a bid. When a potential browser receives an election request datagram from a more qualified opponent, it drops out, disqualifying itself from becoming the master browser. Otherwise, it responds with its own election request datagram. After a few rounds, only one potential browser is left in the election. After an additional four rounds of sending out an election request datagram and receiving no response, it becomes the master browser and sends a broadcast datagram announcing itself as the local master browser for the subnet. It then assigns runners-up in the election as backup browsers, as needed.

Судя по этим строчкам Backup browsers назначаются Master Browser'ом победившим на "демократических выборах" :)

ээээ, а я всегда считал этот параметр позволяет задать список IP-адресов, по которым демон nmbd будет переодически анонсировать себя. Т.е. тут ставятся IP-адреса "серверов просмотра" %о))) ... типаremote ennounce = 192.168.1.66 192.168.2.123/WORKGROUPNAME разве нет???

Опять же судя по

With the remote announce option, list the subnets and the workgroup that should receive the broadcast. For example, to ensure that machines in the 172.16.2 and 172.16.3 subnets and the METRAN workgroup are sent broadcast information from our Samba server, we could specify the following:

[global]
remote announce = 172.16.2.255/METRAN \
172.16.3.255/METRAN

Указываются СЕТИ, а не хосты. (Хотя если принудительно указать Сервера просмотра функционирующие в данных сетях, то эффект будет тот же)

hasherfrog
19-04-2006, 11:40
>> попробуйте выставить preffered master = уеs
да, это конечно.

***

>> теперь жду следующей ночи :]
Отчитываюсь :] У меня всё работает. В смысле работаЛО. Какое-то время. Теперь возникли траблы.

Новая проблема

Кусок из smb.conf для FC2, самба Version 3.0.3-5
[global]

# Domain data
workgroup = xxx
netbios name = yyy
server string = zzz

# Debug logs
log file = /var/log/samba/%m.log
max log size = 0

# PDC options
os level = 65
domain master = Yes
domain logons = Yes
preferred master = Yes
encrypt passwords = Yes
logon path = \\%L\Profiles\%U
logon home = \\%L\%U\.profile.smb
logon script = diskssetup.bat

# i/o charsets
unix charset = UTF-8
dos charset = 866
display charset = UTF-8

# wins server block
local master = Yes
wins support = Yes
name resolve order = hosts lmhosts wins bcast
# dns proxy = No <- "No" causes wins to mute

# default file permitions
create mask = 0664
directory mask = 0775

# some security
hosts allow = xxx.yyy.zzz.
# discard message "unknown interface"
interfaces = eth0
# discard 0.0.0.0.log[s]
bind interfaces only = yes

# disable 139/445 mix errors (getpeername)
smb ports = 139

# other
printing = lprng
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192


Что сейчас происходит неприятного: WINS сервер на самбе со временем начинает "забывать" хосты из ypcat -k hosts. Сегодня "пропал" один, завтра - ещё пара, послезавтра - ещё один... Например, вчера "вдруг" прекратился резольв имени машины, на которой я только-только сидел через rsh. Сегодня пропали из резольва ещё два хоста. При это сообщений никаких самба в логи не пишет.


nmblookup -M -- -.
querying __MSBROWSE__ on xxx.yyy.zzz.63
xxx.yyy.zzz.62 __MSBROWSE__<01>

Вчера вечером:
#nmblookup -U xxxserver -R yyyhost
querying yyyhost on xxx.yyy.zzz.62
xxx.yyy.zzz.53 yyyhost<00>

Сегодня утром:
# nmblookup -U xxxserver -R yyyhost
querying yyyhost on xxx.yyy.zzz.62
name_query failed to find name yyyhost
Что вообще происходит? Что за прогрессирующая амнезия??? В логах ошибок (и сообщений о драке за место wins-сервера/master browser'а) нет. Причём интересно: один из "потерянных" хостов - виндовая машина(!), т.е. броадкастом её цепляет, но при этом wins про неё забыл. Уфффффффффф... "Но почему?" (с) Крокодил Гена

kim-aa
19-04-2006, 12:20
C NIS, тем паче в спарке с SAMBA не работал, за сим ни чего умного подсказать не могу.
Терпеть не могу давать такие советы, но... Может SAMBA "поднять" до текущей версии 3.0.22?
Посоветовал бы еще бубен, но думаю, как у профессионала, он у Вас уже есть :)




© OSzone.net 2001-2012