moder
Администратор
Команда форума
Источник: http://habrahabr.ru/post/252611/
Увидел я как-то IPv6 Teredo пиров в µTorrent под Windows, которые качали куски с довольно приличной скоростью, и тут меня осенило…
Что такое Teredo?
Teredo — технология туннелирования IPv6 через IPv4 UDP-пакеты. Она задумывалась как переходная технология, которая работает за NAT, и, в общем, более-менее выполняет возложенные на нее обязанности. Teredo позволяет получить доступ в IPv6-интернет через публичные Teredo-серверы. Интересно то, что в Windows 7, 8 и 8.1 Teredo настроен и включен по умолчанию, прямо из коробки, и использует сервер Teredo от Microsoft (teredo.ipv6.microsoft.com).
Зачем это нам?
Веб-сайты, определенные ссылки которых по тем или иным причинам оказались в реестре запрещенных сайтов, могут организовать доступ с использованием Teredo, что позволит вернуть доступ к сайту примерно 80-85% пользователям современных версий Windows без дополнительных настроек и ПО! Доступ через Teredo позволяет обойти все протестированные DPI-решения, применяемые провайдерами. Роскомнадзор не только не может внести такие страницы в реестр, но и не может получить к ним доступ (вероятно, Teredo у них не работает):
Особенности сервера Teredo от Microsoft
Для доступа в «обычный» IPv6, в Teredo используются Relay-серверы, которые имеют полный IPv6-доступ и работают как прокси-серверы. В свою очередь, relay-серверы Teredo от Microsoft не позволяют получить доступ в «обычный» IPv6 или к другим Teredo-серверам, разрешая только связность Teredo-клиентов, настроенных на сервер Microsoft, и образуя такую большую закрытую сеть из Windows-компьютеров.
Особенности реализации DNS в Windows
Если в ОС Windows имеется только Teredo IPv6-адрес, резолвер DNS не будет даже пытаться получать AAAA-запись у доменов. Таким образом, просто так зайти на сайт по доменному имени, даже если у него есть только AAAA-запись и нет A-записи, не получится. Это можно отключить специальным параметром в реестре, но это неинтересно, т.к. требует действий на стороне клиента.
Что делать?
Выход простой и не очень элегантный — использовать домен с доступом по IPv4, который сделает HTTP-перенаправление на Teredo IPv6-адрес. Можно делать как обычное перенаправление кодом 307 или 301, так и через javascript, предварительно проверяя доступность Teredo-адреса или комбинируя с другими решениями обхода блокировки.
Как настроить?
Чтобы разместить веб-сайт в Teredo под Linux, вам необходимо использовать Teredo-клиент miredo, и обязательно настроить его на использование сервера teredo.ipv6.microsoft.com. Также, чтобы у вас как можно реже менялся Teredo-адрес, рекомендую задать статический исходящий порт в конфигурационном файле miredo (/etc/miredo/miredo.conf или /etc/miredo.conf, зависит от дистрибутива), т.е. установить параметр BindPort.
Убедитесь, что ваш веб-сервер слушает IPv6-адреса. Для nginx, это параметр listen.
Мой конфиг выглядит примерно так:
Увидел я как-то IPv6 Teredo пиров в µTorrent под Windows, которые качали куски с довольно приличной скоростью, и тут меня осенило…
Что такое Teredo?
Teredo — технология туннелирования IPv6 через IPv4 UDP-пакеты. Она задумывалась как переходная технология, которая работает за NAT, и, в общем, более-менее выполняет возложенные на нее обязанности. Teredo позволяет получить доступ в IPv6-интернет через публичные Teredo-серверы. Интересно то, что в Windows 7, 8 и 8.1 Teredo настроен и включен по умолчанию, прямо из коробки, и использует сервер Teredo от Microsoft (teredo.ipv6.microsoft.com).
Зачем это нам?
Веб-сайты, определенные ссылки которых по тем или иным причинам оказались в реестре запрещенных сайтов, могут организовать доступ с использованием Teredo, что позволит вернуть доступ к сайту примерно 80-85% пользователям современных версий Windows без дополнительных настроек и ПО! Доступ через Teredo позволяет обойти все протестированные DPI-решения, применяемые провайдерами. Роскомнадзор не только не может внести такие страницы в реестр, но и не может получить к ним доступ (вероятно, Teredo у них не работает):
К тому же, у Роскомнадзора нет полномочий блокировать страницы, которые перенаправляют на другие страницы, и кнопка «Актуальный Навальный» тому подтверждение.Здравствуйте
Благодарим Вас за активную гражданскую позицию, однако сообщаем, что Ваша заявка была отклонена по следующим возможным причинам:
— на момент проведения проверки экспертами, указанный в Вашем обращении адрес http://[2001:0:9d38:6ab8:30c4:d940:9469:f43e]/ был не доступен;
— указанный в Вашем обращение адрес http://[2001:0:9d38:6ab8:30c4:d940:9469:f43e]/ указан неверно, либо идет перенаправление на другой адрес;
— указанный в Вашем обращение адрес http://[2001:0:9d38:6ab8:30c4:d940:9469:f43e]/ требует обязательной регистрации/авторизации.
С уважением,
ФЕДЕРАЛЬНАЯ СЛУЖБА ПО НАДЗОРУ В СФЕРЕ СВЯЗИ, ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И МАССОВЫХ КОММУНИКАЦИЙ.
Особенности сервера Teredo от Microsoft
Для доступа в «обычный» IPv6, в Teredo используются Relay-серверы, которые имеют полный IPv6-доступ и работают как прокси-серверы. В свою очередь, relay-серверы Teredo от Microsoft не позволяют получить доступ в «обычный» IPv6 или к другим Teredo-серверам, разрешая только связность Teredo-клиентов, настроенных на сервер Microsoft, и образуя такую большую закрытую сеть из Windows-компьютеров.
Особенности реализации DNS в Windows
Если в ОС Windows имеется только Teredo IPv6-адрес, резолвер DNS не будет даже пытаться получать AAAA-запись у доменов. Таким образом, просто так зайти на сайт по доменному имени, даже если у него есть только AAAA-запись и нет A-записи, не получится. Это можно отключить специальным параметром в реестре, но это неинтересно, т.к. требует действий на стороне клиента.
Что делать?
Выход простой и не очень элегантный — использовать домен с доступом по IPv4, который сделает HTTP-перенаправление на Teredo IPv6-адрес. Можно делать как обычное перенаправление кодом 307 или 301, так и через javascript, предварительно проверяя доступность Teredo-адреса или комбинируя с другими решениями обхода блокировки.
Как настроить?
Чтобы разместить веб-сайт в Teredo под Linux, вам необходимо использовать Teredo-клиент miredo, и обязательно настроить его на использование сервера teredo.ipv6.microsoft.com. Также, чтобы у вас как можно реже менялся Teredo-адрес, рекомендую задать статический исходящий порт в конфигурационном файле miredo (/etc/miredo/miredo.conf или /etc/miredo.conf, зависит от дистрибутива), т.е. установить параметр BindPort.
Убедитесь, что ваш веб-сервер слушает IPv6-адреса. Для nginx, это параметр listen.
Мой конфиг выглядит примерно так:
Код:
server {
server_name 5yo.panty.shot.valdikss.org.ru;
location / {
return 307 http://[2001:0:9d38:90d7:899:d93f:9469:f43e]/;
}
}
server {
listen [2001:0:9d38:90d7:899:d93f:9469:f43e]:80;
server_name [2001:0:9d38:90d7:899:d93f:9469:f43e];
root /usr/share/nginx/html/pantyshot/;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Последнее редактирование: