@TheSima

Нет resolve по hostname в одну сторону, от linux к linux, что может быть?

Локальная сеть 192.168.0.0/24 без домена.
Действующие лица:
- роутер Asus, он же шлюз, он же DHCP-сервер.
IP статический 192.168.0.1

- хост с WinXP
hostname Office
IP по DHCP (рандом)

- хост с CentOS 7.2
hostname s1
IP по DHCP зарезервирован 192.168.0.201

- хост с NAS UnknownOS ядро Linux 2.6.32.12(если это важно)
hostname ds1
IP статический 192.168.0.226

Симптомы:
используя команду ping "hostname" получаем такие результаты
s1 -> Office = OK
s1 -> ds1 = FALSE

ds1 -> Office = OK
ds1 -> s1 = OK

При ping по IP всё проходит хорошо.

Мною было изучено море литературы, прогуглено множество схожих ситуаций... Но мне из этого ничего не помогло, то где-то всё решалось передобавлением проблемного хоста в домен. То добавлением "wins" в строчку hosts в файле /etc/nsswitch.conf. или добавлением "mdns4_minimal [NOTFOUND=return]" туда же, и т.д.

В связи с этим я очень сильно запутался...
я знаю что есть samba у которой есть /etc/samba/smb.conf
я знаю что есть NSS и PAM и winbindd, которых их связывает... но вроде бы winbindd нужен когда хост в домене, если не прав, пожалуйста поправьте меня.
Я понимаю работу DNS и NetBIOS и что это разные вещи и что ping "бла бла бла" разрешается в nsswitch в указаном там порядке...

Вообщем много что изучил, но так нигде и не смог найти ответ.
Что происходит например при получении хоста ds1 запроса bcast NetBIOS, т.е. где затык?
Или же не происходит этот запрос от s1, но хост Office, он же как-то знает...

Прошу помочь разобраться, заранее всем благодарен.

UPD: Есть подозрение что s1 известен DHCP-серверу(роутеру) он же ему IP дал, а потому и известен ds1, потому как в конфиге ds1 /etc/resolv.conf nameserver (естественно) указан роутер.
А ds1 не известен DHCP-серверу(роутеру) потому как IP у ds1 указан ручками(статический)...

root@ds1:~# nslookup s1
Server: 192.168.0.1
Address: 192.168.0.1#53

Name: s1
Address: 192.168.0.201

[root@s1 ~]# nslookup ds1
Server: 192.168.0.1
Address: 192.168.0.1#53

** server can't find ds1: NXDOMAIN

Вот мне и кажется что всё соль в этом! Если есть мнения поделитесь, а я пока буду пробовать проверять эту теорию..
Заодно хотелось бы понять как просто заставить linux работать по NetBIOS-именам? Или может даже проще и лучше, как сказать NS на роутере что ds1 по такому-то IP. Но сделать это со стороны ds1. И возможно ли это?)
Вот какой-то из этих вариантов я думаю то что мне нужно =)

UPD 2: мне удалось получить ответ по nmblookup ds1, но в тот же момент nmblookup s1 не даёт ответа...
ну и фиг с ним подумал я, главное чтобы ping ds1 заработал...
Так вот, он не работает. Я не знаю что делать.
  • Вопрос задан
  • 1179 просмотров
Решения вопроса 1
@TheSima Автор вопроса
Проблема была найдена, совсем не тривиально, но очень тривиальная)
вкратце так:
nmblookup ds1 не работало из-за правила в iptables (INPUT...REJECT...), которое я убрал командой
iptables -D INPUT <номер правила в цепочке INPUT>
nmblookup ds1 - заработало! я почти обрадовался, но не тут-то было)
ping ds1 не работал! хотя ip было уже известно по nmblookup ds1.
было и указано следующее
в /etc/nsswitch.conf в строке hosts: указан wins!
в /etc/samba/smb.conf указана в разделе [global] строка
name resolve order = wins bcast host
nmblookup ds1 - работает! а ping ds1 - нет!
не долго я мучался.. вот вердикт
Не знаю почему, не знаю как, не знаю что с этим CentOs!
Но, nmb smb winbind - не были запущены. (точка!)
Вроде бы samba установлена, и чего бы ей не работать... но факт остался фактом, после установки... smbclient работал замечательно, а демоны не были запущены, хост ребутался правда переодически, но я блин был в полной уверенности что samba установлена... это мне урок на многие годы) Надеюсь всё делалось не зря, всем спасибо!
см. комментарии
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Если статический айпишник, то ваше имя просто нигде не прописывается.

В винде, wins сам собирает инфу о локальных хостах (вроде служба computer browser), поэтому можно обращаться по имени и оно само найдет кто это.

В DNS - иерархия. Хост не будет всем рассказывать кто это, он заранее должен быть прописан в DNS

Просто пропишите на компах Office и s1 в /etc/hosts (system32/drivers/etc/hosts) ds1 и его айпишник, и он должен начать отзываться. Ну или тогда нужно добавить эту запись на ваш DNS сервер, если вы им пользуетесь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы