Перше, що слід згадати про підмережу IPv6, це те, що потрібен інший спосіб мислення . У IPv4 ви зазвичай замислюєтеся про те, скільки у вас є доступних адрес і як ви можете виділити достатню кількість їх кожному кінцевому користувачеві. У IPv6 ви зазвичай думаєте про те, скільки (/ 64) підмереж у вас є, і як ви можете виділити їх кінцевим користувачам. Ви майже ніколи не турбуєтеся про те, скільки IP-адрес буде використано в даній підмережі. За винятком деяких спеціальних випадків, таких як посилання в точку, у кожної підмережі просто є більше доступних адрес, ніж коли-небудь знадобиться, тому натомість ви хвилюєтесь лише про розподіл підмереж, а не хостів всередині них.
Підсети IPv6 зазвичай / 64, тому що це потрібно для роботи SLAAC (автоконфігурація адреси без стану). Навіть там, де SLAAC не використовується, можуть бути й інші причини використання / 64. Наприклад, там можуть бути деякі пристрої кінцевих користувачів, які просто припускають / 64, або ж маршрутизація підмереж довше / 64 може бути неефективною на деяких маршрутизаторах, оскільки реалізатор маршрутизатора оптимізував випадок / 64 або коротші маршрути, щоб зберегти пам'ять таблиці маршрутизації.
Чому рекомендується використовувати / 127 для точкових посилань
У конкретному випадку посилань "точка-точка" рекомендується / 127, щоб уникнути вразливості, коли адреси пакетів до будь-якого з чотиривіршів невикористаних адрес у підмережі викликають небажані запити сусідських запитів та записи таблиць, які міг заглушити роутер. Такі пакети неправильних адрес можуть бути шкідливими або випадковими. Але навіть якщо ви фактично налаштовуєте посилання "точка-точка" як / 127, деякі люди виступають за призначення цілого / 64 так чи інакше, щоб бути послідовним.
Чому віртуальні машини надаються з підмережами менше / 64?
Я не знаю конкретно, чому віртуальні машини розміщуються з підмережами менше / 64. Можливо, тому, що хостинг-провайдер припускав, що сервер схожий на кінцевого користувача та вимагає лише однієї (/ 64) підмережі, не передбачаючи, що сервер насправді буде сукупністю віртуальних машин, що потребують внутрішньої топології маршрутизації? Це можна зробити також просто, щоб полегшити запам’ятовування плану адресацій: хост отримує PREFIX::/64
, тоді кожен VM потрапляє PREFIX:0:NNNN::/96
туди, де NNNN є унікальним для VM, і VM може виділяти PREFIX:0:NNNN:XXXX:YYYY
за власним бажанням.
Чи можна відображати безпосередньо з підмереж IPv4 в підмережі IPv6? Наприклад, чи відповідає IPv4 / 24 безпосередньо IPv6 / 56 або / 120?
З точки зору низького рівня того, як працює адресація та маршрутизація, довжина префікса має однакове значення в IPv6 та IPv4. На цьому рівні можна зробити аналогію на зразок "IPv4 / 16 використовує половину біт для мережевої адреси і половину бітів для адреси хоста, це як / 64 в IPv6". Але це порівняння насправді не влучне. У IPv6 з'явилися чіткі умови, які роблять поділи розмірів мережі дещо схожішими на попередній світ класних мереж в IPv4. Щоб бути впевненим, IPv6 не наново класовий адресації , в якій найбільш значущі кілька бітів адреси змусити певну маску підмережі, але то , що IPv6 дійсно є, деякі [/ де - факто умовно] стандартні розміри мережі:
- / 64 : основний розмір однієї підмережі: LAN, WAN, блок адрес для віртуальних хостів веб-сайтів тощо ... "Нормальні" підмережі ніколи не будуть меншими (довший префікс), ніж / 64. Жодна підмережа не очікується, що вона буде більшою (коротший префікс), ніж / 64, оскільки адреси хостів у розмірі / 64 набагато більше, ніж ми можемо уявити, що потрібно.
- / 56 : блок з 256 базових підмереж. Навіть незважаючи на те, що поточна політика дозволяє постачальникам Інтернет-послуг роздавати блоки розміром до / 48 кожному кінцевому користувачеві і все ще вважати використання їх адресою добре виправданим, деякі Інтернет-провайдери можуть (і вже роблять) вирішили виділити / 56 для споживачів класу споживачів як компроміс між виділенням для них безлічі підмереж та адресною економією.
- / 48 : блок з 65536 базових підмереж та рекомендований розмір блоку, який повинен отримувати кожен кінцевий сайт клієнта провайдера.
- / 32 : розмір блоку за замовчуванням, який отримуватиме більшість провайдерів щоразу, коли вони вимагають отримати більше адрес з регіонального реєстру адрес.
Всередині постачальників послуг та мереж, що перебувають на підприємстві, видно набагато більше довжин префіксів, ніж ці 4. Переглядаючи таблиці маршрутизації маршрутизаторів всередині цих мереж, IPv4 та IPv6 мають багато спільного, включаючи більшість способів роботи маршрутизації: маршрути для довших префіксів замінюють маршрути, що охоплюють більш короткі префікси, тож можливо агрегувати (скоротити) та просвердлити маршрути вниз (зробити довше). Як і в IPv4, маршрути можуть бути агреговані або зведені до більших блоків із короткими префіксами, щоб мінімізувати розмір таблиць маршрутизації.
Іншим питанням відображення між IPv4 та IPv6 було б те, як гармонізувати призначення IPv4 та IPv6 на машинах з двома стеками, щоб можна було легко зрозуміти плани адрес. До того ж, звичайно, для цього є звичайні умови: вбудовуйте IPv4 "номер підмережі" в частину префікса IPv6 або з BCD (наприклад, 10.0.234.0/24
стає 2001:db8:abcd:234::/64
), або з бінарним ( 10.0.234.0/24
стає 2001:db8:abcd:ea::/64
).
Мої інтерфейси мають кілька IPv6-адрес. Чи повинна підмережа бути однаковою для всіх?
Абсолютно ні! Очікується, що хости IPv6 зможуть бути багатосхилими, одночасно мати декілька IP-адрес, які надходять з різних підмереж, як і IPv4. Якщо вони налаштовані автоматично з SLAAC, то різні підмережі можуть надходити з реклами маршрутизаторів різних маршрутизаторів.
Чому я іноді бачу%, а не / в IPv6-адресу, і що це означає?
Ви б не побачили одного замість іншого. Вони мають різні значення. Косою рисою позначається префікс (підмережа), що означає блок адрес, який починається з однакових n
бітів. Адреса без косої риски - це адреса хоста. Ви можете подумати про таку адресу, що має на увазі "/ 128" в кінці, тобто всі 128 біт вказані.
Знак відсотка супроводжує локальну адресу посилання. У IPv6 кожен інтерфейс має локальну адресу на додаток до інших IP-адрес, які він може мати. Але справа в тому, що локальні адреси посилань завжди, без винятку, знаходяться в fe80::/10
блоці. Але якщо ми намагаємося поговорити з одноранкою за допомогою локальної адреси посилання, а місцевий хост має кілька інтерфейсів, то як нам знати, який інтерфейс використовувати для спілкування з цим однорангом? Зазвичай таблиця маршрутизації повідомляє нам, який інтерфейс використовувати для конкретного префікса, але тут він підкаже нам, ніж fe80::/10
це доступно через кожен інтерфейс.
Відповідь полягає в тому, що ми повинні сказати йому, який інтерфейс використовувати за допомогою синтаксису address%interface
. Наприклад, fe80::1234:5678:8765:4321%eth0
.
Я витрачаю занадто багато підмереж? Хіба ми просто не будемо знову вибігати?
Ніхто не знає. Хто може сказати майбутнє?
Але врахуйте це. У IPv6 кількість доступних підмереж є квадратом числа доступних індивідуальних адрес у IPv4. Це насправді досить багато. Ні, я маю на увазі дуже багато!
Але все-таки: ми автоматично роздаємо а / 32 будь-якому провайдеру, який запитує його, ми роздаємо / 48 для кожного клієнта провайдера. Можливо, ми перебільшуємо, і ми все-таки будемо розтрачувати IPv6. Але є положення для цього: тільки одна восьмий частини простору IPv6 було доступно для використання до сих пір: 2000::/3
. Ідея полягає в тому, що якщо ми зробимо жахливий безлад у першій восьмій і нам доведеться різко переглянути ліберальну політику розподілу, ми намагаємося спробувати ще 7 разів, перш ніж потраплятимемо в біду.
І нарешті: IPv6 не повинен тривати вічно. Можливо, він матиме довший термін експлуатації, ніж IPv4 (вражаючий термін експлуатації вже не закінчився), але, як і будь-яка технологія, вона колись перестане мати значення. Нам потрібно лише до цього встигнути.