Робота з 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
Ручне налаштування
-
Панель керування → Центр мереж і спільного доступу
-
Зміна параметрів адаптера → ПКМ на мережу → Властивості
-
Вибрати Internet Protocol Version 6 (TCP/IPv6) → Властивості
-
Вказати:
-
IPv6-адресу
-
Префікс (напр.
64
) -
Шлюз
-
DNS (напр.
2001:4860:4860::8888
)
-
Пінг і тест IPv6
ping -6 ipv6.google.com
tracert -6 ipv6.google.com
No Comments