IPv6
Модераторы: Olej, bellic, vikos
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
IPv6
Тем не менее, на апрель (почти) 2023г. (прошло 11 лет):
- Подавляющее большинство провайдеров (даже ВОЛС GPON) IPv6 не поддерживают. Вот дословно ответ моего провайдера GPON:
- Многие хостеры, или их площадки хостинга IPv6 не обеспечивают. Вот ответ хостера вот этого форума:На данный момент мы используем протокол ipv4. ipv6 мы еще не используем
Но, тем не менее, вы можете сами себе, не дожидаясь, организовать полноценный IPv6 используя туннелирование IPv6 через IPv4 - например, как описано подробно в теме: Yggdrasil.верно, в ДЦ в Казахстане поддержки IPv6, к сожалению, нет.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
IPv6
Вот - это всё крутится в IPv6:
Код: Выделить всё
olej@R420:~$ host howto.ygg.lib
howto.ygg.lib has IPv6 address 222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c
;; connection timed out; no servers could be reached
Код: Выделить всё
olej@R420:~$ ping -c5 -6 222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c
PING 222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c(222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c) 56 data bytes
64 bytes from 222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c: icmp_seq=1 ttl=64 time=1310 ms
64 bytes from 222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c: icmp_seq=2 ttl=64 time=387 ms
64 bytes from 222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c: icmp_seq=3 ttl=64 time=175 ms
64 bytes from 222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c: icmp_seq=4 ttl=64 time=173 ms
64 bytes from 222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c: icmp_seq=5 ttl=64 time=228 ms
--- 222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4024ms
rtt min/avg/max/mdev = 172.586/454.564/1310.016/434.823 ms, pipe 2
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
IPv6
Что нам (в плюсы и минусы) готовит IPv6
Хотя бы по самому первому взгляду...
В плюс:
1. всем, включая самые локальные хосты LAN хватит свободных IP адресов...
2. поэтому исчезают всякие "локальные", серые IP: 10.x.x.x, 172.16.x.x, 192.168.x.x ...
3. из глобальной сети, WAN, доступны любые хрсты в LAN (если он не прикрыты файерволами)...
4. любые сетевые ресурсы (HTTP, HTTPS, SSH, ... все) можно расшаривать из LAN на внешний доступ.
В минус:
1. нужно выверять на совместимость с IPv6 всех прокси, VPN ... и всех пакетов-инструментов их реализующих
2. сложность и непривычность самой формы записи IPv6 адресов, нужно к этому привыкать ... кстати, где есть внятные описания форматов IPv6 и их использования?
3. далеко не все (или почти никто?) и провайдеры (со стороны клиентов) и хостеры не обеспечивают (ещё?) поддержку IPv6 ... приходится использовать туннели IPv6 через IPv4, например, через Yggdrasil.
Что ещё
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
IPv6
IPv6 теория и практика: введение в IPv6
Для себя отмечаю:
Адреса IPv6
Адрес протокола IPv6 состоит из 128 бит, то есть, он в 4 раза длиннее 32-битного IPv4 адреса. Подобно IPv4, в этом адресе можно выделить две части: сеть и хост. То есть, не все биты в адресе имеют одинаковое значение. Часть битов слева (сколько именно зависит от префикса) обозначают сеть, остальные биты справа – идентифицируют устройство внутри сети. Часть, ответственная за хранение информации о хосте называется идентификатор интерфейса (interface id). В отличие от предыдущей версии протокола, в IPv6 не применяются маски подсети, так как они получились бы очень длинными, вместо этого используется префикс. который записывается так же через слеш после адреса. Например, префикс /64 означает, что из 128 бит, первые 64 – это сеть, а оставшаяся часть (в данном случае вторые 64) – это хост. Префикс описывает, сколько бит в адресе используется под хранение информации о сети.
Сам адрес записывают не в десятичном, а в шестнадцатеричном виде – так короче. Адрес разбивается на группы по 16 бит (хекстеты) и каждая группа представляется четырьмя шестнадцатеричными цифрами. Хекстеты отделяются друг от друга знаком двоеточия. Таким образом, адрес состоит из 8 хекстетов ([8 хекстетов]*[16 бит в хекстете]=[128 бит] – общая длина адреса).
Сокращение IPv6
Пример адреса: 2001:0DB8:AA100000:0000:0000:00FB. С таким длинным адресом работать достаточно неудобно, поэтому применяют сокращённую запись.
Для того чтобы сократить данный адрес надо последовательно применить два правила.
Правило 1
В каждом хекстете (группе из 4-х цифр) ведущие нули удаляются. Например, во втором хекстете 0DB0 заменяется на DB0. То есть ноль слева удаляется, ноль справа мы не трогаем. Если хекстет состоит из одних нулей, то он заменяется на один нуль. Таким образом адрес 2001:0DB0:0000:123A:0000:0000:0000:0030 преобразуется в 2001:DB0:0:123A:0:0:0:30. А, например, адрес loopback 0000:0000:0000:0000:0000:0000:0000:0001 заменяется на 0:0:0:0:0:0:0:1.
Правило 2
Это правило применяется только после первого. В адрес выбирается одна самая длинная группа, состоящая из полностью нулевых хекстетов, то есть самая длинная последовательность «:0:0:0:» и заменяется на два двоеточия «::». Эту замену можно произвести только один раз и только с самой длинной последовательностью, так как, если бы мы, например, сделали такую замену в двух местах адреса, то потом нельзя было бы восстановить, сколько именно хекстетов мы заменили в первом и во втором случае. Важный момент: нельзя заменять одну группу из :0: на ::, правило два применимо только если есть более одной нулевой группы.
Для примера возьмём адрес из предыдущей замены 2001:DB0:0:123A:0:0:0:30. Самая длинная последовательность из полностью пустых хекстетов – это «:0:0:0:», она начинается сразу после хекстета «123A». Есть ещё последовательность из одного пустого хекстета (между «DB0» и «123A»), но эта – длиннее, так что заменять будем её. Адрес станет совсем небольшим: 2001:DB0:0:123A::30 конечно, длиннее IPv4 адреса, но гораздо короче исходного.
Получение исходного адреса по сокращённой записи
Эта процедура достаточно тривиальна, если мы уже умеем сокращать адреса.
Сначала надо посчитать, сколько хекстетов в адресе осталось. В нашем случае, в адресе 2001:DB0:0:123A::30 осталось 5 хекстетов. Мы знаем, что адрес должен состоять из восьми хекстетов – значит вместо «::» возвращаем три недостающих нулевых, получаем 2001:DB0:0:123A:0:0:0:30. Теперь в каждой группе, где меньше четырёх цифр дописываем слева такое количество нулей, чтобы в группе стало четыре цифры. В результате получим исходный адрес 2001:0DB0:0000:123A:0000:0000:0000:0030.
При использовании IPv6 адреса в качестве URL, его необходимо заключать в квадратные скобки, при этом, если необходимо указать в URL-е порт, то его следует писать за пределами скобок – http://[200111a31f34:8a2e765d]:8080/.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
IPv6
Примеры
Теперь, чтобы закрепить понимание, приведём несколько примеров сокращения адресов. Сокращать будем по правилам в два этапа.Адрес loopback выглядит в сокращённой записи особенно элегантно ::1.Код: Выделить всё
FF80:0000:0000:0000:0123:1234:ABCD:EF12 → FF80:0:0:0:123:1234:ABCD:EF12 → FF80::123:1234:ABCD:EF12 FF02:0000:0000:0000:0000:0001:FF00:0300 → FF02:0:0:0:0:1:FF00:300 → FF02::1:FF00:300 2001:0DB8:0000:1111:0000:0000:0000:0200 → 2001:DB8:0:1111:0:0:0:200 → 2001:DB8:0:1111::200 0000:0000:0000:0000:0000:0000:0000:0001 → 0:0:0:0:0:0:0:1 → ::1 0000:0000:0000:0000:0000:0000:0000:0000 → 0:0:0:0:0:0:0:0 → ::
Даже если вы не пользуетесь IPv6, но работаете на одной из современных операционных, систем, у вас наверняка установлен этот протокол. Это легко проверить, пропинговав loopback.
Код: Выделить всё
olej@nvme:~$ ping -c3 ::1
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.036 ms
64 bytes from ::1: icmp_seq=3 ttl=64 time=0.036 ms
--- ::1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2024ms
rtt min/avg/max/mdev = 0.025/0.032/0.036/0.005 ms
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
IPv6
Код: Выделить всё
olej@R420:~$ ip a s dev tun0
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 53049 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet6 202:1a41:b65a:dbd6:c433:bd44:ea25:343f/7 scope global
valid_lft forever preferred_lft forever
inet6 fe80::541f:7901:3c55:d280/64 scope link stable-privacy
valid_lft forever preferred_lft forever
Код: Выделить всё
olej@R420:~$ ping -c3 -Itun0 fe80::541f:7901:3c55:d280/64
ping: fe80::541f:7901:3c55:d280/64: Неизвестное имя или служба
Код: Выделить всё
olej@R420:~$ ping -c3 -Itun0 fe80::541f:7901:3c55:d280
ping: Warning: source address might be selected on device other than: tun0
PING fe80::541f:7901:3c55:d280(fe80::541f:7901:3c55:d280) from :: tun0: 56 data bytes
64 bytes from fe80::541f:7901:3c55:d280%tun0: icmp_seq=1 ttl=64 time=0.060 ms
64 bytes from fe80::541f:7901:3c55:d280%tun0: icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from fe80::541f:7901:3c55:d280%tun0: icmp_seq=3 ttl=64 time=0.051 ms
--- fe80::541f:7901:3c55:d280 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2024ms
rtt min/avg/max/mdev = 0.046/0.052/0.060/0.005 ms
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
IPv6
Код: Выделить всё
olej@R420:~/2023/EmerCoin$ aptitude search ipv6
p ipv6calc - небольшая утилита для работы с адресами IPv6
p ipv6pref - utility to set IPv6 address preferences
p ipv6toolkit - Security assessment and troubleshooting tool for the IPv6 protocols
p liblwipv6-2 - User level (lightweight) TCP/IP stack with IPv6 support
p liblwipv6-dev - Development files for the LWIPv6 library
p libnet-frame-layer-ipv6-perl - module for encoding and decoding of the IPv6 layer
i A libnet-ipv6addr-perl - module to validate/manipulate IPv6 addresses
p libregexp-ipv6-perl - Regular expression for IPv6 addresses
p php-net-ipv6 - Check and validate IPv6 addresses
p thc-ipv6 - The Hacker Choice's IPv6 Attack Toolkit
p ucspi-tcp-ipv6 - command-line tools for building TCP client-server applications (IPv6)
Код: Выделить всё
olej@R420:~/2023/EmerCoin$ sudo apt install ipv6toolkit
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
ipv6toolkit
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 2 пакетов не обновлено.
Необходимо скачать 453 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 2.369 kB.
Пол:1 http://mirror.mirohost.net/ubuntu jammy/universe amd64 ipv6toolkit amd64 2.0+ds.1-1 [453 kB]
Получено 453 kB за 1с (778 kB/s)
Выбор ранее не выбранного пакета ipv6toolkit.
(Чтение базы данных … на данный момент установлено 551143 файла и каталога.)
Подготовка к распаковке …/ipv6toolkit_2.0+ds.1-1_amd64.deb …
Распаковывается ipv6toolkit (2.0+ds.1-1) …
Настраивается пакет ipv6toolkit (2.0+ds.1-1) …
Обрабатываются триггеры для man-db (2.10.2-1) …
Код: Выделить всё
olej@R420:~/2023/EmerCoin$ apt content ipv6toolkit
/.
/etc
/etc/ipv6toolkit.conf
/usr
/usr/bin
/usr/bin/addr6
/usr/sbin
/usr/sbin/blackhole6
/usr/sbin/flow6
/usr/sbin/frag6
/usr/sbin/icmp6
/usr/sbin/jumbo6
/usr/sbin/na6
/usr/sbin/ni6
/usr/sbin/ns6
/usr/sbin/path6
/usr/sbin/ra6
/usr/sbin/rd6
/usr/sbin/rs6
/usr/sbin/scan6
/usr/sbin/script6
/usr/sbin/tcp6
/usr/sbin/udp6
/usr/share
/usr/share/doc
/usr/share/doc/ipv6toolkit
/usr/share/doc/ipv6toolkit/changelog.Debian.gz
/usr/share/doc/ipv6toolkit/copyright
/usr/share/doc/ipv6toolkit/README.TXT
/usr/share/ipv6toolkit
/usr/share/ipv6toolkit/service-names-port-numbers.csv
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/ipv6toolkit
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/addr6.1.gz
/usr/share/man/man1/blackhole6.1.gz
/usr/share/man/man1/flow6.1.gz
/usr/share/man/man1/frag6.1.gz
/usr/share/man/man1/icmp6.1.gz
/usr/share/man/man1/jumbo6.1.gz
/usr/share/man/man1/na6.1.gz
/usr/share/man/man1/ni6.1.gz
/usr/share/man/man1/ns6.1.gz
/usr/share/man/man1/path6.1.gz
/usr/share/man/man1/ra6.1.gz
/usr/share/man/man1/rd6.1.gz
/usr/share/man/man1/rs6.1.gz
/usr/share/man/man1/scan6.1.gz
/usr/share/man/man1/script6.1.gz
/usr/share/man/man1/tcp6.1.gz
/usr/share/man/man1/udp6.1.gz
/usr/share/man/man5
/usr/share/man/man5/ipv6toolkit.conf.5.gz
/usr/share/man/man7
/usr/share/man/man7/ipv6toolkit.7.gz
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
IPv6
Всё что касается нативного IPv6 требует для меня глубокого переосмысления
Упёрся вот здесь в проблему, убил на неё целый день - Yggdrasil in LAN:
Как только я поубирал (то и другое в настройках), так на физических интерфейсах возникли внутренние (link-local) адреса IPv6 вида fe80::/10 :Olej писал(а): ↑12 апр 2023, 11:25Как оказывается (когда я проверил) что у меня на большинстве компьютеров (только Linux) настройками Network Manager стоит для физических сетевых интерфейсов "Требовать адресацию IPv4 для этого соединения" и для IPv6 "Выключено".
Причины тому понятны: 1). меня никогда не интересовали нативные IPv6 (толку от них никакого) + 2). провайдер мой (хоть и оптоволоконный GPON) никогда не поддерживал IPv6 ... и, по моим вопросам, даже мыслью такой не задавался, 3). хостер вот этого форума (с другого конца) тоже на текущей площадке хостинга IPv6 не поддерживает...
Код: Выделить всё
olej@nvidia:~$ ip a s dev eno1
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 70:71:bc:a3:c5:c0 brd ff:ff:ff:ff:ff:ff
altname enp0s25
inet 192.168.1.11/24 brd 192.168.1.255 scope global noprefixroute eno1
valid_lft forever preferred_lft forever
inet6 fe80::762:c6bf:9eaa:93a9/64 scope link noprefixroute
valid_lft forever preferred_lft forever
И на эти IPv6 локальные хосты в LAN могут пинговать друг-друга ... вот совершенно другой хост:
Код: Выделить всё
olej@nvme:~$ ip a s dev enp3s0
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 10:7b:44:47:a2:47 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.241/24 brd 192.168.1.255 scope global dynamic noprefixroute enp3s0
valid_lft 169872sec preferred_lft 169872sec
inet6 fe80::522d:d0bd:b221:a526/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Код: Выделить всё
olej@nvme:~$ ping -6 -c3 fe80::762:c6bf:9eaa:93a9
PING fe80::762:c6bf:9eaa:93a9(fe80::762:c6bf:9eaa:93a9) 56 data bytes
64 bytes from fe80::762:c6bf:9eaa:93a9%enp3s0: icmp_seq=1 ttl=64 time=0.707 ms
64 bytes from fe80::762:c6bf:9eaa:93a9%enp3s0: icmp_seq=2 ttl=64 time=0.389 ms
64 bytes from fe80::762:c6bf:9eaa:93a9%enp3s0: icmp_seq=3 ttl=64 time=0.359 ms
--- fe80::762:c6bf:9eaa:93a9 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2030ms
rtt min/avg/max/mdev = 0.359/0.485/0.707/0.157 ms
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
IPv6
Но вот хост в WAN с "белым" IPv4 (это сервер этого форума ... путешествующие между хостерами и хостингами, и стоящий на сейчас в Казахстане ):
Код: Выделить всё
olej@277938:~$ ip a s dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 2e:49:10:b4:b2:02 brd ff:ff:ff:ff:ff:ff
inet 90.156.230.27/24 brd 90.156.230.255 scope global dynamic eth0
valid_lft 82945sec preferred_lft 82945sec
inet6 fe80::2c49:10ff:feb4:b202/64 scope link
valid_lft forever preferred_lft forever
Код: Выделить всё
olej@277938:~$ ping -6 -c3 fe80::762:c6bf:9eaa:93a9 -Ieth0
ping6: Warning: source address might be selected on device other than eth0.
PING fe80::762:c6bf:9eaa:93a9(fe80::762:c6bf:9eaa:93a9) from :: eth0: 56 data bytes
From fe80::2c49:10ff:feb4:b202%eth0: icmp_seq=1 Destination unreachable: Address unreachable
From fe80::2c49:10ff:feb4:b202%eth0: icmp_seq=2 Destination unreachable: Address unreachable
From fe80::2c49:10ff:feb4:b202%eth0: icmp_seq=3 Destination unreachable: Address unreachable
--- fe80::762:c6bf:9eaa:93a9 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 42ms
pipe 3
Код: Выделить всё
olej@nvme:~$ ping -6 -c3 fe80::2c49:10ff:feb4:b202
PING fe80::2c49:10ff:feb4:b202(fe80::2c49:10ff:feb4:b202) 56 data bytes
From fe80::522d:d0bd:b221:a526%enp3s0 icmp_seq=1 Destination unreachable: Address unreachable
From fe80::522d:d0bd:b221:a526%enp3s0 icmp_seq=2 Destination unreachable: Address unreachable
From fe80::522d:d0bd:b221:a526%enp3s0 icmp_seq=3 Destination unreachable: Address unreachable
--- fe80::2c49:10ff:feb4:b202 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2027ms
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 32 гостя