Darbe.ru

Быт техника Дарби
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Что такое IPv6 и зачем он нужен

Что такое IPv6 и зачем он нужен?

Любое устройство, будь то компьютер, мобильный телефон или КПК, при подключении к Интернету должно получить уникальный числовой идентификатор, называемый IP-адресом. Рядовые пользователи Интернета практически не сталкиваются с IP-адресами благодаря существованию системы доменных имен (DNS). Если человек хочет зайти на сайт, он просто вводит его доменное имя, не задумываясь о цифрах. Однако именно числовые IP-адреса лежат в основе функционирования Всемирной паутины.
Формат IP-адреса определен в IP-протоколе, основная функция которого – передача данных через набор объединенных компьютерных сетей. Выбор пути передачи данных называется маршрутизацией.
Сегодня в Интернете используется протокол IPv4, созданный в 70-е годы прошлого столетия. Каждый IP-адрес в нем состоит из 32 бит и представлен в виде четырех чисел по 8 бит, разделенных точками. Такой подход позволяет получить более четырех миллиардов уникальных IP-адресов. На заре эры Интернета казалось, что этого более чем достаточно. А поэтому адреса целыми блоками выдавались напрямую организациям, среди которых преобладали научные учреждения и университеты.
Однако быстрый рост популярности Сети показал, что свободные идентификаторы закончатся гораздо быстрее, чем предполагалось изначально. Число устройств, способных подключаться к Интернету, многократно возросло. Эксперты рассчитали, что при нынешних темпах развития Интернета возможностей системы IPv4 хватит еще на 5 лет. По данным корпорации ICANN на октябрь 2007 года, осталось всего лишь чуть более 650 тыс. свободных IP-адресов.
Пессимисты утверждают, что IPv4 исчерпает себя уже в 2009 году. Протокол обладает и рядом других существенных недостатков. В 32-битном пространстве достаточно сложно построить и упорядочить структуру адресов, что приводит к увеличению маршрутных таблиц и, следовательно, значительно усложняет маршрутизацию в Интернете.
Кроме того, в протоколе не предусмотрены механизмы информационной безопасности, например, отсутствует возможность шифрования данных.
Наконец, в IPv4 не поддерживается качество обслуживания, то есть информация о пропускной способности и задержках, которая необходима для работы некоторых сетевых приложений.
Ученые давно задумались над возможным усовершенствованием IPv4. В конце 70х для передачи голосовых и видеоданных был разработан экспериментальный протокол ST, который затем был модернизирован в ST2. Он представлял собой надстройку к уже существовавшему IPv4 и использовался в ряде коммерческих проектов, однако широкого распространения так и не получил. Неофициально ST2 называли протоколом IPv5.
В 1992 году появилась новая технология, которая получила название IPv6 или Internet Protocol version 6. В IPv6 длина IP-адреса расширена до 128 бит, поэтому число доступных идентификаторов увеличивается практически до бесконечности.
Таким образом, применение этой технологии позволяет снабдить каждое устройство, имеющее доступ в Интернет, уникальным IP-адресом. А это обеспечивает непосредственное взаимодействие всех устройств, подключенных к Сети. Такое взаимодействие даст возможность, например, управлять кондиционером, находящимся у вас дома, прямо из офиса. Помимо увеличения адресного пространства протокол обладает и другими преимуществами. Например, в IPv6 существует отдельный тип адресов "anycast address", который позволяет устройству (в терминологии адресации оно называется узлом), подключенному к Интернету, отправлять запрос любой группе серверов. Это дает возможность узлу определить сервер, находящийся к нему ближе других и далее взаимодействовать только с ним.
Кроме того, в новом протоколе был улучшен формат заголовка пакета данных. Ряд его полей, которые существовали в IPv4, не вошли в IPv6, часть из них стала необязательной, а некоторые были усовершенствованы. При этом в заголовке IPv6 появилось несколько новых полей. С их помощью можно задать хосту-отправителю приоритет для своих пакетов, а также обеспечить потоковую обработку, что значительно ускоряет маршрутизацию. В результате оптимизации заголовка число полей сократилось с 14 до 8, что позволяет существенно увеличить скорость обмена данными между устройствами. Стоит отметить, что протокол позволяет при необходимости добавлять в IP-заголовки новые поля.
Еще одна важная особенность IPv6 заключается в том, что в нем реализована возможность шифрования данных и поддерживается сервис качества обслуживания, особенно необходимый для мультимедийных трансляций.
Таким образом, новая технология обладает рядом преимуществ. Поэтому сегодня уже идет подготовительный этап по ее полноценному внедрению. В частности, утверждена политика делегирования новых IP-адресов. Согласно ей, каждый адрес может быть приписан только одному устройству и должен быть зарегистрирован в специальной базе данных. При этом распределение нового адресного пространства должно происходить с максимальным использованием принципов иерархии. Это необходимо для того, чтобы не допустить разрастания таблиц маршрутизации.
Схема делегирования адресов в IPv6 имеет следующий вид: корпорация ICANN, выполняющая IANA функции (к ним относится распределение адресного пространства), передает блок IP-адресов своему региональному представителю (региональной интернет-регистратуре – RIR). Далее адреса распределяются между организациями, представляющими RIR в каждой стране региона. Те в свою очередь передают их интернет-провайдерам, которые, в конечном итоге, делегируют их конечным пользователям.
Организация, являющаяся местным представителем и претендующая на получение блока IP-адресов, должна предоставить региональной интернет-регистратуре двухлетний план по их передаче конечным пользователям, на основании которого ей будет выдана специальная лицензия. Она действительна в течение определенного срока и может быть отобрана вместе с выделенными адресами в случае невыполнения организацией указанного выше плана. При этом местный представитель может получить дополнительные IP-адреса в случае нехватки ранее выданных.
Полноценное внедрение IPv6 – дело недалекого будущего. Правительства многих стран уже осознали необходимость перехода к IPv6. Так, в США уже в конце следующего года будут определены подрядчики для модернизации существующей системы IP-адресов. В Европейском Союзе в настоящее время разрабатываются меры, способствующие скорейшему внедрению нового адресного пространства.
Тенденция по внедрению IPv6 не обошла стороной и Россию. Один из активных участников этого процесса – Российский научно-исследовательский институт развития общественных сетей (РосНИИРОС). В 2003 году он предоставил абонентам опорной научно-образовательной сети RBNet возможность тестирования новой технологии. Для осуществления этого проекта были заключены пиринговые соглашения с сетями GEANT (Стокгольм), Abilene (Internet2) и ASNET. В сети RBNet при переходе к новой версии протокола IP реализована архитектура с двойным стеком IPv4/IPv6 для обеспечения обратной совместимости с доминирующим сейчас в Интернете протоколом IPv4.

