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, я их ооооочень редко, но встречал в логах.
Наверно, все-таки, присматриваетесь к IPv6.
Комментарий для www.alik.su:
Да, действительно, спасибо!
<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>
Ну блин.... гики не читают примечание...
http://www.youtube.com/watch?v=_y36fG2Oba0
Комментарий для fantaseour.livejournal.com:
:)) Вот тут слова есть: http://www.flixxy.com/routers-song.htm
а я уже некоторое время назад настроил на домашнем рутере автоматическое поднятие туннеля на Freenet6. Таким образом все домашние компьютеры могут ходить как на ipv4 так и на ipv6 адреса. для экспериментов удобно
Комментарий для jimidini.ya.ru:
А что такое Freenet6?
Комментарий для Евгения Степанищева:
это один из самых крупных бесплатных IPv6 tunnel brokers
http://gogonet.gogo6.com/page/freenet6-services
Комментарий для jimidini.ya.ru:
Спасибо!
хаха, я тоже думал что в нём шесть байт
Спасибо за заметку!
Теперь буду помнить, что в $_SERVER[’REMOTE_ADDR’] могут встречаться ipv6 адреса :). Т. к. даже не думал раньше их там встретить.
Комментарий для wiktar.com:
Насколько я понимаю, если у сервера нет IPv6 адреса, то нет и шанса встретить в этой переменной длинный адрес, но, с другой стороны, откуда я, например, узнаю, что у моего хостера такой адрес появился?