Домашняя и офисная подсети конфликтуют через VPN: три решения
Когда обе стороны используют 192.168.1.0/24, добавленный маршрут не поможет. Определите, какой конфликт у вас, и выберите решение, которое реально можете применить.
Клиент сообщает, что подключён и туннель поднят, но файловый сервер офиса отвечает откуда-то с кухни. Обычно обе стороны используют 192.168.1.0/24, потому что так поставляются потребительские роутеры, и ни один маршрут не решает неоднозначность, существующую одновременно с обеих сторон. Сбой может выглядеть как сломанный туннель или сломанный сервер, но это ни то ни другое. Определите, какой конфликт у вас есть, прежде чем трогать конфигурацию, потому что у типов разные решения и только одно из них про маршрутизацию.
Подключённый маршрут побеждает всё, что вы добавляете
Хост считает адрес локальным, когда его покрывает подключённый маршрут. На ноутбуке, чей интерфейс — 192.168.1.20/24, адрес 192.168.1.50 является соседом, поэтому пакет уходит через домашний интерфейс и никогда не достигает туннеля.
Добавление маршрута для офисного префикса ничего не меняет, потому что этот префикс уже существует как непосредственно подключённая сеть. Операционная система продолжает отвечать из подключённой записи, и её проверяют раньше, чем о чём-либо спрашивают туннель. Порядок можно увидеть самому: ip route get 192.168.1.50 называет домашний интерфейс, а не туннель. Удалённая сторона отражает проблему, потому что офисный роутер тоже считает, что домашний диапазон ноутбука принадлежит ему.
Тихие конфликты помимо очевидного
Не каждый случай — решение о маршрутизации. Домашняя аренда DHCP может попасть ровно на адрес, который занимает офисный сервер, и тогда клиент разговаривает сам с собой, пока туннель ничего не передаёт.
Имена конфликтуют так же. Две машины с одинаковым именем компьютера ломают инструменты, основанные на именах, даже когда каждый пакет маршрутизируется правильно, а запись hosts, указывающая на офисный адрес, не срабатывает, если локальная машина уже владеет этим именем, потому что локальное разрешение побеждает. Переименуйте локальную машину или используйте полное доменное имя вместо правки hosts.
Гипервизоры добавляют третий случай. Адаптер только для хоста обычно находится на 192.168.56.0/24, что может конфликтовать с корпоративным диапазоном, о котором никто не помнит, что он используется.
Перенумеруйте свою сторону
Перенумерация устраняет неоднозначность, а не обходит её, и в домашнем офисе это как раз ваша сторона. Выберите что-то, что не появится больше нигде, и перед тем как трогать роутер, перечислите все устройства со статическими адресами.
10.0.0.0/8 и 172.16.0.0/12 — обычные кандидаты. Заводские настройки прошивки, 192.168.0.0/24 и 192.168.1.0/24, — это именно то, что нужно оставить.
Перенумерация офиса редко возможна, а домашняя перенумерация стоит вечера на переподключение принтеров и розеток. Всё равно это дешевле, чем обходной путь, повторяемый на каждом ноутбуке компании.
Опубликуйте диапазон, который не может конфликтовать
Там, где офисный диапазон должен остаться, сделайте сторону туннеля труднее для конфликта. Выделение клиентского пула как небольшого префикса вместо заимствования целой /24 даёт конкретный маршрут, а не широкий.
Если шлюз умеет транслировать, опубликуйте офисную подсеть под псевдонимным диапазоном, чтобы адрес назначения клиента не мог попасть в его собственную LAN. Схема «сайт-сайт» может дать каждому сайту свой псевдоним, и это позволяет различать двух клиентов с одинаковой нумерацией.
Трансляция не бесплатна. Она должна работать в обе стороны и покрывать адрес источника и назначения, а приложения, которые записывают адреса в собственные полезные данные, полностью её проигнорируют. Поэтому это ответ, когда перенумерация невозможна, а клиентов мало.
Выбирайте по тому, что можете изменить
Один-два ноутбука дома: перенумеруйте домашнюю LAN. Управляемый офис, который не может перенумеровать: трансляция псевдонимов на шлюзе. Повторяющаяся нумерация на сайтах клиентов: псевдонимы для каждого сайта, спланированные один раз. Когда отказывают только инструменты на основе имён, считайте это конфликтом имён, а не сбоем маршрутизации.
Что бы вы ни выбрали, проверяйте на адресе, который существует только на другой стороне. Пинг своего собственного роутера ничего не говорит о том, какая сеть ответила.