Использовать следующий ipv6 адрес

tcp6_socket = socket(AF_INET6, SOCK_STREAM, 0);
raw6_socket = socket(AF_INET6, SOCK_RAW, protocol);
udp6_socket = socket(AF_INET6, SOCK_DGRAM, protocol);

ОПИСАНИЕ

Программный интерфейс IPv6, по большей части, совместим с IPv4 (смотрите ip(7)). В этой справочной странице описаны только различия между ними.

Чтобы привязать сокет AF_INET6 к любому процессу нужно скопировать локальный адрес из переменной in6addr_any, имеющей тип in6_addr. При статической инициализации также может быть использован макрос IN6ADDR_ANY_INIT, который раскрывается в константное выражение. В обоих значениях используется сетевой порядок байт.

Адрес устройства обратной петли IPv6 (::1) доступен в глобальной переменной in6addr_loopback. Для инициализации нужно использовать IN6ADDR_LOOPBACK_INIT.

Соединения IPv4 могут обрабатываться программным интерфейсом v6 с помощью адресного типа v4-преобразованный-в-v6; то есть программе необходимо поддерживать только данный тип программного интерфейса для работы с обоими протоколами. Прозрачная работа с адресами реализована в функциях библиотеки Си.

Читайте так же:
Видео кабель для телевизора

IPv4 и IPv6 совместно используют локальное портовое пространство. При установлении соединения IPv4 или приёма пакета на сокете IPv6, адрес его источника отобразится в v6, и в дальнейшем он будет отображаться как v6.

Формат адреса

Значение sin6_family всегда устанавливается в AF_INET6; в sin6_port указывается порт протокола (смотрите sin_port в ip(7)); в sin6_flowinfo указывается идентификатор потока IPv6; в sin6_addr указывается 128-битный адрес IPv6. Значением sin6_scope_id является идентификатор, зависящий от области адреса. Это новое поле, появившееся в версии Linux 2.4. Linux поддерживает его только для адресов локальной связи (link local); в этом случае sin6_scope_id содержит индекс интерфейса (смотрите netdevice(7)).

IPv6 поддерживает несколько типов адресов: однозначные (unicast) — для адресации одного узла, многоадресные (multicast) — для адресации группы узлов, anycast — для адресации ближайшего члена группы узлов (не реализовано в Linux), IPv4-on-IPv6 — для адресации узла IPv4, и несколько других зарезервированных типов адресов.

Адрес IPv6 представляет собой группу из 8 4-разрядных шестнадцатеричных чисел, разделённых двоеточием «:». Два двоеточия «::» обозначают строку 0 бит. Специальные адреса: ::1 (для устройства обратной петли) и FFFF::<адрес IPv4> — для IPv4-преобразованного-в-IPv6.

В IPv6 используется единое с IPv4 пространство портов.

Параметры сокета

setsockopt(): Устанавливает MTU, который должен использоваться для сокета. MTU ограничивается значением MTU устройства или MTU пути, если включено определение пути MTU. Аргументом является указатель на целое.

IPV6_MTU_DISCOVER Управляет определением пути MTU для сокета. Смотрите описание IP_MTU_DISCOVER в ip(7). IPV6_MULTICAST_HOPS Определяет лимит многоадресных пересылок (hop) для сокета. Аргументом является указатель на целое число. Значение -1 означает использование маршрута по умолчанию, в противном случае значение должно быть в диапазоне от 0 до 255. IPV6_MULTICAST_IF Назначает устройство для исходящих многоадресных пакетов для сокета. Это разрешено только для сокетов SOCK_DGRAM и SOCK_RAW. Аргументом является указатель на индекс интерфейса (смотрите netdevice(7)) в виде целого числа. IPV6_MULTICAST_LOOP Определяет, видит ли сокет многоадресные пакеты, которые сам и посылал. Аргументом является указатель на логическое значение. IPV6_RECVPKTINFO (начиная с Linux 2.6.14) Задаёт отправку управляющего сообщения IPV6_PKTINFO для входящих дейтаграмм. Такие управляющие сообщения содержат структуру struct in6_pktinfo, описанную в RFC 3542. Разрешено только для сокетов SOCK_DGRAM или SOCK_RAW. Аргументом является указатель на логическое значение в виде целого числа. IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO, IPV6_HOPLIMIT Задают отправку управляющих сообщений для входящих дейтаграмм, содержащих заголовки расширения из принятых пакетов. IPV6_RTHDR доставляет заголовок маршрутизации, IPV6_AUTHHDR доставляет заголовок аутентификации, IPV6_DSTOPTS доставляет параметры назначения, IPV6_HOPOPTS доставляет параметры пересылок (hop), IPV6_FLOWINFO доставляет целое, содержащее ID потока, IPV6_HOPLIMIT доставляет целое, содержащее счётчик пересылок пакета. Управляющие сообщения имеют тот же тип, что и параметры сокета. Все эти параметры заголовка могут также устанавливаться для исходящих пакетов посылкой определённого управляющего сообщения в управляющий буфер sendmsg(2). Разрешено только для сокетов SOCK_DGRAM или SOCK_RAW. Аргументом является указатель на логическое значение. IPV6_RECVERR Управляет получением асинхронных параметров ошибки. Смотрите описание IP_RECVERR в ip(7). Аргументом является указатель на логическое значение. IPV6_ROUTER_ALERT Передаёт все пересланные пакеты, содержащие предупреждающий параметр hop-by-hop маршрутизатора в сокет. Разрешено только для сокетов SOCK_RAW. Выявленные пакеты не пересылаются ядром, пользователь должен отправить заново самостоятельно. Аргументом является указатель на целое. Положительное число означает перехват значения предупреждающего параметра маршрутизатора. Пакеты, содержащие предупреждающий параметр маршрутизатора с таким значением поля, будут доставлены в сокет. Отрицательное значение отключает доставку пакетов с предупреждающим параметром маршрутизатора в сокет. IPV6_UNICAST_HOPS Определяет лимит однозначных (unicast) пересылок (hop) для сокета. Аргументом является указатель на целое число. Значение -1 означает использование маршрута по умолчанию, в противном случае его значение должно быть в диапазоне от 0 до 255. IPV6_V6ONLY (начиная с Linux 2.4.21 и 2.6) Если этот флаг установлен (не равен 0), то сокет отправляет и принимает только пакеты IPv6. В этом случае приложение IPv4 и IPv6 может привязать один порт за раз.

Если этот флаг сброшен (равен 0), то сокет можно использовать для отправки и приёма пакетов с и на адрес IPv6 или адрес IPv4-преобразованный-в-IPv6.

Аргументом является указатель на логическое значение в виде целого числа.

Значение этого флага по умолчанию определяется из содержимого файла /proc/sys/net/ipv6/bindv6only. По умолчанию значение в файле 0.

ОШИБКИ

ВЕРСИИ

Поле sin6_flowinfo является нововведением в Linux 2.4. Оно прозрачно передаётся/считывается ядром в длине переданного адреса. Некоторые программы, которые передают более длинный буфер адреса и затем проверяют длину исходящего адреса, могут перестать работать.

ЗАМЕЧАНИЯ

Параметры сокета SOL_IP, SOL_IPV6, SOL_ICMPV6 и другие SOL_* являются непереносимыми вариантами IPPROTO_*. Смотрите также ip(7).

ДЕФЕКТЫ

Поддержка IPSec для заголовков EH и АХ отсутствует.

Описание управления потоком на основе меток (label) не завершено и здесь не описано.

А зачем IPv6 дома?

Провайдер Дом.ру сегодня по телефону (!) оповестил меня о возможности бесплатного подключения IPv6 /64. На вопросы зачем оно нужно, лишь похмыкал в трубку. Вот сижу и думаю, а зачем оно действительно нужно, особенно если есть белый IPv4 и доступ к устройствам в локалке легко DNATится на роутере? Поиск по гуглу не дал вразумительных плюсов v6 в этом кейсе.

А что думает ЛОРовец?

man privacy extensions. Проблем с приватностью не больше, чем при использовании одного статического IPv4-адреса на роутер.

Больше. Но спорить с фанатиками бесполезно.

Я ничего не говорил про NAT. Но все фанатики мыслят стереотипами, да.

4.2. Возможность напрямую обращаться к любому устройству — это объективное, неоспоримое преимущество.

IPSec так могёт!

Вопрос был риторическим. Мало ли, как что проектировалось. «Так было раньше» — это не аргумент.

А ты объясни техническую необходимость проектировать это тем или иным отличным образом.

Если словосочетания «статистически уникальный идентификатор» и «парадокс дней рождения», стоящие рядом друг с другом, ни о чём не говорят, то…

То ты просто не умеешь объяснять или намеренно стебёшься. Парадокc дней рождений мне понятен, но какое он имеет отношение к размеру подсети — непонятно. DUID — всего лишь идентификатор DHCPv6 клиента, он не обязан быть частью IPv6 адреса. К тому же размер DUID, в зависимости от его типа, может быть ещё больше шести байт.

На самом деле там не про возможность обращаться к любому устройству, а про возможность адресоваться к любому устройству.

20р в месяц за статику это вообще даром.

Где такая халява? Плачу 140, если опять не подняли незаметно.

Кстати говоря, в роутерах с поддержкой IPv6 «из-коробки» что я видел (обычно это означает только поддержку /64 префиксов и базовый SLAAC без каких-то настроек), файрвол запрещал все входящие подключения к устройствам из внутренней сети (ну кроме разве что ICMP). В общем доступность внутренних устройств из вне мало чем отличалась от IPv4 NAT. Так что, вероятно, большинству пользователей настраивать ничего не нужно совсем.

Читайте так же:
Восстановление после перелома пятки

Как зачем? Чтобы забыть навсегда пердолинг с натами и роутерами, платами за статические и белые IP, и иметь возможность откуда угодно достучаться напрямую до любого из домашних устройств. Ну и понятное дело чтобы из дома ходить в IPv6-only коего уже становится дохрена.

В мобильном приложении провайдера легко меняются и PTR к адресам (до 5шт).

