@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 заработал...
Так вот, он не работает. Я не знаю что делать.
  • Вопрос задан
  • 958 просмотров
Решения вопроса 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 сервер, если вы им пользуетесь.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы