Як працює підмережа IPv6 і чим вона відрізняється від підмережі IPv4?


116

Це канонічне запитання про підмережу IPv6.

Пов'язані:

Я багато знаю про підмережу IPv4 , і, коли я готуюсь до (розгортання | роботи над) мережею IPv6, мені потрібно знати, яка частина цих знань може бути передана і що мені ще потрібно вивчити. IPv6 здається на перший погляд набагато складнішим, ніж IPv4. Тож я хотів би знати:

  • IPv6 - це 128 біт, тож чому / 64 найменша рекомендована підмережа для хостів? З цим пов'язано:
    • Чому рекомендується використовувати / 127 для точкових зв’язків між маршрутизаторами, і чому це було рекомендовано в минулому? Чи слід змінити існуючі посилання на маршрутизатор на use / 127?
    • Чому віртуальні машини розміщуватимуться з адресами менше ніж / 64?
    • Чи є інші ситуації, в яких я використовував би підмережу менше / 64?
  • Чи можна відображати безпосередньо з підмереж IPv4 в підмережі IPv6? Наприклад, чи відповідає IPv4 / 24 безпосередньо IPv6 / 56 або / 120?
  • Мої інтерфейси мають кілька IPv6-адрес. Чи повинна підмережа бути однаковою для всіх?
  • Чому я іноді бачу%, а не / в IPv6-адресу, і що це означає?
  • Я витрачаю занадто багато підмереж? Хіба ми просто не будемо знову вибігати?
  • Якими іншими основними способами відрізняється підмережа IPv6 від підмережі IPv4?

Відповіді:


138

Перше, що слід згадати про підмережу 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 (вражаючий термін експлуатації вже не закінчився), але, як і будь-яка технологія, вона колись перестане мати значення. Нам потрібно лише до цього встигнути.


13
Дуже хороше пояснення! Особливо щодо різного мислення. Якщо ви подивитеся на цифри, то ви бачите, що в 2000 році / невеликих провайдерів існує 536 870 912/32 :: / 3. При 7 мільярдах у світі, що становить один Інтернет-провайдер на 13 осіб, і кожен такий Інтернет-провайдер може мати 65 536 клієнтів з / 48 в кожному. Не потрібно турбуватися про те, щоби витрачати адреси лише зараз :-)
Сандер Стеффан,

Так, це дуже вдале пояснення.
Фергюс

2
Хороше пояснення щодо конкретних деталей 2000 :: / 3.
Koos van den Hout

5
Приємне пояснення. +1 на остаточний коментар. Я сподіваюся, що всі вже бачили це: xkcd.com/865
Ніко

@SanderSteffann І якщо це стане проблемою, було б цілком розумним, щоб провайдери призначали новим / 64s для приватних користувачів замість / 48s., А для невеликих провайдерів запитували блоки, скажімо, 4096 з них одночасно (/ 52 блоки ). Поточна схема призначена для того, щоб залишити місце для розширення на кожному шарі.
іммібіс

45

IPv6 - це 128 біт, тож чому / 64 найменша рекомендована підмережа для хостів?

Перш за все, невелике мистецтво ASCII від RFC для встановлення термінології:

|         n bits         |   m bits  |       128-n-m bits         |
+------------------------+-----------+----------------------------+
| global routing prefix  | subnet ID |       interface ID         |
+------------------------+-----------+----------------------------+

Глобальний префікс маршрутизації зазвичай ідентифікує загальну мережу, до якої належить адреса. Зазвичай це 48 біт. Ідентифікатор інтерфейсу ідентифікує даний мережевий інтерфейс. Зазвичай це 64-бітні. Решта 16 біт - ваш ідентифікатор підмережі.

Гаразд, з поясненням:

Відповідно до RFC 4291 - IP-версія 6, адресована архітектура :

Усі адреси Global Unicast, окрім тих, що починаються з двійкового 000, мають 64-бітове поле ідентифікатора інтерфейсу.

І RFC 5375 - Розгляд присвоєння єдиної адреси IPv6 :

Важливою частиною плану адреси адреси IPv4 є визначення довжини кожної префікса підмережі. На відміну від IPv4, архітектура адреси IPv6 [RFC4291] визначає, що всі підмережі, що використовують глобально унікальні адреси та ULA, завжди мають однакову довжину префікса 64 біт.

