IPv6: Адресація нового покоління¶
Чому IPv6?¶
IPv4 має ~4.3 мільярди адрес. Здавалося б багато, але:
- Населення Землі: 8 мільярдів людей
- У кожного: телефон, ноутбук, планшет, розумний годинник...
- Ще IoT: холодильники, лампочки, камери, датчики...
IPv4 адреси закінчились! Тому створили IPv6.
Формат IPv6 адреси¶
Базова структура¶
IPv6 адреса — це 128 біт (замість 32 в IPv4), записана як 8 груп по 4 hex-символи:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
│ │ │ │ │ │ │ │
└────┴────┴────┴────┴────┴────┴────┴── 8 груп по 16 біт
Скорочення запису¶
Правило 1: Ведучі нулі в групі можна пропустити
2001:0db8:0001:0000:0000:0000:0000:0001
↓
2001:db8:1:0:0:0:0:1
Правило 2: Одну послідовність нулів можна замінити на ::
2001:db8:1:0:0:0:0:1
↓
2001:db8:1::1
Важливо: :: можна використати тільки один раз в адресі!
Приклади скорочень¶
| Повна форма | Скорочена |
|---|---|
| 2001:0db8:0000:0000:0000:0000:0000:0001 | 2001:db8::1 |
| fe80:0000:0000:0000:0000:0000:0000:0001 | fe80::1 |
| 0000:0000:0000:0000:0000:0000:0000:0001 | ::1 (localhost) |
| 0000:0000:0000:0000:0000:0000:0000:0000 | :: (будь-яка) |
Кількість адрес¶
IPv4: 2³² = 4,294,967,296 (4.3 × 10⁹)
IPv6: 2¹²⁸ = 340,282,366,920,938,463,463,374,607,431,768,211,456
≈ 340 ундециліонів (3.4 × 10³⁸)
Це приблизно 5 × 10²⁸ адрес на кожну людину на Землі.
Або 65,000+ адрес на кожен квадратний міліметр поверхні Землі.
IPv6 адрес вистачить надовго 😄
Структура IPv6 адреси¶
Типова структура¶
┌─────────────────────────┬─────────────────────────┐
│ Префікс мережі │ Ідентифікатор хоста │
│ (Network Prefix) │ (Interface ID) │
│ 64 біти │ 64 біти │
└─────────────────────────┴─────────────────────────┘
2001:db8:1234:5678 : abcd:ef01:2345:6789
└───────┬────────┘ └────────┬─────────┘
Network /64 Interface ID
Глобальна unicast адреса (GUA)¶
┌──────────────┬──────────────┬─────────────────────────┐
│ Global │ Subnet │ Interface ID │
│ Routing │ ID │ │
│ Prefix │ │ │
│ 48 біт │ 16 біт │ 64 біти │
└──────────────┴──────────────┴─────────────────────────┘
Приклад:
2001:db8:abcd : 1234 : 5678:90ab:cdef:1234
└─────┬──────┘ └─┬──┘ └──────────┬─────────┘
ISP prefix Subnet Interface ID
Типи IPv6 адрес¶
1. Unicast (один-до-одного)¶
Global Unicast (GUA) — публічні адреси
Діапазон: 2000::/3 (починаються з 2 або 3)
Приклад: 2001:db8:85a3::8a2e:370:7334
Link-Local — автоматичні локальні адреси
Діапазон: fe80::/10
Приклад: fe80::1
Особливість: НЕ маршрутизуються, тільки в межах одного сегменту
Unique Local (ULA) — приватні адреси (аналог 192.168.x.x)
Діапазон: fc00::/7 (зазвичай fd00::/8)
Приклад: fd12:3456:789a::1
Loopback — localhost
Адреса: ::1
Аналог IPv4: 127.0.0.1
2. Multicast (один-до-багатьох)¶
Діапазон: ff00::/8
Приклад: ff02::1 (всі ноди на лінку)
ff02::2 (всі роутери на лінку)
3. Anycast (один-до-найближчого)¶
Та сама адреса на декількох пристроях — пакет йде до найближчого.
Порівняння типів адрес¶
| Тип | IPv4 | IPv6 |
|---|---|---|
| Публічна | 8.8.8.8 | 2001:4860:4860::8888 |
| Приватна | 192.168.1.1 | fd00::1 |
| Localhost | 127.0.0.1 | ::1 |
| Link-local | 169.254.x.x | fe80::x |
| Broadcast | 255.255.255.255 | Немає! (використовують multicast) |
Префікси (маски) в IPv6¶
Нотація¶
IPv6 використовує тільки CIDR нотацію:
2001:db8::/32 — мережа з префіксом 32 біти
2001:db8:1::/48 — підмережа з префіксом 48 біт
2001:db8:1:1::/64 — типова підмережа (64 біти)
Типові розміри¶
| Префікс | Призначення |
|---|---|
| /32 | Блок від ISP для організації |
| /48 | Типовий блок для одного сайту |
| /64 | Одна підмережа (стандарт!) |
| /128 | Одна адреса хоста |
Чому /64 — стандарт?¶
Interface ID (останні 64 біти) може генеруватися автоматично з MAC-адреси (EUI-64) або випадково (Privacy Extensions). Тому підмережі менше /64 ламають автоконфігурацію.
Автоконфігурація (SLAAC)¶
Як це працює?¶
- Хост генерує link-local адресу (fe80::...)
- Хост запитує роутер: "Який тут префікс мережі?"
- Роутер відповідає: "Ось префікс: 2001:db8:1:1::/64"
- Хост сам створює свою адресу: префікс + свій Interface ID
Роутер оголошує: 2001:db8:1:1::/64
Хост генерує ID: ::abcd:ef01:2345:6789
Фінальна адреса: 2001:db8:1:1:abcd:ef01:2345:6789
Переваги:
- Не потрібен DHCP сервер
- Хости самі конфігуруються
- Plug-and-play
IPv6 в URL¶
Оскільки IPv6 містить двокрапки, в URL адресу беруть в квадратні дужки:
IPv4: http://192.168.1.1:8080/
IPv6: http://[2001:db8::1]:8080/
SSH IPv4: ssh user@192.168.1.1
SSH IPv6: ssh user@2001:db8::1
Dual Stack¶
Сучасні мережі підтримують обидва протоколи одночасно:
Інтерфейс eth0:
IPv4: 192.168.1.100/24
IPv6: 2001:db8:1::100/64
IPv6: fe80::1234:5678:90ab:cdef (link-local, автоматично)
Пристрій може мати одну IPv4 і декілька IPv6 адрес — це нормально!
Практичний приклад¶
Домашня мережа з IPv6¶
ISP видає: 2001:db8:abcd::/48
Роутер налаштовує підмережі:
- LAN: 2001:db8:abcd:1::/64
- Guest WiFi: 2001:db8:abcd:2::/64
- IoT: 2001:db8:abcd:3::/64
Пристрої автоматично отримують адреси:
- Комп'ютер: 2001:db8:abcd:1:1234:5678:90ab:cdef
- Телефон: 2001:db8:abcd:1:aaaa:bbbb:cccc:dddd
- Гостьовий: 2001:db8:abcd:2:9999:8888:7777:6666
Команди для роботи з IPv6¶
Linux¶
# Показати IPv6 адреси
ip -6 addr show
# Пінг IPv6
ping6 2001:db8::1
# або
ping -6 2001:db8::1
# Traceroute IPv6
traceroute6 2001:db8::1
# Показати IPv6 маршрути
ip -6 route show
Windows¶
# Показати IPv6 адреси
ipconfig
# Пінг IPv6
ping -6 2001:db8::1
# Traceroute IPv6
tracert -6 2001:db8::1
MikroTik¶
# Показати IPv6 адреси
/ipv6 address print
# Пінг IPv6
/ping 2001:db8::1
# IPv6 маршрути
/ipv6 route print
Поширені помилки¶
1. Забули про link-local¶
Link-local адреса (fe80::) є ЗАВЖДИ, навіть без налаштування. Вона потрібна для роботи IPv6.
2. Намагаються зробити /126 для point-to-point¶
В IPv4 використовують /30 (4 адреси). В IPv6 теоретично можна /126, але рекомендують /64 для всього — адрес вистачить!
3. Забули квадратні дужки в URL¶
Неправильно: http://2001:db8::1:8080/
Правильно: http://[2001:db8::1]:8080/
Швидка шпаргалка IPv6¶
| Тип | Префікс | Приклад |
|---|---|---|
| Global Unicast | 2000::/3 | 2001:db8::1 |
| Link-Local | fe80::/10 | fe80::1 |
| Unique Local | fc00::/7 | fd00::1 |
| Multicast | ff00::/8 | ff02::1 |
| Loopback | ::1/128 | ::1 |
| Unspecified | ::/128 | :: |
Попередня частина: IPv4 адресація
Наступна частина: DNS — система доменних імен
Шлях: networking/basics/ipv6.md