Поправьте если не прав, но с v6 мне нужно будет поднимать фаерволл на каждом конечном устройстве?

На твоем роутере. А провайдер тебе зачем? 99% дудоса должен банить он.

Нет. Только на роутере. Функционал надо смотреть для конкретной модели.

У TpLink’а — в 2019-м году, например, судя по тому что я сходу нагуглил, актуальные на то время модели по-умолчанию блокировали входящие подключения по IPv6 на устройства в локальной сети (все кроме ICMP, который необходим), и не имели возможности эти правила настраивать вообще — то есть входящие подключения по IPv6 по-сути были невозможны.

Зря ты так. Есть аутентичные девушки-инженеры.

файрвол запрещал все входящие подключения

Кошмар, всю идею загубили! Нет, такой «IPv6» мне не нужен совсем.

Вообще, бытовых роутеров с целом с поддержкой IPv6 все очень посредственно. Если только openwrt шить и с ним возится, но даже там костыльности хватает.

Почему нельзя поделить /64 на подсети и раздавать адреса по DHCPv6 без копирования MAC адресов внутрь IPv6?

Можно. Но SLAAC хорош тем, что он stateless — не требует состояния на стороне роутера (или роутеров), который рассылает RA.

DHCPv6 надо где-то поднимать и хранить состояние. А для SLAAC каждое устройство назначает себе адрес самостоятельно.

Размер /64 достаточен для того, чтобы два устройства, подключенные в один L2-сегмент не пытались присвоить себе одинаковые адреса.

DHCPv6 хорош в том случае, когда требуется централизация — например в организации, где можно выделить отдел, отвечающий за администрирование сети. В случае использования DHCP можно будет совершать различные действия в момент выдачи/отбирания lease, например (де)регистрацию узла в DNS. Или с помощью PD делегировать раздачу адресов в подсетях меньшего размера другим подразделениям организации.

В случае DHCP (как v4, так и v6) парадокс дней рождений не страшен — в обязанности сервера входит невыделение одного и тот же адреса двум устройствам в пересекающиеся периоды аренды адреса. А в случае SLAAC такую гарантию давать некому, так как нет единой точки в сети, ответственной за раздачу адресов.

Плюсы будут когда произойдет повсеместное внедрение.

Как это расшифровывается?

Ага. Пришла она такая, смотрит: «фиии, такой маленький, всего /64… Даже у меня /48»

тебе вот смешно, а на местном сайте знакомств «мисс админ» в легинсах висит:)))

знаю, надо было в пятницу такое писать:)

Это всё понятно. Однако DHCP — довольно нересурсоёмкий сервис, чтобы вот так нерационально использовать адресное проcтранство IPv6. Раз есть раутер, то на нём же можно поднять DHCP, что всё время и делали в IPv4. Кроме того, первый три байта MAC адреса — это идентификатор производителя. Одновременно используемых производителей обычно немного (гораздо меньше диапазона трёхбайтовых чисел), то есть вполне можно хешировать MAC адрес во что-то менее длинное, гарантированно без коллизий.

бытовых роутеров с целом с поддержкой IPv6 все очень посредственно

Пользовался одно время ZTE MF920 с МТС IPv4v6, входящие подключения по IPv6 в локалку были.

Теоретики-фанатики они такие, да. Ну что ты мне тычешь ссылкой на файрвол? Ты пойди сделай безопасным IPv6, поймешь, о чем я.

а зачем интернет дома?

Держать дополнительное состояние (которое нельзя без нарушения работы сети терять) на большом роутере дорого. Ведь это состояние нужно каким-то образом распространять на соседние роутеры, которые существуют для увеличения пропускной способности и отказоустойчивости — реализовывать консенсус, позволяющий определить, кому из этих роутеров позволено менять это состояние, и с кого тянуть реплику.

Можно, конечно, сделать так, чтобы каждый роутер имел нереплицируемое состояние, и выдавал адреса из непересекающегося пула, но тогда придётся выдумывать какой-то механизм миграции адресов между пулами на случай падения одного из роутеров.

Проще избавиться от состояния на стороне роутера совсем. Пришёл пакет на один интерфейс, обновили счётчики, прогнали его через stateless firewall, посмотрели на flowid и заполнили его, если там нули, нашли нужный маршрут, перекинули на другой интерфейс или обернули во что-нибудь и отправили дальше, обновили другие счётчики.

В современных больших сетях крупных организаций (например Facebook или Amazon) много виртуальных сущностей (VM, контейнеры, оверлейные сети для всяких SDN, NFV, IP-based vhost), поэтому MAC-адреса генерируются случайно. Число таких сущностей, создаваемых в день от одного производителя может запросто превысить десятки миллионов. А ещё бывает удобно наделять биты IP-адреса смыслом, как например у NAT64 в младших 32 битах после константного префикса лежит IPv4-адрес или у solicited-node multicast адресов в младших 24 битах лежат 24 младших бита LL.

Для дома почти всегда это всё излишне, можно все сетевые функции запихнуть в одну неотказоустойчивую коробку. И тогда принимать выборы «использовать ли DHCP?», «использовать ли SLAAC?» исходя из того, что будут уметь устройства, подключенные к этой сети.

Им это всё равно надо учитывать в мире с IPv4 и NAT. У ISP, который делает NAT, в случае большого числа абонентов будет несколько global scope (белых) адресов, потому что исходящие L4-порты закончатся, и никто не обещает, что один и тот же абонент, однажды установив соединение с внешним хостом установит через секунду новое соединение с того же адреса.

То же самое ещё более справедливо для мобильных — абонент прошёл сто метров, его перекинуло на другую соту, и его внешний IP-адрес (возможно) поменялся.

