Избавление от:
- NAT
- Global IP black list
В одном флаконе.
В свете новостей, в моей trello-доске появилась скромная запись: «Долг перед интернетом».
Я серьезно по несколько часов в день думал, как же нам избежать закручивания гаек.
Лирику в сторону.
Неприемлемые трудности в сети интернет
Необходимость в обоюдной доступности
Думаю обьяснять причины введения IPv6 не требуется. Для рядового пользователя это прежде всего серый айпи адрес. UPNP решает эту проблему, но мне кажется не в том ключе.
IETF согласно с этим мнением, поэтому подобные проблемы в IPv6 отсуствуют. Но, к сожалению, энтузиазм по внедрению этого стандарта не хлещет. Решения вроде 6to4, они не для каждого пользователя, а только технически подкованного.
Существование hamachi, использование корневых серверов в TeamViewer, многообразие обходов NAT в Skype только подтверждает остроту этой проблемы.
Глобальная блокировка
Надеюсь в русском сообществе объяснять не придется(1 2 3). Я может был бы не против происходящего, если бы представители власти слышали(а не смеялись как в детском саду) мнение граждан, в установленном порядке. Если так не проходит — придется применять методы технического неподчинения.
Сразу хочу сказать, первые версии не ставят перед собой подобную цель, но возможность такого развития заложено в архитектуру системы. Система может работать в пассивном режиме: когда требуемый адрес не установил необходимое ПО, обращаться к нему через посредника в другой стране.
Промежуточный стандарт
Я поставил перед собой цель: предоставить возможность любому пользователю, прямо сегодня, воспользоваться основными преемуществами ipv6(так же просто как предоставляется VPN в Hamachi):
- Соедениться с любым участником, так, будто вы находитесь в одной локальной сети
- Быть уверенным, что ваш трафик не подслушивают, и не подменивают
При этом, решение не должно требовать поддержки технологии в промежуточных узлах сети(вроде провайдера).
Идея
Все участники получают уникальные адреса из одного диапазона(feed::/16, site-local, deprecated range), и на каждой машине создается виртуальный интерфейс, с маской сети, включающей все адреса. Любой трафик, направленный адресату, попадает на виртуальный интерфейс(по правилам роутинга ОС), после чего инкапсулируется, и передается внутри сети до адресата.
На выходе, драйвер извлекает передаваемый траффик, и в первозданном виде выдает его на интерфейс.
Такое решение принято для ускорения разработки: tcp-states, и другие служебные сообщения обрабатывать не придется
Просьба
Всем желающим улучшить интернет, давайте допишем спецификацию, а после этого, займемся разработкой Open Source решения.
Автор: Offenso