Правила міжмережевого екрана приймають першу й останню адресу, наприклад від 192.168.0.200 до 192.168.0.255, а маршрути — ні. Запис маршруту має місце лише для мережі й маски, тобто безперервний діапазон має стати одним або кількома вирівняними префіксами, перш ніж OpenVPN його встановить. Профіль, який поєднує route-nopull із невирівняним інтервалом, — це місце, де зазвичай ховається збій, бо файл розбирається, а жоден маршрут не збігається. Виправте блоки, і збій стане видимим однією командою.

Міф: діапазон — це маршрут

Таблиці маршрутизації зберігають пари мережі й маски та вибирають найдовший збіг, тому інтервалу з початком і кінцем немає де жити. Один префікс, що охоплює 256 адрес, покриває .0 до .255, половина цього розміру покриває .0 до .127, і лише діапазон, вирівняний за цими краями, відображається за один крок. Усе інше треба різати на блоки. Менший маршрут усе одно означає початковий інтервал.

Діапазон, не вирівняний за префіксом, не є стисненим маршрутом. Це інший тип об’єкта, і ставлення до нього як до маршруту — це місце, де починається тихий збій.

Вирівнювання — це арифметика, а не стиль

Розміри блоків визначаються довжиною префікса. /29 може починатися лише з адреси, кратної 8, /28 — з кратної 16, /27 — з кратної 32. Зсуньте блок з його межі, і маска покриє інший набір адрес, ніж ви задумали.

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

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

Пройдіть 200 до 255

StepStartBlock that fitsLine for the profile
1.200, multiple of 8/29, 8 addresses192.168.0.200 255.255.255.248
2.208, multiple of 16/28, 16 addresses192.168.0.208 255.255.255.240
3.224, multiple of 32/27, 32 addresses192.168.0.224 255.255.255.224

Діапазон починається з .200, що кратне 8, тому перший блок — /29 від .200 до .207. Після цих восьми адрес перше вільне значення — .208, воно ділиться на 16, тому /28 займає .208 до .223. Лишається .224 до .255, тридцять дві адреси, що починаються з кратного 32, тобто /27. Ці три рядки — увесь розбір.

Запишіть їх рядками маршрутів, а не прозою. Профіль, що містить лише перший рядок, покриває вісім адрес і залишає решту поза тунелем.

route-nopull
route 192.168.0.200 255.255.255.248
route 192.168.0.208 255.255.255.240
route 192.168.0.224 255.255.255.224

Останній блок потребує перевірки межі. Усередині 192.168.0.224/27 .224 — це адреса мережі, а .255 — широкомовна адреса, тож вузол, який має відповідати на .255, покритий префіксом і все ще недосяжний. Перемістіть цей вузол або поділіть діапазон інакше, замість того щоб маршрутизувати блок і сподіватися.

Що route-nopull робить із картиною

Додавайте route-nopull лише тоді, коли просунуті сервером маршрути небажані. Без директиви просунуті маршрути й ці рядки існують разом, і перемагає найконкретніший префікс. З нею зникають і просунуті параметри DNS та DHCP, тому внутрішньому розв’язанню імен потрібна власна конфігурація. Цей побічний ефект дивує тих, хто додав директиву, щоб виправити проблему з маршрутом.

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

Перевірки, що ловлять звичайні помилки

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

ip route get 192.168.0.205
ip route get 192.168.0.220
ip route get 192.168.0.240

Кожна відповідь має називати інтерфейс тунелю. Результат, що називає фізичний адаптер, означає, що рядок так і не був встановлений, що часто трапляється, коли менеджер мережі на робочому столі переписує таблицю після підключення профілю.

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

Схожі статті