Вы подключаетесь, запускаете список маршрутов и видите подсеть, о которой никогда не слышали, указывающую на туннель. Эта строка точно утверждает одно и совсем не утверждает несколько других вещей. Она фиксирует, как эта машина будет пересылать пакеты на данный префикс, ничего о том, какие хосты там существуют, и ничего о том, чего может достичь ваша учётная запись. Правильно прочитать её — минута; читать её как опись — гораздо дольше отвыкать.

Читайте таблицу как локальные инструкции

Маршрут — это инструкция пересылки, которую держит локальное ядро: для этого префикса используйте этот интерфейс и этот следующий переход. Длина префикса определяет, насколько конкретна инструкция, и побеждает самое длинное совпадение. Ничто в этом правиле не упоминает разрешения, состояние сервиса или удалённую топологию.

Правила политики могут вмешаться раньше, чем таблица будет просмотрена, поэтому маршрут может существовать и всё же не быть тем, который использует данный пакет. Читайте правила рядом с таблицей, затем спросите ядро, какой путь оно выбрало бы для конкретного назначения. Ответ для одного адреса ценнее страницы префиксов, и это единственный ответ, который отражает метки, пространства имён и привязки интерфейсов, применённые клиентом.

Широкий префикс — не каталог

Префикс /16, направленный через туннель, не означает шестнадцать тысяч доступных хостов, а маршрут по умолчанию означает ещё меньше. Сервер решает, кто отвечает, межсетевой экран решает, что разрешено, а учётная запись решает, что авторизовано.

У узкой таблицы обратная ловушка: отсутствующий префикс может означать, что назначение доступно другим путём, или просто что оно вообще не маршрутизируется. Эти два случая выглядят одинаково, пока вы их не проверите. Сравнивайте таблицу с ресурсом, который вам сказали использовать, а не со своими ожиданиями о том, что должен содержать VPN.

Откуда берутся записи

Маршруты приходят как минимум из четырёх мест: из файла конфигурации, от сервера, который проталкивает маршрут при установке соединения, от сетевого менеджера, владеющего интерфейсом, и от человека, набирающего команду во время инцидента. У каждого свой срок жизни и свой владелец.

Тот, что набрали во время сбоя, — это тот, который исчезает при перезагрузке и не появляется ни в чьей документации. Маршрут, проталкиваемый сервером, меняется, когда меняется сервер, поэтому необъяснённый новый префикс часто появляется после обновления шлюза, а не после изменения клиента. руководство ip-route документирует синтаксис таблицы и полей, если вам нужно читать флаги.

Сверьте маршрут с договором об услуге

Полезное сравнение — между таблицей и сервисом, который вам обещали: имя, диапазон адресов, порт и владелец. Запишите эти четыре рядом с префиксом, и пробелы станут видны.

ip route show table all dev tun0
ip route get 10.20.5.9
ip rule show

Если префикс есть, а сервис всё равно не работает, таблица сделала своё дело, и проблема в другом месте: разрешение имён, межсетевой экран на той стороне или учётная запись без нужной группы. Если префикса нет, вопрос в том, кто должен был его предоставить, а не в том, что набирать. Любой из двух ответов называет команду, у которой спросить дальше, и это единственный полезный результат чтения таблицы маршрутов. Запишите это имя, прежде чем закрыть терминал.

Фиксируйте состояние до и после любого изменения, с датой и интерфейсом. Таблица маршрутов — это снимок одного момента на одной машине, и она становится доказательством только тогда, когда кто-то записал, когда он сделан.

Похожие статьи