Skip to main content

Робота з IPv6

Що таке IPv6

  • IPv6 — це нова версія IP-протоколу з 128-бітними адресами

  • Не сумісний з IPv4

Формат IPv6-адрес

  • 8 груп по 4 хексацифри: 2001:0db8:85a3:0000:0000:8a2e:0370:7334

  • Скорочення: 2001:db8::8a2e:370:7334

Типи адрес

  • Unicast, Anycast, Multicast

  • Link-local: fe80::/10, Global: 2000::/3, Unique local: fc00::/7


Налаштування IPv6

Linux (Debian/Ubuntu)

Ручне додавання IPv6

ip -6 addr add 2001:db8::1234/64 dev eth0
ip -6 route add default via 2001:db8::1 dev eth0

Netplan (Ubuntu 18+)

network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 2001:db8::1234/64
      gateway6: 2001:db8::1
      nameservers:
        addresses:
          - 2001:4860:4860::8888

interfaces

iface eth0 inet6 static
    address 2001:db8::1234
    netmask 64
    gateway 2001:db8::1

Linux (RHEL, CentOS, AlmaLinux, RockyLinux)

Ручне додавання через nmcli

nmcli con mod eth0 ipv6.method manual \
    ipv6.addresses 2001:db8::1234/64 \
    ipv6.gateway 2001:db8::1 \
    ipv6.dns 2001:4860:4860::8888
nmcli con up eth0

Через конфіг-файли (/etc/sysconfig/network-scripts/ifcfg-eth0)

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=yes
IPV6ADDR=2001:db8::1234/64
IPV6_DEFAULTGW=2001:db8::1
DNS1=2001:4860:4860::8888

Перезапуск інтерфейсу

nmcli con reload
nmcli con up eth0

IPv6 + Firewall

ip6tables -P INPUT DROP
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT

DNS (AAAA запис)

example.com. IN AAAA 2001:db8::1234

IPv4 і IPv6 не сумісні

  • IPv6 не працює з IPv4-хостами

  • Потрібне паралельне підтримка (dual stack)


Налаштування вебсерверів

NGINX

server {
    listen [::]:80;
    listen [2001:db8::1234]:80;
    listen [::]:443 ssl;
    server_name example.com;

    ssl_certificate     /etc/ssl/certs/fullchain.pem;
    ssl_certificate_key /etc/ssl/private/privkey.pem;
    root /var/www/html;
}

Apache

<VirtualHost [::]:80>
    ServerName example.com
    DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost [2001:db8::1234]:443>
    ServerName example.com
    DocumentRoot /var/www/example
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/fullchain.pem
    SSLCertificateKeyFile /etc/ssl/private/privkey.pem
</VirtualHost>

DNS

example.com. IN AAAA 2001:db8::1234

Перевірка IPv6

Локально

ip -6 addr
ping6 ipv6.google.com
traceroute6 ipv6.google.com

Онлайн:


Типові проблеми

Проблема Причина Рішення
Немає IPv6-зв'язку Шлюз, firewall, маршрут Перевірити ip -6 route
AAAA-запис не працює Відсутній DNS Додати в зону
Тільки link-local адреса SLAAC не працює DHCPv6 або ручне налаштування
ping6 не працює ICMPv6 блокований Відкрити ICMPv6 у firewall

IPv6 в браузері

IPv6-адреси потрібно обгортати квадратними дужками:

Ціль Приклад
HTTP IPv6 http://[2001:db8::1234]/
HTTPS IPv6 https://[2001:db8::1234]/
IPv6 + порт http://[2001:db8::1234]:8080/
HTTPS + нестандартний порт https://[2001:db8::1234]:8443/

Безпека IPv6

  • ICMPv6 потрібний для Neighbor Discovery

  • Захищати IPv6-трафік через ip6tables або nftables


IPv6 у Windows

Перевірка IPv6-адрес

ipconfig /all

Ручне налаштування

  1. Панель керування → Центр мереж і спільного доступу

  2. Зміна параметрів адаптера → ПКМ на мережу → Властивості

  3. Вибрати Internet Protocol Version 6 (TCP/IPv6) → Властивості

  4. Вказати:

    • IPv6-адресу

    • Префікс (напр. 64)

    • Шлюз

    • DNS (напр. 2001:4860:4860::8888)

Пінг і тест IPv6

ping -6 ipv6.google.com
tracert -6 ipv6.google.com

Ресурси