Отже, ігноруючи виняток 000-префікса, ідентифікатор інтерфейсу завжди точно 64-бітний. Це ще один спосіб сказати, що всі локальні широкомовні мережі завжди є 64-бітними . Якщо у вас IPv6-адреса, її мережна маска - це завжди 64 біти. Ніколи більше, ніколи менше. Якщо вам було призначено адресний простір більше, ніж це (коротша мережна маска, ніж 64-бітна), то передбачається, що ви будете розділяти цей адресний простір на 64-бітні мережі та обробляти маршрутизацію самостійно. Якщо вам дали мережу, меншу за цю (довша маска), то хтось накрутив.

Отже, чому саме 64-бітові?

Як правило, адреси IPv6 налаштовуються автоматично, а не призначаються. Маршрутизатор рекламує, який доступний префікс мережі (префікс маршрутизації + ідентифікатор підмережі: перші 64-бітні), а ваш комп'ютер заповнить останні 64-бітні, використовуючи власний унікальний ідентифікатор. Як ваш комп’ютер придумав унікальний ідентифікатор? Є кілька можливостей, найпоширенішим є використання MAC-адреси вашого інтерфейсу. Ви розділите MAC навпіл (половина постачальника / серійна половина), переверніть універсальний локальний біт на стороні постачальника і приєднаєте їх назад разом із FF:FEсерединою. Так 00:30:48:01:23:45стає 0230:48ff:fe01:2345. Тепер поставте рекламований 64-бітний мережевий префікс ліворуч від цього, і у вас є ваша IP-адреса.

Тут важливим моментом є те, що якщо дотримуватися цієї схеми, зіткнення IP-адреси не відбудеться. Оскільки кожен пристрій у даній широкомовної мережі потребує роботи унікальної MAC-адреси, прив’язування ідентифікатора інтерфейсу до MAC-адреси означає, що поки трафік трансляції не зіткнеться, то і IPv6 адреси не будуть. Використання 64-бітових (замість лише 48, призначених для MAC-адрес) дає трохи химерної кімнати за межі просто адрес, передбачених цією схемою (є кілька інших).

Чи є інші ситуації, в яких я використовував би підмережу менше / 64?

Ні. Хіба що, якщо ти зламаний. Що ж, у вас може бути обґрунтування на основі місцевих вимог щодо налаштування маршрутизації вручну з вашою існуючою мережею. Але майте на увазі, що тим самим ви, мабуть, робите безлад:

Від RFC 5375 - Розгляд присвоєння єдиної адреси IPv6 :

Використання префікса підмережі, відмінного від / 64, порушить багато функцій IPv6, включаючи відкриття сусіда (ND), безпечне відкриття сусіда (SEND) [RFC3971], розширення конфіденційності [RFC4941], частини мобільного IPv6 [RFC4866], незалежний протокол Multicast - розріджений режим (PIM-SM) з вбудованою RP [RFC3956] та мультихомінг сайтів за допомогою посередництва IPv6 (SHIM6) [SHIM6]. Ряд інших функцій, які зараз розробляються або пропонуються, також покладаються на / префікси підмережі / 64.

….

Однак деякі адміністратори мережі використовували префікси довше ніж 64 для посилань, що з'єднують маршрутизатори, як правило, лише два маршрутизатори на посилання "точка-точка". На посиланнях, де всі адреси призначаються вручну, і всі вузли посилання є маршрутизаторами (не кінцевими хостами), які відомі мережею, адміністраторам не потрібна жодна з функцій IPv6, що покладаються на префікси підмережі / 64, це може працювати. Використання префіксів підмережі довше ніж / 64 не рекомендується для загального використання, а використання їх для посилань, що містять кінцеві хости, було б особливо поганою ідеєю, оскільки важко передбачити, які функції IPv6 хости будуть використовувати в майбутньому.

Чому рекомендується використовувати / 127 для точкових зв’язків між маршрутизаторами, і чому це було рекомендовано в минулому?

Ви можете захопити RFC 3627 - Використання префікса / 127 Довжина між маршрутизаторами вважається шкідливим . Потім перегляньте подальший RFC 6164 - Використання 127-бітових префіксів IPv6 на посиланнях між маршрутизаторами .