А какие новые свойства IPv6 делают его менее безопасным по сравнению с IPv4?

End-to-end connectivity возможна и в случае использования белых IPv4 везде.

То же самое ещё более справедливо для мобильных — абонент прошёл сто метров, его перекинуло на другую соту, и его внешний IP-адрес (возможно) поменялся.

мне кажется, мобильные сети так не работают

Murg , покажи кадык :з

неправильно, надо так

Murg , перечисли по памяти все поля IPv6 пакета 🙂

IPv6 и Доступ из интернет в домашнюю сеть

Вы на работе, или в поездке и вам нужны файлы, которые находятся у вас дома. Вам нужно посмотреть, что происходит у вас на даче, или в гараже. Возможно, вы оставили ребёнка с няней, и хочется посмотреть, чем они занимаются. Бывает, что нужно показать клиентам как что-то работает и лучше всего устроить демонстрацию через интернет. К тому же, это может быть целый поток клиентов. Нужно, чтобы клиенты могли не только посмотреть, но и что-то изменить и сделать это без вашей помощи. Кто-то скажет, что для решения таких задач нужен другой подход. Домашняя или локальная сеть может показаться кому-то неуместной. Для таких случаев больше подошёл бы хостинг. Почти соглашусь, тем более, что внешние сервисы мы тоже будем использовать, но доступ в локальную сеть при этом всё равно может быть необходим, особенно если вы используете камеры и/или другие устройства, которые не могут быть размещены на удалённом сервере. Ну и никуда не деться от популярной в последнее время темы «Умного дома» – вы ещё в дороге, но хотите уже сейчас что-то увидеть или включить у себя дома. Ответов на вопрос «Зачем?» может быть ещё много. В нашем случае основной задачей будет предоставление контроллеру «Умного дома» i-Tone выделенного IP адреса для доступа к нему из внешней сети Интернет. Решив её, мы сможем решить и остальные задачи. Через некоторое время после того, как мы сделаем доступ извне в свою локальную сеть, мы уже не будем задаваться вопросом «Зачем?». Возможно, это будет нас смешить.

Читайте так же:
Искаженный звук при просмотре видео

Честно говоря, задачка так себе – мало интересного. Решить её можно миллионом способов. Это так, но всё же, рассмотрим проблему, хотя бы для того, чтобы не объяснять всё в сотый раз своим друзьям и знакомым, которым это нужно (иногда они даже не знают об этом). Просто, скажем – иди почитай и если где-то не получится, я посмотрю.

Настроим всё, используя IPv6.

Почему IPv6?

Если у вас уже есть белый IPv4, который не меняется и нет никакого NAT, или IPv4 вы можете получить у провайдера, пусть даже придётся платить за этот IPv4 какие-то скромные деньги, то возможно вам будет интересно прочитать Почему я не могу подключиться к контроллеру из сети. Но в рамках статьи мы расширим задачу для себя, считая что нам мало одного IP. Нет, можно обойтись и одним, но если их много, это просто удобнее. Каждому устройству в локальной сети дадим белый IP.

Возможно, у вас ещё нет IPv4, но вы уверены, что можете его легко купить у своего провайдера рублей за 150 в месяц. Часто такая уверенность возникает со слов самого провайдера. Иногда получить IPv4 может оказаться немного сложнее чем, вы ожидали. Известен случай, когда провайдер предоставляющий интернет по всей стране, пообещал выдать постоянный IPv4 в течение 10! дней и не сделал этого до сих пор (прошло 2 месяца). Могу предложить потратить эти деньги с большей пользой – на них можно взять VPS/VDS. Хостеры часто предоставляют тестовый период, так что вы получите свой IPv4 раньше, чем успеете что-то оплатить. И ваши траты могут оказаться меньше, чем 150 руб./мес. Кроме белого IPv4 вы получите целый сервер с приличным количеством интернет-трафика. Как правило, вам могут дать при этом (возможно за символическую дополнительную плату в 1 руб./адрес) некоторое количество IPv6. Что делать с сервером – решайте сами. Ну, запустите на нём бесплатный игровой сервер Garry’s mod, или то, что вам больше понравится, если он вам совсем не нужен. Пусть подростки порадуются.

Железо.

Возможно эта информация будет для вас лишней, но я собираюсь настроить всё на древнем ноуте с Win Xp с выходом в сеть через 3G модем. Такой выбор железа гарантирует нам, что повторить наши эксперименты сможет почти каждый. К тому же такую конфигурацию можно разместить где угодно. Например, на даче (если есть перебои с электричеством, выручит аккумулятор ноута, и даже если сопрут – не жалко). В квартире, в которой идёт ремонт и надо постоянно давать ценные указюльки рабочим. При этом у нас есть ещё свои дела, и находиться там, где идёт ремонт, всё время мы не хотим. Даже в машине, если захочется. Ни что не помешает настроить это всё для Mac OS или Linux. Когда наиграемся и почувствуем себя уверенно, можно попробовать запустить всё на каком-нибудь китайском планшете с Android. Можно даже на телефоне, но у планшета экран побольше. Для «Умного дома» планшет кажется более подходящим. Про то, что можно просто и роутер настроить говорить не буду – кто хочет, пусть настраивает.

Где получить IPv6?

В общем случае начать можно со своего провайдера. Возможно, получить IPv6 можно у него. Если не получается, то есть ещё несколько способов. Все рассматривать не будем. Остановимся на туннельном брокере gogo6 ( комментарии автора: к сожалению, данный сервис прекратил свою работу с 2016 года. Так что придется поискать альтернативный сервис ;-) ) из-за удобного клиента под Windows.

