Обирайте адресний простір VPN за розподілом, а не за непомітністю
Діапазони для бенчмаркінгу, спільні та документаційні мають кожен свого власника й призначення. Виберіть простір VPN із реєстру, потім сплануйте перекриття, яке не можна усунути.
Незвично виглядає префікс здається виходом із конфлікту адрес між домом і офісом, і зазвичай ним не є. Кожен блок у реєстрі IPv4 спеціального призначення має власника, призначення й причину існування, а позичання одного через те, що він виглядає тихим, переносить конфлікт замість того, щоб усунути його. Виконуйте це як послідовність: прочитайте розподіл, проведіть інвентаризацію того, що вже перетинається, і лише потім вирішіть, чи перенумеровуєте ви, транслюєте чи створюєте новий простір. Порядок важливий, бо третій крок залежить від того, що знайшли перші два.
Прочитайте розподіл, перш ніж позичати діапазон
Реєстр спеціального призначення IANA відокремлює діапазони, що є багаторазовим приватним простором, від діапазонів, які служать одній конкретній технічній меті. Приватне використання, спільний адресний простір, бенчмаркинг і документаційні блоки виглядають у таблиці однаково і поводяться зовсім по-різному, щойно їх маршрутизують.
| Range | Category | What it means for a VPN plan |
|---|---|---|
| 172.16.0.0/12, 192.168.0.0/16, 10.0.0.0/8 | RFC 1918 private use | Reusable by any network, so remote sites may already use the same numbers |
| 100.64.0.0/10 | Shared address space | Intended for provider-side carrier-grade NAT arrangements, not a second private pool |
| 198.18.0.0/15 | Benchmarking | Reserved for test traffic measurement; not spare production space |
| 203.0.113.0/24, 198.51.100.0/24, 192.0.2.0/24 | Documentation (RFC 5737) | Illustration only; a guide that uses them is not assigning them to you |
| 169.254.0.0/16, 240.0.0.0/4 | Link-local, reserved | Never a routed site subnet, whatever the prefix length suggests |
Два префікси, що різняться лише в другому октеті, — не той самий блок: 198.18.0.0/15 несе резервування для бенчмаркінгу, а 192.18.0.0/16 не несе нічого подібного. Число, яке лише нагадує зарезервований діапазон, не успадковує його сенс. Ця плутанина досить поширена, щоб заслуговувати на другий погляд до того, як потрапить у правило міжмережевого екрана.
Продукти іноді навмисно використовують спеціальний діапазон усередині узгодженого накладення, і це їхня архітектура, яку треба документувати. Це не робить той самий діапазон вільним простором для непов'язаної локальної мережі. Публічний простір теж не схованка: приватний маршрут до адреси, що належить комусь іншому, відводить трафік, призначений її законному отримувачу.
Проведіть інвентаризацію наявних перекриттів
Перш ніж вибирати префікс, перелічіть кожну мережу, яка буде доступна з тунелю. Майданчики, пули клієнтів, хмарні VPC і партнерські з'єднання всі враховуються, і саме партнерське з'єднання люди забувають, доки перша спроба підключення не провалиться.
ip -4 route show table all ip -6 route show ip -br addr ip route get 192.168.1.10
Розмістіть результати в одній таблиці з власником кожного діапазону поруч. Діапазон, для якого ви не можете назвати власника, — це діапазон, який ви не зможете перенумерувати пізніше, і саме інвентаризація перетворює суперечку про «незвичні» префікси на рішення про конкретні числа. Вона також повідомляє, чи реальний конфлікт, якого ви намагаєтеся уникнути, чи уявний.
Якщо домашня мережа віддаленого працівника використовує той самий префікс, що й офісна локальна мережа, цей конфлікт видно в інвентаризації і його можна вирішити явно. Це не доказ, що блок для бенчмаркінгу був би розумним вибором, і саме такий підхід створює наступне зіткнення.
Створіть унікальний ULA замість копіювання префікса
IPv6 вирішує проблему повторного використання іншим механізмом, а не красивішим числом. RFC 4193 визначає локально призначені унікальні локальні адреси з псевдовипадковим 40-bit глобальним ідентифікатором, що дає вам /48 для майданчика, який дуже малоймовірно зіткнеться з чиїмось іншим. Ймовірність висока, але не абсолютна, і префікс ULA все ще не забезпечує доступності в інтернеті.
openssl rand -hex 5
Десять шістнадцяткових цифр — це сорок бітів. Поставте перед ними fd і згрупуйте в /48: вивід 3f9c1a7b02 стає fd3f:9c1a:7b02::/48. Створіть по одному на майданчик і запишіть його, замість того щоб вставляти той самий зручний fd00::/48 у кожне розгортання.
Потім переконайтеся, що весь шлях справді говорить IPv6. Клієнти, шлюз, маршрути, приватний DNS і політика сервісів мають узгоджуватися, і призначення префікса тунелю не змушує застосунок, що працює лише з IPv4, використовувати його.
Сплануйте перекриття, яке не можна усунути
Деякі перекриття постійні, зазвичай тому що партнер не буде перенумеровувати, а ви не можете його змусити. Тоді ви свідомо обираєте підтримуваний механізм: перенумерування на вашому боці, ізольований контекст маршрутизації або явну трансляцію на межі. Свідомий вибір означає записати, який саме обрано і чому два інші відхилено. Саме цю нотатку майбутній огляд змін справді прочитає.
Трансляція має зберігати зворотний шлях, тобто записувати і початковий, і поданий префікс та зіставляти їх із приватними іменами DNS, що в них розв'язуються. Зіставлений псевдонім може зробити одне з'єднання однозначним; він не робить початкові адреси глобально унікальними і не витримає другого партнера з перекриттям без другого зіставлення.
Запишіть розподіл разом з його винятком
Завершіть документом, який перелічує кожен префікс, його категорію, власника та причину вибору. Додайте винятки з їхнім правилом трансляції або перенумерування і датою, коли хтось їх затвердив. Тримайте його поруч із правилами міжмережевого екрана, що його реалізують, а не у вікі, яку ніхто не відкриває під час інциденту. Документ — це результат, а не його стислий виклад.
Саме цей запис заважає наступному інженеру шукати дивніше виглядаюче число, і саме так ця проблема знову відкривається кожні кілька років під новою назвою. Він також дає огляду змін щось конкретне для затвердження замість думки про префікси. Напишіть його один раз, наприкінці розподілу, поки обґрунтування ще перед вами.