Заперечення щодо використання на маршрутизаторах префіксів, що перевищують / 64, пов'язане з автоматичною конфігурацією маршрутизатора, яка може вийти з ладу за рідкісних обставин. Заперечення щодо використання префіксів, менших ніж / 127 (лише для 2-х хостів), пов'язане з низкою потенційних проблем з відхиленням служби, що стосуються пакетів, що надсилаються на unrouted адреси. Оскільки проблеми з відмовою в обслуговуванні в реальному світі гірші, ніж теоретичні збої автоконфігурації, / 127 є новим фаворитом.

Чи слід змінити існуючі посилання на маршрутизатор на use / 127?

Якщо ви керуєте маршрутизатором IPv6, рекомендую прочитати два RFC (вони короткі!) Та вирішити для себе.

Чи можна відображати безпосередньо з підмереж IPv4 в підмережі IPv6?

Наприклад, чи відповідає IPv4 / 24 безпосередньо IPv6 / 56 або / 120?

Насправді ... так. Пам'ятайте, що 000-префікс ми навмисно ігнорували раніше? Ну, ось для цього:

У системах з двома стеками (в яких активні стеки IPv4 та IPv6) ви можете представляти IPv4 за допомогою механіки IPv6. Вони називають це " IPv4-відображеними IPv6 адресами ". Шаблон - це нулі, за яким FFFFслідує 32-бітна IPv4-адреса.

Таким чином, 192.168.100.21стає ::FFFF:C0A8:6415- або більш просто: ::FFFF:192.168.100.21. Оскільки цей правий біт представляє адресу IPv4, він традиційно виписується за допомогою пунктирно-десяткової форми.

Оскільки це фактична IPv4-адреса, вона все ще використовує заголовки IPv4 тощо. Це означає, що IPv4-стек повинен бути присутнім, IPv4-маршрути повинні бути встановлені, і все це. Перевага полягає в тому, що ви можете представляти і IPv4, і IPv6 адреси, використовуючи єдину структуру адрес, що може спростити розробку додатків. Це не стосується жодної різниці, що стосується мережі.