Чтобы получить клиент нужно пройти регистрацию. Скачиваем и устанавливаем тот, что соответствует разрядности нашей операционной системы. Для Win 8 придётся устанавливать программу в режиме совместимости. Ну, и нам нужен вариант с HomeAccess. Видим, что доступен клиент для Linux/Unix/MacOS/BSD. К тому же в этих ОС возможна установка из пакетов. Перед тем, как мы получим возможность скачать клиент, нам будет предложено сделать пожертвование. Сердито ставим $ 0, и приступаем к скачиванию. Можно было бы и пожертвовать какую-то сумму, но если у нас есть лишние $10, то на них мы чуть позже приобретём pro Account. Ещё нужно будет заполнить profile.

Устанавливаем клиент. После установки, если вы специально не сняли галочку, клиент запустится.

Клиентская часть gogo6

Клиентская часть туннельного брокера gogo6

Скриншот сделал для тех кто еще сомневается в своих силах, там все просто – на первой странице буквально три поля, доступных для заполнения, два из которых мы заполнить не можем так, как username и password мы получим позже. Ну а сейчас используем «Connect Anonymously» и нажмём «connect». После того, как соединение установится, откроем браузер и зайдём на какой-либо сайт, который покажет нам, как у нас теперь обстоят дела с IPv6. Например, на test-ipv6.com. Кстати, там будет вкладка «Other IPv6 sites» – можете выбрать что-то, что возможно больше вам подойдёт. Делать скриншот, опять же, большого смысла нет. Внизу страницы будет надпись «Ваши результаты готовности». Должно быть 10/10. Если это не так, разбираемся почему. Подсказки получим на этом же сайте.

Запускаем cmd или powershell любым привычным для нас способом. Можно нажать win + r и ввести cmd. Вводим команду:

ping ipv6.google.com

У меня получилось среднее время пинга 329 мсек. Просто на google.com пинг получился на 100 мсек больше (436 мсек). Играть в игры с таким пингом будет не комфортно. Наш ping сейчас идёт через Монреаль (или Амстердам, у кого как получилось). И будет ещё больше, когда мы сделаем трансляцию IPv6->IPv4. Если нужен короткий ping, то придётся арендовать VDS у российского провайдера и настраивать всё через него. Если в клиенте сделать «disconnect» и пропинговать google.com, то задержка должна существенно сократиться. У меня среднее получилось 98 мсек. Тоже не мало, но учитывая, что это 3G, удивляться нечему.

Читайте так же:
Восстановление флешки unknown device

Для офиса со скоростью интернета 25 Мбит/сек картинка получилась несколько иной :

Как получить статический IP

Как получить статический IP

В этом случае скорость доступа у IPv6 оказалась хуже чем у IPv4, это связанно с тем что трафик по IPv6 шел через сервера gogo6.

Что мы получили?

У нас серый (т.е. меняется) IPv6, но уже нет NAT, никакого проброса портов. К нашему компьютеру уже можно подключаться извне. Если вам быстренько что-то нужно показать клиенту, то вы уже можете это сделать, сообщив ему свой IP. Конечно, при этом у клиента должна быть поддержка IPv6.

Выше скорость скачивания торрентов, за счёт пиров с IPv6.

Возможно, будет выше скорость доступа к сайтам, доступ к которым возможен по IPv6 (например, youtube), хотя это надо бы проверить т.к. весь наш трафик идёт через брокера. Скорость по IPv6 через туннель в любом случае будет ниже. К тому же может ограничиваться брокером. Проверить можно на http://ipv6-test.com/speedtest/ . Мои результаты меня совсем не порадовали. Для IPv4 у меня получилось 5,30 Mbit/s, а IPv6 показал только 380 Kbit/s (это данные для 3G). Брокер явно режет скорость. Для наших экспериментов скорости нам хватит, но для себя отметим второй недостаток выбранного нами брокера – нам режут скорость. О том, как этого избежать, я уже сказал – свой VDS.

Что-то мы уже получили, но динамический IPv6 можно было настроить просто средствами операционной системы, не заморачиваясь с какой-то регистрацией и установкой клиента на свой компьютер. Скорость при этом упала бы на несколько процентов, а не в разы.

Читайте продолжение на следующей неделе 18 ноября:

Но нам нужен постоянный IP

Идем на http://www.gogo6.com/freenet6/account и регистрируемся уже на сервере Freenet6. До недавнего времени регистрация была бесплатной. Нужно было только разместить сообщение в одном из предлагаемых сервисов. Например, в twitter. Но теперь, похоже, нужно единовременно оплатить $ 10 (и это уже третий недостаток), чтобы получить 56 постоянных IPv6.

Получили Username и Password? Вас можно поздравить! Теперь у вас есть 56 статических IP! Не то, чтобы эта цифра поражала воображение, но на первое время должно хватить.

Кстати, уже сейчас к вашей сети есть доступ по IPv4 через адрес http://<username>.broker.freenet6.net/. На этом можно было бы и закончить, но мы посмотрим, как сделать трансляцию IPv6->IPv4 другим способом и сделаем привязку другого домена к нашему серверу. Ещё мы создадим приложение, чтобы отдать клиентам изображение с видеокамеры.

Можно ещё посмотреть вот это video. На всякий случай добавлю, что оно снято 3 гoда назад журналом Хакер.

Приложение.

Начнём с того, что создадим демонстрационное приложение, которое будет получать доступ к нашей камере. Затем функционал можно будет расширить под ваши конкретные задачи. Можно, например, показать на странице несколько камер, даже находящихся совершенно в разных местах. Если нужно, на разных континентах. Можно добавить панель с каким-то табло и кнопками. На табло можно вывести какую-то информацию. Например, температуру или даже показания домовых счётчиков. На кнопки можно вывести управление подключенными к компьютеру устройствами. Обычно это выключатели чего-либо, например света. Ну и обязательно нужно будет добавить авторизацию на вашем сервере, иначе каждый сможет что-то там переключать. Эта часть наиболее творческая и каждый может решить её наиболее удобным способом. Я покажу как это сделать при помощи node.js.

