Samba втрачає локальні ресурси тієї миті, коли OpenVPN підключається, і тунель майже ніколи не буває причиною. Монтування гаразд, NAS працює, а резолвер, який встановив тунель, відповідає на питання про ім'я, якого він ніколи не бачив. Samba запитує цей резолвер рано у своєму порядку пошуку, вірить відповіді й підключається до адреси, де ніхто не слухає. Полагодити ресурс означає полагодити відповідь, а не монтування.

П'ять перевірок, у порядку, який на кожному кроці виключає найбільше можливостей.

Хто відповідає за коротке ім'я

Запитайте операційну систему, а не файловий менеджер. resolvectl status виводить DNS-сервери, прив'язані до кожного з'єднання, і позначає, яке з'єднання є маршрутом за замовчуванням, а запит короткого імені повідомляє сервер, який відповів. Запустіть його один раз для імені NAS і один раз для імені, про яке ви знаєте, що воно існує в домені офісу. Якщо дві відповіді приходять з різних серверів, ви знайшли розділення.

Перевірте, чи відповідь була негативною відповіддю чи адресою. Негативна відповідь означає, що Samba мала перейти до іншого механізму, і несправність в іншому місці. Адреса означає, що Samba підключилася до реального місця й нічого не отримала.

Чому Samba вірить хибній відповіді

Samba розв'язує імена через фіксовану послідовність, задану name resolve order. У більшості дистрибутивів значення за замовчуванням містить host, тобто DNS, і воно виконується раніше за механізми лише для локальної мережі, як-от широкомовлення NetBIOS. Тож тунель, що протягує резолвер, отримує право першої відмови на кожне ім'я ресурсу, включно з односкладовими іменами, які ніколи не мали залишати будівлю.

Зазвичай невідоме ім'я повертає негативну відповідь, і наступний механізм отримує свою чергу. Деякі резолвери, особливо в споживчих провайдерів і публічні, відповідають на невідомі імена сторінкою пошуку або рекламною адресою. Така відповідь виглядає для бібліотеки резолвера як успіх, тому Samba перестає шукати й набирає адресу, що не має нічого спільного з вашою мережею.

Результат — ресурс, який зникає без діалогу помилки. Ніщо в цій послідовності не є збоєм маршрутизації VPN, тому ping до NAS досі працює, а перехід до нього — ні.

Дві лагодження різного обсягу

Вузьке лагодження зберігає протягнутий резолвер і змінює те, про що Samba може його питати. Додайте два рядки до конфігурації Samba, яку демон справді читає, а потім перезапустіть службу:

[global]
   name resolve order = wins lmhosts bcast
   dns proxy = no

Без host у цьому списку DNS виходить із шляху пошуку ресурсів, і односкладові імена залишаються в локальному сегменті. Імена офісу далі звично розв'язуються для будь-якої іншої програми, бо це змінює лише Samba. Ціна в тому, що Samba більше взагалі не може використовувати DNS, тому ресурс, адресований повним ім'ям офісу, стає проблемою.

Широке лагодження усуває причину: припиніть протягувати резолвер, який відповідає за імена, якими не володіє, або протягніть політику розділеного DNS, щоб до резолвера офісу доходили лише суфікси офісу. Це краща довгострокова відповідь у керованій мережі, бо вона захищає і браузер, і менеджер пакетів, але потребує адміністративного доступу на боці сервера і клієнта, який слухається протягнутих налаштувань.

Виберіть одне свідомо. Зміна резолвера змінює розв'язання імен для всіх програм одразу, що є записом про зміну, а не правкою для дзвінка в підтримку.

Суфікс може пояснити все

Якщо клієнт протягує ще й суфікс пошуку, коротке локальне ім'я переписується в домен офісу ще до того, як його запитають. Тоді резолвер зовсім не бреше: у нього чесно запитали про ім'я офісу, і він дав правильну відповідь. Прочитайте запитане ім'я у виводі резолвера, щоб відрізнити це від випадку з рекламною адресою, бо обидві несправності виглядають у файловому менеджері однаково.

Рішення тут — або використовувати повне локальне ім'я, або додати правило розділеного DNS, яке володіє локальним суфіксом. Жодне не вимагає торкатися Samba.

Доведіть це після повторного підключення

Перевірте три імені за одну сесію: локальний ресурс за коротким ім'ям, хост офісу за ім'ям і звичайний сайт. Якщо перше працює, а друге ламається, лагодження перенесло несправність, а не усунуло її. Якщо ламається третє, зміна резолвера зайшла далі за задум, і кожен пошук тепер підозрілий.

Потім від'єднайте й знову підключіть тунель і повторіть усі три. Протягнуті параметри застосовуються заново при кожному підключенні, тож лагодження, що існувало лише під час роботи, може зникнути без зміни файлу конфігурації. Запишіть резолвер, який володіє кожним суфіксом, і чинний порядок пошуку, та занотуйте дату, бо наступне оновлення клієнта — очевидний підозрюваний, коли це повернеться.

Якщо ресурс усе ще не працює після всіх п'яти перевірок, зафіксуйте точний запит і точну відповідь, перш ніж змінювати щось інше. Ця пара рядків відрізняє збій резолвера від імені, якого справді не існує, і це найшвидша нотатка для передачі, яку ви можете написати.

Схожі статті