Пишу, по большей части, про историю, свою жизнь и немного про программирование.

IPv6

Так как по прогнозам в следующем году, возможно, уже кончатся IPv4, то я уже какое-то время присматриваюсь к IPv6. У меня в загашнике уже есть функции на PHP, которые конвертируют IPv6 в бинарный формат и обратно (по типу ip2long и long2ip) и я иногда вижу как в $_SERVER[’REMOTE_ADDR’] проскакивают длинные адреса.

C IPv6 связано два очень распространнёных заблуждения.

Первое — значение цифры «шесть» в названии протокола. Многие думают, что это длина адреса в байтах. Это не так. Адрес в IPv6 длиной 128 бит (16 байт), например, давайте попробуем запросить IPv6 адрес «Гугла»:

bolk-dev ~ $ host -t aaaa ipv6.google.com
ipv6.google.com         CNAME   ipv6.l.google.com
ipv6.l.google.com       AAAA    2A00:1450:8001:0:0:0:0:69
ipv6.l.google.com       AAAA    2A00:1450:8001:0:0:0:0:67
ipv6.l.google.com       AAAA    2A00:1450:8001:0:0:0:0:93
ipv6.l.google.com       AAAA    2A00:1450:8001:0:0:0:0:63
ipv6.l.google.com       AAAA    2A00:1450:8001:0:0:0:0:68
ipv6.l.google.com       AAAA    2A00:1450:8001:0:0:0:0:6A

Вот типичный адрес этого протокола: «2A00:1450:8001:0:0:0:0:69», в полной форме он будет выглядеть как «2A00:1450:8001:0000:0000:0000:0000:0069», как видите — 16 байт. «Шестёрка» на самом деле относится к версии протокола (v6 — это «version 6»), есть так же IPv5.

Кстати, можно записать рассмотренный адрес ещё короче: «2A00:1450:8001::69». В краткой записи одна (только одна) последовательность нулей в адресе может быть заменена на «::».

Второе заблуждение — что в IPv6 поменялась только длина адреса. Опять же, это не так. Не буду переписывать «Википедию», там можно почитать подробнее, для краткости перечислю основные отличия: оптимизация обработки, автоконфигурация без сохранения состояния, защита данных (основана на IPSec) и мобильность. Другое дело, что с внедрением новых функций есть весьма специфические проблемы, но это другая тема.

Несмотря на то, что адреса IPv4 кончаются, интернет на IPv6 мы увидим ещё не скоро. Тому есть масса причин, от инерции (куча оборудования работает только на v4), до технологических (некоторые вещи в v6 работают иначе).

Придумана масса костылей, чтобы не переходить на новую версию. Например, LSN — широкомасштабный NAT, который пропускает через себя трафик для NAT’ов поменьше или смешная штука PRR, которая позволяет выделять провайдеру не просто фиксированный IPv4-адрес, а адрес и фиксированный набор портов (а другие порты будет использовать другой провайдер).

В любом случае, переход, конечно состоится, ведь новые устройства поддерживают шестую версию и однажды окажется, что v4 можно будет выключить, что постепенно и будет происходить.

Но готовиться уже надо: в сети есть устройства, которые ходят только через IPv6, я их ооооочень редко, но встречал в логах.

12 комментариев
Алик Кириллович (www.alik.su) 2010

то я уже какое-то время присматриваюсь к IPv4

Наверно, все-таки, присматриваетесь к IPv6.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для www.alik.su:

Да, действительно, спасибо!

fantaseour.livejournal.com 2010

<object width=«425» height=«344»><param name=«movie» value=» http://www.youtube.com/v/_y36fG2Oba0%26hl=en_US%26fs=1%26%22%3E%3C/param%3E%3Cparam name=«allowFullScreen» value=«true«></param><param name=»allowscriptaccess» value=«always«></param><embed src=» http://www.youtube.com/v/_y36fG2Oba0%26hl=en_US%26fs=1%26%22 type=«application/x-shockwave-flash» allowscriptaccess=«always» allowfullscreen=«true» width=«425» height=«344»></embed></object>

fantaseour.livejournal.com 2010

Ну блин.... гики не читают примечание...
http://www.youtube.com/watch?v=_y36fG2Oba0

Евгений Степанищев (bolknote.ru) 2010

Комментарий для fantaseour.livejournal.com:

:)) Вот тут слова есть: http://www.flixxy.com/routers-song.htm

jimidini (jimidini.ya.ru) 2010

а я уже некоторое время назад настроил на домашнем рутере автоматическое поднятие туннеля на Freenet6. Таким образом все домашние компьютеры могут ходить как на ipv4 так и на ipv6 адреса. для экспериментов удобно

Евгений Степанищев (bolknote.ru) 2010

Комментарий для jimidini.ya.ru:

А что такое Freenet6?

jimidini (jimidini.ya.ru) 2010

Комментарий для Евгения Степанищева:

это один из самых крупных бесплатных IPv6 tunnel brokers

http://gogonet.gogo6.com/page/freenet6-services

Евгений Степанищев (bolknote.ru) 2010

Комментарий для jimidini.ya.ru:

Спасибо!

zencd.livejournal.com 2010

хаха, я тоже думал что в нём шесть байт

wiktar (wiktar.com) 2010

Спасибо за заметку!

Теперь буду помнить, что в $_SERVER[’REMOTE_ADDR’] могут встречаться ipv6 адреса :). Т. к. даже не думал раньше их там встретить.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для wiktar.com:

Насколько я понимаю, если у сервера нет IPv6 адреса, то нет и шанса встретить в этой переменной длинный адрес, но, с другой стороны, откуда я, например, узнаю, что у моего хостера такой адрес появился?