Идём на сайт http://nodejs.org/ и устанавливаем nodejs, если он ещё у вас не установлен. Всё очень просто. В сети полно руководств как это сделать и ещё раз описывать установку смысла большого нет, тем более, что описывать особенно нечего. Кроме самого node должен установиться и менеджер пакетов к нему – npm. Как работать с пакетами описывать тоже не буду – в сети есть хорошие описания.

Код я взял вот отсюда: http://habrahabr.ru/post/198632/ . Там есть подробное его описание. Я подправил его совсем чуть-чуть, чтобы сервер работал на IPv6. То, что у меня получилось, можно посмотреть, скачав архив webcam.zip. У меня эта папка лежит в C:/javascript/ так, что в итоге должно выглядеть как C:/javascript/webcam. Вы можете разместить содержимое папки там, где посчитаете нужным. Должно работать из любого места. В gogoCLIENT на вкладке HomeWeb в строчке «Published Document Root» можно прописать путь к приложению (у меня, как я уже сказал, это C:/javascript/webcam) и поставить галочку «Enable Home Web». В этом случае запустится сервер apache. Но это не наш случай. Мы будем запускать сервер nodejs. Поэтому галочку на «Enable Home Web» не ставим. Вместо этого в командной строке (кто забыл: win + r, cmd) переходим в папку с нашим приложением:

cd C:/javascript/webcam

и запускаем сервер:

node server.js

В дальнейшем, через npm можно подключить модуль, который позволит нам через наше приложение управлять внешними устройствами. Обычно внешние устройства подключаются через USB, иногда Bluetooth. При этом в системе появляется один или несколько портов UART, через которые и происходит всё управление. Идём на https://www.npmjs.org/. В строке поиска набираем «uart» и выбираем модуль, который нам больше всего понравится. С его помощью реализуем то, что нам нужно.

Для «Умного дома» на этом можно было бы остановиться. Если речь действительно о «Умном доме», то нам вполне достаточно возможности подключаться к нему через http://<username>.broker.freenet6.net/, либо просто по IP адресу. Но посмотрим, как нам подключить к нашему серверу другое доменное имя.

Доменное имя.

Получаем обычным способом – нового тут ничего нет. Напомню только, что получить доменное имя можно и бесплатно. Возможно это как раз лучший вариант для такого решения как наше. Речь о dot.tk. Регистрируемся, получаем, можно несколько.

IPv6->IPv4.

Теперь осталось совсем немного. Мы настроим трансляцию IPv6->IPv4. Этот механизм будет работать не только с gogo6 (как раз там какая-то трансляция уже есть). Для этого воспользуемся Сloudflare. Нам нужно зарегистрироваться. В разделе Websites нужно добавить домен. В DNS Settings для домена нужно удалить все A-записи. Для AAAAукажем наш статический IPv6. Выглядеть должно примерно так:

IPv6 to IPv4

Вверху видим адреса двух DNS-серверов («Your Nameservers»). Используем их для парковки своего доменного имени. Подтверждаем, что мы закончили с записямиDNS. Переходим в «CloudFlare Settings». Находим строчку «Automatic IPv6», устанавливаем в «Full». На этом всё. Убеждаемся в том, что всё работает.

Читайте так же:
Газпромбанк домашний банк забыл пароль

Автоматическая настройка IPv6

Помимо автоматической IP-адресации IPv4, необходимо понимать принцип динамического назначения IPv6-адресов.

Автоматическая настройка IPv6-адресов

Автонастройка — это метод автоматического назначения IPv6-адреса интерфейсу. Автонастройка может быть с отслеживанием состояния или без отслеживания состояния. Служба DHCPv6 обеспечивает автонастройку с отслеживанием состояния, а объявления RA (Router Advertisement) — настройку без отслеживания состояния.

Термин "адрес с отслеживанием состояния" означает, что адрес назначается службой на сервере или другом устройстве, которая регистрирует назначенный адрес. Служба, назначившая адрес клиенту, управляет этим адресом с отслеживанием состояния. Адреса без отслеживания состояния настраиваются клиентом и не поддерживаются службой. Регистрация назначения адресов не поддерживается.

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

1. Когда узел создает локальный канальный адрес, он также выполняет проверку на дублирование адреса, чтобы убедиться в уникальности адреса.

2. Узел IPv6 отправляет до трех запросов маршрута на каждом интерфейсе, чтобы получить сведения о конфигурации IPv6. Процесс настройки, используемый протоколом IPv6, зависит от принимаемого ответа на запросы маршрута:

· Если протокол IPv6 не принимает RA, он использует DHCPv6 для настройки интерфейса.

· Если IPv6 принимает RA с установленным флагом автономности, клиент использует автонастройку без отслеживания состояния и получает префикс маршрутизации от маршрутизатора.

· Если протокол IPv6 принимает RA с установленным флагом управляемой настройки адреса, он использует DHCPv6 для получения IPv6-адреса.

· Если IPv6 принимает RA с неустановленным флагом управляемой настройки адреса и установленным флагом настройки с отслеживанием состояния, он получает дополнительные параметры конфигурации IPv6 от службы DHCPv6. Однако он получает IPv6-адрес, используя настройку без отслеживания состояния.

DHCPv6

