Шестая версия протокола IP
Как я писал уже где-то год тому назад, для обмена данными компьютеры используют так называемый IP-протокол. На данный момент практически везде используется четвертая версия этого протокола; она вполне устраивает пользователей, однако имеет два недостатка - не всем может достаться реальный IP-адрес и, что более критично, через некоторое время все реальные IP-адреса должны закончиться (подробнее можете почитать в моих статьях про IP-адреса и структуру интернета).
Эта статья расскажет вам о шестой версии протокола IP, на которую должен со временем перебраться интернет. И хотя пока этим протоколом пользуются лишь доли процента, интерес этот протокол представляет отнюдь не только теоретический - вы можете извлечь реальную выгоду и, например, увеличить скорость работы торрентов. Хотите узнать, как?
Устройство IPv6
Но для начала несколько слов об устройстве протокола IPv6. Если классический IP-адрес по четвертой версии представлял собой набор из четырех байт - чисел от 0 до 255, то IPv6-адрес существенно длиннее - он выглятит примерно как 2001:0db8:0049:0000:ab00:0000:0000:0102. Как вы видите, здесь уже используется 128 бит (32 шестнадцатиричных числа), первые 64 из которых должны иерархически определять организацию, провайдера и.т.п., а последние 64 являются уникальным идентификатором сетевого устройства и формируются обычно на основе MAC-адреса. Даже первых 64 бит хватает для того, чтобы выстроить сетевую иерархию таким образом, чтобы каждому устройству достался реальный адрес - переход от 32 бит к 64 бит немысленным образом повышает запас адресов.
Как передаются данные с одного IPv6-адреса на другой? Как и раньше, используется иерархия. Пакет поднимается по иерархии до тех пор, пока не сможет начать спускаться вниз.
Сосуществование
На данный момент IPv6 сети - островки в океане IPv4. Как же они общаются друг с другом? Как пользователи IPv6 общаются с пользователями IPv4? В принципе, все не так уж и сложно. На время сосуществования протоколов были созданы так называемые адреса 6to4. Это - специальные IPv6 адреса, которые могут получать компьютеры, имеющие реальные IPv4 адреса. Такой адрес в формате IPv6 начинается с 2002 (16 бит), далее идет представление IPv4 адреса. Такой компьютер должен иметь два сетевых интерфейса - один смотрит в IPv4 мир, другой - во внутреннюю IPv6 сеть.
Подобная организация позволяет переправлять данные из одного IPv6 острова в другой. Но согласитесь, не для этого ведь создавали новую версию протокола! Так что теоретически через некоторое время ситуация должна смениться на обратную - это IPv4 адреса будут островами, и уже вместо 6to4 точек будут 4to6 точки, позволяющие IPv4-островам выходить в настоящий интернет будущего.
Teredo
Но довольно теории, перейдем к практике. Мы не хотим ждать повсеместного распространения IPv6, а хотим воспользоваться его преимуществами прямо сейчас! Как мы это будем делать? Очень просто, мы получим реальный IPv6 адрес, даже если наш IPv4 адрес - серый. Если вы читали статьи про протоколы, вы должны сейчас возмутиться и сказать, что такое невозможно, что нельзя установить соединение между двумя серыми IP адресами. Я тоже так думал долгое время, но дело в том, что существует интересная технология под названием UDP hole punching, позволяющая "прокидывать" такие соединения. И если статья по ссылке была лишь теоретическим описанием этой технологии, то сейчас мы перейдем к практике и воспользуемся протоколом Teredo.
Протокол Teredo - это технология соединения реальных IPv6 адресов, спрятанных за серыми IPv4 адресами. IPv6 пакеты инкапсулируются в обычный IPv4 трафик, для установки соединения используется UDP hole punching. Что нам потребуется? Получить IPv6 адрес от какого-нибудь сервиса в интернете, предоставляющего такую услугу. После этого вы сможете обмениваться данными с любыми IPv6 устройствами в интернете, и ваш адрес будет реальным. На Teredo-сервер нагрузки почти не будет - он лишь будет помогать вам устанавливать соединение.
Где же мы найдем такой адрес? Я предлагаю воспользоваться сервисом gogonet. Скачиваем клиент по адресу http://gogonet.gogo6.com/page/download-1, регистрируемся здесь, вводим регистрационные данные в настройки клиента. После запуска вы должны установить соединение и получить реальный адрес. Адрес будет начинаться с 2001 (не путать с префиксом 2002 для 6to4 адресов). Теперь вам станут доступны сайты, видимые только в IPv6 мире (я, правда, знаю только два примера: ipv6.google.com и сайт www.kame.net - черепаха на сайте будет танцевать только если вы подключились по IPv6). Вот - мой результат его трассировки:
traceroute6 www.kame.net
traceroute to www.kame.net (2001:200:0:8002:203:47ff:fea5:3085), 30 hops max, 80 byte packets
1 2001:5c0:1400:b::6b96 (2001:5c0:1400:b::6b96) 44.122 ms 44.567 ms 44.638 ms
2 2001:4de0:1000:a22::1 (2001:4de0:1000:a22::1) 45.486 ms 45.765 ms 45.830 ms
3 5-1.r2.am.v6.hwng.net (2001:4de0:a::1) 45.489 ms 45.570 ms *
4 * * *
5 * * *
6 * po-2.a15.tokyjp01.jp.ra.gin.ntt.net (2001:218:0:6000::116) 327.940 ms 327.905 ms
7 ge-8-2.a15.tokyjp01.jp.ra.gin.ntt.net (2001:218:2000:5000::82) 328.328 ms 327.971 ms 328.483 ms
8 ve44.foundry6.otemachi.wide.ad.jp (2001:200:0:10::141) 326.141 ms 326.255 ms 326.366 ms
9 ve42.foundry4.nezu.wide.ad.jp (2001:200:0:11::66) 325.815 ms 326.193 ms 326.459 ms
10 ve45.foundry2.yagami.wide.ad.jp (2001:200:0:12::74) 326.935 ms 326.962 ms 326.781 ms
11 2001:200:0:4803:212:e2ff:fe28:1ca2 (2001:200:0:4803:212:e2ff:fe28:1ca2) 327.250 ms * 327.328 ms
12 orange.kame.net (2001:200:0:8002:203:47ff:fea5:3085) 328.486 ms 328.403 ms 327.950 ms
Ускоряем торренты
Как вы знаете, одна из больших проблем скачивания через торренты заключается в том, что если у вас и у другого клиента серые адреса, то вы соединиться не сможете. IPv6 и протокол Teredo позволят вам решить эту проблему. Если вы уже запустили клиент и получили IPv6 адрес, то вы сможете напрямую соединяться с другими пользователями IPv6. Главное - чтобы трекер тоже поддерживал IPv6 адреса, но, например, Пиратская Бухта уже активно поддерживает этот протокол. Дело за rutracker.org?
Дата: 13 июля 2010 г., категория: основы интернета.
| ← Webmoney - Classic или Light - выбираем | Платежи в интернете. Альтернативы → |
Комментарии
1# |
А по-моему трафик таки идет через Teredo-cервера. То есть обычный туннель. |
2# | Sander Нуу... кто бы стал бесплатно делать сервера такой пропускной способности! А нагрузка для установки соединения - это существенно меньше. |
3# |
Так и пропускная способность не огромная.
|
4# | Sander Но это не доказательство. Что мешает ICMP-пакетам идти через teredo-сервер, а TCP и UDP - напрямую.
|
5# |
Посмотрел Microsoft Network Monitor'ом. Процесс gogoc.exe. IPV4 пакеты на 202.169.175.22 (Remote Endpoint) и UDP внутри. |
6# | Sander То есть туда весь трафик идет? Независимо от того, с каким IPv6 адресом соединяться? |
7# |
Похоже на то. Я погонял на нескольких адресах. И это как раз отличает этот сервис от технологии Teredo, где действительно Teredo-сервер помогает лишь установить UDP-"соединение" с инкапсулированным IPv6. В Teredo IPv6 адрес содержит в себе IPv4 адрес NATа и номер порта NATа, на который проброшен туннель.
|
8# | Sander Занятно. Я тоже не являюсь специалистом, но все эти выкладки очень правдоподобны.
|
9# |
Винда (Vista, 7) имплементирует Teredo-клиент. Посмотреть текущее состояние клиента можно командой:
|
10# |
Хмм... Это, конечно хорошо... только еще сопрячь бы все это - чтобы кто-то, с кем этим клиентом можно общаться, еще и выдал искомый IPv6 адрес.
|
11# |
IPv6 адрес в этом случае выдает Teredo-сервер, он начинается с 2002: и содержит внутри себя публичный IPv4 и внешний порт. Используя его, можно напрямую соединяться с другими Teredo-клиентами (через UDP hole punching). Для выхода в реальную IPv6 сеть на границе сетей должен быть установлен Teredo-релей (не путать с Teredo-сервер), который выполняет роль шлюза между Teredo-протоколом и true IPv6 сетью. |
12# |
Здравствуйте, Sander.
|
13# | Sander Да, это в принципе возможно.
|

