Що таблиця маршрутів VPN каже вам і чого вона сказати не може
Установлені префікси — це локальні інструкції пересилання, а не опис віддалених сервісів. Читайте таблицю заради того, що вона доводить, а потім запитайте власника.
Ви підключаєтеся, запускаєте список маршрутів і бачите підмережу, про яку ніколи не чули, що вказує на тунель. Цей рядок точно стверджує одне і зовсім не стверджує кількох інших речей. Він фіксує, як ця машина пересилатиме пакети на цей префікс, нічого про те, які хости там існують, і нічого про те, чого може досягти ваш обліковий запис. Правильно прочитати його — хвилина; читати його як опис — набагато довше відвикати.
Читайте таблицю як локальні інструкції
Маршрут — це інструкція пересилання, яку тримає локальне ядро: для цього префікса використовуйте цей інтерфейс і цей наступний перехід. Довжина префікса визначає, наскільки конкретна інструкція, і перемагає найдовший збіг. Ніщо в цьому правилі не згадує дозволи, стан сервісу чи віддалену топологію.
Правила політики можуть втрутитися раніше, ніж таблицю буде переглянуто, тому маршрут може існувати і все ж не бути тим, який використовує даний пакет. Читайте правила поруч із таблицею, потім запитайте ядро, який шлях воно обрало б для конкретного призначення. Відповідь для однієї адреси цінніша за сторінку префіксів, і це єдина відповідь, що відображає позначки, простори імен і прив'язки інтерфейсів, застосовані клієнтом.
Широкий префікс — не каталог
Префікс /16, спрямований через тунель, не означає шістнадцять тисяч доступних хостів, а маршрут за замовчуванням означає ще менше. Сервер вирішує, хто відповідає, міжмережевий екран вирішує, що дозволено, а обліковий запис вирішує, що авторизовано.
У вузької таблиці зворотна пастка: відсутній префікс може означати, що призначення доступне іншим шляхом, або просто що воно взагалі не маршрутизується. Ці два випадки виглядають однаково, доки ви їх не перевірите. Порівнюйте таблицю з ресурсом, який вам сказали використовувати, а не зі своїми очікуваннями щодо того, що має містити VPN.
Звідки беруться записи
Маршрути надходять щонайменше з чотирьох місць: із файлу конфігурації, від сервера, який проштовхує маршрут під час встановлення з'єднання, від мережевого менеджера, що володіє інтерфейсом, і від людини, яка набирає команду під час інциденту. Кожен має різний термін життя і різного власника.
Той, що набрали під час збою, — це той, який зникає після перезавантаження і не з'являється ні в чиїй документації. Маршрут, який проштовхує сервер, змінюється, коли змінюється сервер, тому непояснений новий префікс часто з'являється після оновлення шлюзу, а не після зміни клієнта. посібник ip-route документує синтаксис таблиці й полів, якщо вам треба читати прапорці.
Звірте маршрут із договором про послугу
Корисне порівняння — між таблицею і сервісом, який вам обіцяли: ім'я, діапазон адрес, порт і власник. Запишіть ці чотири поруч із префіксом, і прогалини стануть видимими.
ip route show table all dev tun0
ip route get 10.20.5.9
ip rule show
Якщо префікс є, а сервіс усе одно не працює, таблиця зробила свою справу, і проблема в іншому місці: розв'язання імен, міжмережевий екран на тому боці або обліковий запис без потрібної групи. Якщо префікса немає, питання в тому, хто мав його надати, а не в тому, що набирати. Кожна з двох відповідей називає команду, яку запитати далі, і це єдиний корисний результат читання таблиці маршрутів. Запишіть це ім'я, перш ніж закрити термінал.
Фіксуйте стан до і після будь-якої зміни, з датою та інтерфейсом. Таблиця маршрутів — це знімок одного моменту на одній машині, і вона стає доказом лише тоді, коли хтось записав, коли його зроблено.