DHCPv6 — это служба, обеспечивающая автонастройку узлов IPv6 с отслеживанием состояния. Она может автоматически предоставлять узлам IPv6 IPv6-адрес и другие сведения о конфигурации, например сведения о DNS-серверах. Эта служба эквивалентна службе DHCPv4 для сетей IPv4.

Когда узел получает IPv6-адрес от DHCPv6-сервера, происходят следующие события.

1. Клиент отправляет сообщение ходатайства, чтобы найти DHCPv6-серверы.

2. Сервер отправляет сообщение объявления, указывающее, что он предлагает адреса и параметры конфигурации IPv6.

3. Клиент отправляет сообщение запроса конкретному DHCPv6-серверу, чтобы запросить сведения о конфигурации.

4. Выбранный сервер отправляет ответное сообщение клиенту, содержащее адрес и параметры конфигурации.

5. Когда клиент запрашивает только сведения о конфигурации, происходят следующие события.

· Клиент отправляет сообщение запроса сведений.

· DHCPv6-сервер отправляет ответное сообщение клиенту с запрошенными параметрами конфигурации.

Примечание. В больших сетях вместо размещения DHCP-сервера в каждой подсети можно использовать агенты DHCPv6-ретрансляции.

Разрешение имен — DNS

Компьютеры могут взаимодействовать по сети, используя имя вместо IP-адреса. Для поиска IP-адреса, соответствующего имени (например, имени узла), используется разрешение имен.

Настройка имени компьютера

Разрешение имен — это процесс преобразования имен компьютеров в IP-адреса. Разрешение имен — неотъемлемый компонент компьютерной сети, поскольку пользователям легче запоминать имена, чем такие абстрактные числа, как IPv4-адрес. Имя приложения определяется разработчиком приложения. В операционных системах Windows приложения могут запрашивать сетевые службы с помощью Windows Sockets, ядра Winsock или NetBIOS. Если приложение запрашивает сетевые службы с помощью Windows Sockets или ядра Winsock, оно использует имена узлов. Если приложение запрашивает службы с помощью NetBIOS, оно использует NetBIOS-имена.

Примечание. NetBIOS — это протокол управления сеансами, используемый в ранних версиях сетевых операционных систем Майкрософт. В Windows 7 и Windows Server 2008 R2 обеспечивается поддержка NetBIOS.

Многие применяемые в настоящее время приложения, включая интернет-приложения, для доступа к сетевым службам используют стандарт Windows Sockets. Новые приложения, предназначенные для Windows 7 и Windows Server 2008 R2, используют ядро Winsock. Старые приложения используют NetBIOS.

Имя узла

Имя узла — это понятное имя, которое связывается с IP-адресом узла и определяет его в качестве узла TCP/IP. Имя узла может иметь длину не более 255 знаков и содержать буквы, цифры, точки и дефисы.

· В качестве имени узла используется псевдоним или полное доменное имя.

· Псевдоним — это одиночное имя, связанное с IP-адресом.

· В имени узла псевдоним объединяется с именем домена для создания полного доменного имени.

· В элементах имени в качестве разделителей используются точки. Приложения используют структурированное полное доменное имя, применяемое в Интернете.

· Пример полного доменного имени — in1111.lkm.su.

NetBIOS-имя

Для идентификации ресурса NetBIOS в сети приложения используют 16-значное NetBIOS-имя. NetBIOS-имя представляет отдельный компьютер или группу компьютеров. Первые 15 знаков NetBIOS-имени определяют имя конкретного компьютера, а последний 16-й знак служит для идентификации ресурса или службы на этом компьютере. Пример NetBIOS-имени — NYC-SVR2[20h].

Domain Name System — DNS

DNS — это служба, которая управляет разрешением имен узлов в IP-адреса. Протокол TCP/IP определяет исходный и конечный компьютеры по их адресам IPv4 или IPv6. Однако, поскольку пользователям легче запоминать имена, чем числа, IP-адресам компьютеров ставятся в соответствие понятные имена. Наиболее распространенный тип имени — имя узла.

Помимо разрешения имен узлов в IP-адреса, служба DNS может использоваться для выполнения следующих функций.

· Поиск контроллеров домена и серверов глобального каталога. Используется при входе в доменные службы Active Directory® (AD DS).

· Разрешение IP-адресов в имена узлов. Полезно, когда файл журнала содержит только IP-адрес узла.

· Поиск почтового сервера для доставки электронной почты. Используется для доставки всей электронной почты Интернета.

Зоны и записи DNS

Зона DNS — это особая часть пространства имен DNS, которая может содержать записи DNS. Зона DNS находится на DNS-сервере, ответственном за передачу ответов на запросы записей в конкретном домене. Например, DNS-сервер, который отвечает за разрешение имени www.contoso.com в IP-адрес, будет содержать зону contoso.com.

Зоны прямого просмотра

Зоны прямого просмотра могут содержать записи различных типов. Наиболее распространенный тип записи в зонах прямого просмотра — A-запись, называемая также записью узла. Эта запись используется при разрешении имени узла в IP-адрес.

Другие типы записей в зонах прямого просмотра:

· SRV; Записи службы используются для поиска контроллеров домена и серверов глобального каталога.

· MX. Записи обмена электронной почтой используются для поиска почтовых серверов, отвечающих за домен.

· CNAME. Записи канонических имен разрешаются в другое имя узла.

Зоны обратного просмотра

Зоны обратного просмотра содержат PTR-записи. PTR-записи служат для разрешения IP-адресов в имена узлов. Организация обычно может управлять зонами обратного просмотра для своей внутренней сети. Однако некоторые PTR-записи для внешних IP-адресов, полученных от поставщика интернет-услуг, могут находиться под управлением этого поставщика.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector