Назад | Перейти на главную страницу

Samba не работает в локальной сети без подключения к Интернету

У меня есть общий ресурс Samba 4 на сервере CentOS 7.2 в моей локальной сети, к которому я обращаюсь с некоторых клиентов Windows 10.
Клиенты используют IP-адрес сервера для доступа к общему ресурсу, а Samba настроена как автономный сервер, а не как член домена.

При подключении к Интернету все работает нормально, но когда подключение к Интернету отсутствует, клиентам требуется до 20 минут, прежде чем отобразится окно учетных данных для входа.

Это не похоже на проблему, связанную с сетью: клиенты могут связаться с сервером, пинговать его так же быстро, как обычно, использовать другие протоколы, такие как HTTP или SSH, и в целом безупречно выполнять любую другую сетевую активность по локальной сети.
Кроме того, тот факт, что оно работает после долгого ожидания подсказывает мне, что в процессе был какой-то тайм-аут.

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

Журналы Samba (уровень отладки 5) не показывают ничего ненормального, но, похоже, есть много попыток подключения, которые действительно принимаются сервером:

[2016/11/15 16:18:34.378116, 3] ../source3/lib/access.c:338(allow_access) Allowed connection from 192.168.100.5 (192.168.100.5) [2016/11/15 16:18:34.436829, 5] ../lib/dbwrap/dbwrap.c:178(dbwrap_check_lock_order) check lock order 2 for /var/lib/samba/serverid.tdb [2016/11/15 16:18:34.436924, 5] ../lib/dbwrap/dbwrap.c:146(dbwrap_lock_order_state_destructor) release lock order 2 for /var/lib/samba/serverid.tdb ... ... this is repeated an unbelievably lot of times ... ...

Я склонен думать, что это проблема, связанная с Windows 10, больше, чем проблема сети / самбы / сервера.

У меня точно такая же ситуация, как и у вас - Samba в локальной сети работает хорошо, когда порт WAN активен, но очень медленно работает, если порт WAN не работает. Я наконец понял, почему с tcpdump.

Samba пытается разрешить свое имя хоста.

Мой сервер Samba не имеет собственного имени хоста в /etc/hosts, поэтому он пытается решить эту проблему в Интернете, это займет много времени, если WAN не работает.

Добавьте запись A / PTR своего сервера Samba на сервер имен LAN (который используется Samba) или просто добавьте запись имени хоста в /etc/hosts на Самбе. Больше никаких зеленых индикаторов выполнения!

Тот факт, что вы используете IP-адрес для монтирования общего ресурса, не означает, что разрешение имен отсутствует.
Есть такая вещь, как обратное разрешение имен.
Это происходит, когда клиент пытается определить полное доменное имя сервера на основе его IP. (считать dig -x ipaddress вид сделки)

Для быстрого теста я предлагаю добавить какое-нибудь имя к IP-адресу общего ресурса на клиенте. C:\Windows\system32\drivers\etc\hosts файл и посмотрите, поможет ли это.
Вы можете найти подробные инструкции с примерами, например, здесь https://support.rackspace.com/how-to/modify-your-hosts-file/

Вы также можете установить wirehark на клиенте и захватывать сетевой трафик, когда у вас возникнет проблема. Затем выполните фильтрацию по порту 53 (DNS). Вы должны увидеть, не происходит ли обратное разрешение имен.

Кажется, проблема связана с DNS: клиент или сервер пытаются разрешить (или обратное разрешение) другой компьютер, и это приводит к тайм-ауту / медленному соединению. Поскольку многие маршрутизаторы поддерживают переадресацию DNS, попробуйте следующее:

  • установите на своем маршрутизаторе DNS Google (8.8.8.8 и 8.8.4.4)
  • на обе клиент и сервер, установите внутренний IP-адрес вашего маршрутизатора как обе шлюз и DNS
  • отсоедините кабель WAN и повторите попытку подключения

Это что-нибудь меняет?