20
  1. IPv6 - це 128 біт, тож чому / 64 найменша рекомендована підмережа для хостів?

    Цей розмір префіксу був спочатку рекомендований у старішій програмі RFC - з тих пір було переглянуто цю політику, коли проблема атаки на виявлення сусідів розглядається, а використання / 126 є дійсним пом'якшенням - тим не менш, якщо ви встановлюєте зв’язки PtP з Єдина мета маршрутизації трафіку, альтернативний варіант - просто дотримуватися / 64 та брандмауер цієї підмережі. А ще краще, виділіть собі пул, з якого ви будете малювати / 64 підмережі, і весь цей пул як місце в чорному списку на вашому краю (і деінде, звідки може виникнути ворожнеча)

  2. Чому рекомендується використовувати / 127 для точкових зв’язків між маршрутизаторами, і чому це було рекомендовано в минулому? Чи слід змінити існуючі посилання на маршрутизатор на use / 127?

    / 127 не рекомендується застосовувати між маршрутизаторами і ніколи не був - адреса All-маршрутизаторів Anycast - це нульова адреса підмережі; це означає, що / 127 технічно діє лише між двома машинами, де одна з них НЕ діє як маршрутизатор. / 126, звичайно, добре.

    У будь-якому випадку, проте, я б не радив перемикати існуючі / 64 посилання, якщо ваше обладнання не є вразливим до нападу кешу Neighbor Discovery - навіть у цьому випадку спочатку визначте, чи дійсно ви будете користуватися цим / 64 для підключення до Інтернету. , якщо відповідь ні, просто брандмауер її.

  3. Чому віртуальні машини надаються з підмережами менше / 64?

    Це розбиває SLAAC і RA, якщо ви насправді не знаєте, що ви робите, навряд чи у вас є якісь вагомі причини для цього - можливо, ваш вище за течією дав вам єдину / 64, але якщо це так, вам потрібно йти поверніться до них і попросіть більше, якщо вони хочуть стягнути плату за це, почніть шукати нового постачальника, а також, можливо, надішліть їм якісь примхливі електронні листи, що посилаються на відповідні RFC.

  4. Чи є інші ситуації, в яких я використовував би підмережу менше / 64?

    Чесно? певно, ні. Якщо я думаю про законну причину, коли менша підмережа є кращою для інших цілей, ніж запобігання NDP-атакам, я відредагую цей розділ.

    І навпаки, бувають ситуації, коли ви НЕ хочете використовувати підмережі менше / 64 - особливо там, де ви працюєте з обладнанням для обладнання для переадресації (подумайте, маршрутизатори фірмових найменувань та комутатори L3) - деякі не зможуть виконати апаратну маршрутизацію префіксів. довше, ніж / 64, інші повинні розділити операцію на кілька порівнянь, таким чином, вам слід принаймні зробити все можливе, щоб / 64 було найдовшим префіксом у вашій магістралі (OSPF / ISIS / EIGRP / тощо.).

  5. Чи можна відображати безпосередньо з підмереж IPv4 в підмережі IPv6? Наприклад, чи відповідає IPv4 / 24 безпосередньо IPv6 / 56 або / 120?

    Офіційно :: ffff: xxxx - це формат для IPv6-відображеної IPv4-адреси - звичайно, існує також ряд механізмів переходу, а саме 6to4 та його відносний, 6-й, які відображають IPv4-адресу в глобальну IPv6 для цілей надання доступу до IPv6 через IPv4 шляхом створення префікса IPv6, який походить від IPv4 адреси, яку він переносить.

  6. Мої інтерфейси мають кілька IPv6-адрес. Чи повинна підмережа бути однаковою для всіх?

    Ні, використання різних адрес і розмірів підмережі в одному інтерфейсі не повинно бути проблемою. Якщо це так, реалізація є помилковою. Звичайно, краще питання - чому ви б це робили?

  7. Чому я іноді бачу%, а не / в IPv6-адресу, і що це означає?

    Це роздільник, який зазвичай застосовується для локальних адрес посилань (fe80 :: / 12) - оскільки одна і та ж локальна адреса посилань може легітимно існувати на декількох інтерфейсах, роздільник% використовується для дозволу вказувати, який саме інтерфейс мається на увазі. Linux, як правило, робить обов'язкове введення інтерфейсу при виконанні операцій із використанням локальної посилання. Windows Vista / 2008 і новіші версії трохи розумніші і не скаржаться, якщо локальна посилання не є унікальною.

  8. Я витрачаю занадто багато підмереж? Хіба ми просто не будемо знову вибігати?

    Ні. Це мертва кінь, яку надто багато разів лупцювали WAAAAAAAAY - поточний глобальний Інтернет IPv6 - це 2000 :: / 3 - є ще кілька префіксів, які IANA могла би почати використовувати, якби якось кожен RIR на планеті зумів вичерпати адресні запаси. Так що ні, у нас не вистачить місця, і навіть якщо ми це зробимо, це потребує миготіння пера, щоб з’явити новий префікс, а не технічні зміни. Єдине, що справді підкреслює це питання, - це нездатність людського розуму повністю зрозуміти, наскільки смішно обширний адресний простір.

  9. Якими іншими основними способами відрізняється підмережа IPv6 від підмережі IPv4?

    Окрім того, щоб не піклуватися про те, скільки місця ви використовуєте, пам’ятайте, що немає широкомовної адреси та що адреса «підсеть-нуль» тепер є адресою all-routers anycast (що в основному є адресою, яка неявно існує у всіх налаштованих вузлах пересилати пакети IPv6) - це корисний побічний ефект, що дозволяє вам використовувати всі нулі адреси як ваш маршрут за замовчуванням у мережі (ні, це не спричинить дублювання пакетів, це БУДЬ-ЯК, а не MULTIcast) - майте на увазі хоча хост може перемикатися між маршрутизаторами кожні кілька секунд, тому це не підходить для потужного налаштування брандмауера, якщо відстеження з'єднання між ними не синхронізоване.

    Крім цього, інша основна відмінність полягає в тому, що IPv6 піклується про повторювані адреси та мертвих сусідів (NUD) - таким чином, на відміну від IPv4, хост відмовиться від використання адреси, якщо зможе визначити, що інший вузол посилання вже використовує його . З іншого боку, NUD корисний, якщо ви налаштовуєте статичні маршрути - ви можете фактично визначити кілька окремих маршрутів до префікса з різними показниками, і вони дійсно будуть працювати, на відміну від IPv4, де буде використовуватися найнижчий метричний маршрут незалежно від того, наступний -hop мертвий або живий (хоча це може не бути правдою для деяких реалізацій IPv4, які використовують ARP для перевірки маршрутів, таких як Cisco та інших основних постачальників маршрутизаторів)

    TLDR; IPv6 виявляє повторювані адреси та недоступні сусіди. Повна нульова адреса - це все маршрутизатори anycast, і немає такого поняття, як трансляція, всі - це звичайна адреса.


