LINUX.ORG.RU

Периодически перестают быть доступными ресурсы локальной подсети

 ,


1

2

Странная ситуация. Коллеги говорят, что это из-за неверного наименования ресурсов. В общем…

Почта на домене mail.local.company.com, жира - на jira.local.company.com. И все в таком духе. Говорят, что это из-за local в именах доменов.

Система - убунта 18.04. Лечится только отключением от сети и подключением заново. Подключение проводное.

Подскажите, куда копнуть, чтобы эту проблему разрулить? Я не админ, повлиять на сетевые настройки могу только советом. Если есть решение для локального компьютера пользователя (т.е. меня) - будет отлично.

★★★★★

Если говорить про Linux, то посмотрите в nsswitch.conf какие приоритеты сервисов разрешения имён выставлены и попробуйте их поменять.

Удостоверьтесь, что у вас прописан внутренний DNS вашей компании, а не внешний.

Если у вас используется Ubuntu или другой Linux, который подставляет свой DNS сервер на 127.0.0.1, то отключите этот функционал и настройте, что бы использовался DNS сервер компании.

infomeh ★★
()

А у Вас случайно имя домена

company.com

не совпадает с внешним интернет именем домена?

В общем, вот накопал, почитайте. http://itband.ru/2012/05/name/

А для решения - попробуйте в hosts прописать соотвествия. Т.к. при поиске DNS - обращается в hosts, перед тем как отправлять далее.

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

А у Вас случайно имя домена

company.com

не совпадает с внешним интернет именем домена?

Именно так. Совпадает.

bvn13 ★★★★★
() автор топика
Ответ на: комментарий от infomeh
cat nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat systemd
group:          compat systemd
shadow:         compat
gshadow:        files

hosts:          files dns myhostname
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Совершенно не понимаю, что сюда написать, что правильно, а что - нет.

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

Ты извини, но hosts - это бред.

В компании должен быть поднят свой внутренний DNS сервер и в нём для всех доменов должны быть прописаны внутренний адреса.

И этот DNS сервер должен быть прописан, а точнее получен по DHCP на всех компах компании.

А в Linux сделана настройка, что бы использовался не systemd-resolved, а этот DNS сервер.

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

Поднимите в компании свой DNS сервер, на нём поднимите такую же DNS зону, в ней пропишите внутренние адреса и этот DNS сервер используйте на компах компании.

В Linux настройте, что бы вместо systemd-resolved использовался ваш DNS сервер.

Ещё можно сделать по другому, просто все DNS запросы во внешний мир перенаправлять на шлюзе на ваш DNS сервер. Естественно запросы с самого DNS сервера пропускать без перенаправления.

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

Я не админ, повлиять на сетевые настройки могу только советом. Если есть решение для локального компьютера пользователя (т.е. меня) - будет отлично.

Думаб, что пользователю поможет. Согласен, при наличии DNS - редактировать хостс бред.

i3wm
()

Выяснил у админов, что у нас в сети 3 ДНС сервера, и в какой-то момент линукс перестает обращаться за резолвингом *.local.company.com субдоменами к внутренним ДНС серверам, а идет в гугловый 8.8.8.8.

Вопрос: как его переубедить? Админы намекают на какой-то split-dns.

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

и в какой-то момент линукс перестает обращаться за резолвингом *.local.company.com субдоменами к внутренним ДНС серверам, а идет в гугловый 8.8.8.8.

Вопрос: как его переубедить?

Я тебе уже написал, что в случае systemd-resolved или network-manager в Linux вместо указанных DNS серверов прописывается 127.0.1.1, вроде бы, и куда он уже переадресует запросы - дело десятое.

Читай как отключить в NetworkManager использование своего DNS сервера и как это сделать в systemd-resolved.

Ты гуглить не умеешь?

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

Я докладываю ситуацию.

Есть треды на аск-убунту: раз и два - пишут про nsswitch (мне не помогло, но я NetworkManager и systemd-resolved не настраивал) и про выключение systemd-resolved с установкой-настройкой dnsmasq вместо него. Вот так я и сделал. Но прописал DNS сервера вручную. Что-то мне кажется, что этот же трюк (ручное прописывание) можно было настроить в NetworkManager-е прямо в гуях…

bvn13 ★★★★★
() автор топика

@infomeh @i3wm в общем, ничего из предпринятого не помогло (включение dnsmasq, прописывание dns серверов в конфиг dnsmasq, прописывание dns серверов в настройки подключения к сети в гноме, изменения в nsswitch). Куда еще копнуть?

bvn13 ★★★★★
() автор топика
Последнее исправление: bvn13 (всего исправлений: 1)
Ответ на: комментарий от bvn13

включение dnsmasq, прописывание dns серверов в конфиг dnsmasq

Зачем?

Если для настройки сети используется NetworkManager, то в его конфиге /etc/NetworkManager/NetworkManager.conf

Нужно закомментировать строчку dns=dnsmasq и перезапустить его.

После этого убедиться, что в /etc/resolv.conf и файлах в /etc/resolv.d/ нет упоминания про 127.0.1.1 или 127.0.0.1 в качестве DNS сервера и там прописаны DNS серверы организации.

В случае использования systemd networkd тоже есть некоторый нюанс, но его я не скажу, я не знаю.

Проверить в командной строке, что через ping правильно разрешаются и пингуются внутренние IP адреса.

Так же для тестирования использовать утилиту nslookup, просто разрешая имя домена и разрешая с указанного DNS сервера

nslookup domain_name.local
nslookup domain_name.local dns_ip

Как только в /etc/resolv.conf будут указаны DNS серверы организации то всё будет работать как надо.

Неужели это трудно?

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

Неужели это трудно?

ну… как бы, да, не особо легко, когда не варишься в этом всём каждый день

Вот что у меня:

> cat /etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no
> cat /etc/resolv.conf

nameserver 127.0.0.53
options edns0

/etc/resolv.d/ нет такой директории

Сейчас все пингуется и все резолвится.

Как только в /etc/resolv.conf будут указаны DNS серверы организации то всё будет работать как надо

А как они туда попадут? Сейчас их нет.

Сейчас используется systemd-resolved

bvn13 ★★★★★
() автор топика
Последнее исправление: bvn13 (всего исправлений: 1)
Ответ на: комментарий от infomeh

Сейчас используется systemd-resolved

Отключи его.

Отключил. При отключенном systemd-resolved и dnsmasq доступа в инет и к локальным ресурам нет. Когда включил dnsmasq - остается знак вопроса на иконке NetworkManager-а http://i.imgur.com/vS7yZJK.png , но доступ в инет есть, к локальным по имени - нет.

статус dnsmasq показывает, что он использует локальные ДНС, но в /etc/resolv.conf их нет.

Похоже, что dhcp не работает?

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

Если только для себя и есть локальный рут, то можно замутить. Костыль жуткий, последнее средство. Лучше попробуй снести все менеджеры и настроить вручную, с dhcp клиентом и в конце старым, дебиановским способом.

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