3
У відповідь на відповідь 2) ... tools.ietf.org/html/rfc6164 tools.ietf.org/html/rfc6547
cpt_fink

3

Для тих, хто цікавиться, звідки в специфікаціях походить вимога / 64 для SLAAC, ось кілька додаткових посилань:

Від автоконфігурації адреси без стану IPv6 (RFC 4862) :

Якщо сума довжини префікса та довжини ідентифікатора інтерфейсу не дорівнює 128 біт, опцію Інформація про префікс ОБОВ'ЯЗКОВО ігнорувати. [...]

Адміністратор системи несе відповідальність за те, щоб довжина префіксів, що містяться в рекламі маршрутизаторів, відповідала довжині ідентифікаторів інтерфейсу для цього типу посилань.

І з IP версії 6 адреси адреси архітектури (RFC 4291) :

Для всіх одноадресних адрес, окрім тих, що починаються з двійкового значення 000, ідентифікатори інтерфейсу повинні бути довжиною 64 біти та створюватися у модифікованому форматі EUI-64.

Тому, оскільки ID інтерфейсу повинен бути 64 біт, а сума довжини префікса та довжини ідентифікатора інтерфейсу повинна бути 128, єдино можлива довжина префікса при використанні SLAAC - 64 біта.


2

IPv6 - це 128 біт, тож чому / 64 найменша рекомендована підмережа для хостів?

Оскільки прихильникам IPv6 сподобалася ідея автоматичної конфігурації без стану.

Якщо ви перейдете на будь-який інший розмір підмережі, автоматична конфігурація без стану порушиться. Деякі інші незначні речі теж можуть зламатися, прочитайте rfc7421 для отримання більш детальної інформації.

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

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

Чому для маршрутизаторів рекомендується використовувати / 127,

Використання підмереж з невеликою кількістю доступних адрес дозволяє уникнути атак виснаження сусідів.

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

Чому віртуальні машини розміщуватимуться з адресами менше ніж / 64?

Нам тут потрібно зробити відмінність. Є два способи, за допомогою яких хостинг-провайдер може призначити адреси машині (фізичну чи віртуальну).

Вони можуть призначити їм адреси "по лінії зв'язку", де очікується, що машина відповість на запити сусідів на відкриття. Деякі хостинг-провайдери вирішили надати кожній машині a / 64, яка має переваги в адресній мобільності, інші надають кожній VLAN a / 64, а потім надають окремим машинам підблоки тієї, що використовує менше адрес, і це може означати, що місцевий трафік залишається локальним, а не передаючи до маршрутизатора.

Або вони можуть ставитися до машини як до маршрутизатора і присвоювати йому перенаправлений блок. У цьому випадку йому знадобиться достатньо адрес для вирішення всіх внутрішніх підмереж. Якщо ви дотримуєтесь конвенції "всі підмережі повинні бути / 64", це означатиме розподіл її принаймні a / 64 і, можливо, більше. Це має сенс для машин, які мають "мережі всередині машини", наприклад, хост-контейнер.

Чи можна відображати безпосередньо з підмереж IPv4 в підмережі IPv6? Наприклад, чи відповідає IPv4 / 24 безпосередньо IPv6 / 56 або / 120?

Будь-яке подібне відображення - питання місцевої політики.

Мої інтерфейси мають кілька IPv6-адрес. Чи повинна підмережа бути однаковою для всіх?

Немає

Чому я іноді бачу%, а не / в IPv6-адресу, і що це означає?

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

Я витрачаю занадто багато підмереж? Хіба ми просто не будемо знову вибігати?

Я б не переживав про це занадто.

Навіть при дивному рішенні дизайнерів IPv6 використовувати 128-бітний адресний простір, а потім викинути майже половину його на автоматичну конфігурацію без стану, IPv6 все ще має значно більше місця, ніж IPv4.

І якщо б стався хрускіт, для скасування цього дивного рішення знадобиться трохи більше, ніж штрих пера.

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.