IPv6-прокси
IPv6-прокси использует IPv6-адрес, когда обращается к сайтам от вашего имени. Такой адрес состоит из цифр и букв, разделённых двоеточиями, и может выглядеть так: 2001:db8::42. Сайт видит этот адрес как адрес отправителя запроса.
Различия между двумя версиями IP разобраны в статье IPv4- и IPv6-прокси. Здесь рассмотрим устройство IPv6-адреса, правила его записи и особенности прокси, которые используют такие адреса.
Что такое IPv6 и IPv6-прокси
IPv6 — это Internet Protocol version 6, шестая версия интернет-протокола. Он задаёт правила, по которым устройства отправляют данные друг другу через сеть. Данные передаются небольшими частями — пакетами. В каждом пакете есть IP-адреса отправителя и получателя: по ним сетевое оборудование определяет, откуда пришли данные и куда их нужно доставить.
IPv6-адрес присваивается сетевому интерфейсу устройства — например, сетевой карте сервера. У одного интерфейса может быть несколько адресов. При необходимости их можно менять, поэтому IP-адрес не привязан к одному устройству навсегда.
Когда вы используете прокси, ваша программа сначала отправляет запрос ему. Прокси сам обращается к нужному сайту, получает ответ и передаёт его программе. IPv6-прокси выполняет эту работу с IPv6-адреса. Сайт может записывать этот адрес в журнал обращений, проверять его по своим правилам доступа и использовать для приблизительного определения страны посетителя.
Как устроен IPv6-адрес
В полной записи IPv6-адрес состоит из восьми групп по четыре шестнадцатеричные цифры. Между группами стоят двоеточия: 2001:0db8:0000:0000:0000:0000:0000:0042. На схеме каждая группа выделена отдельно.
Шестнадцатеричная система использует шестнадцать символов: цифры 0–9 и буквы a–f. Буквы обозначают числа от десяти до пятнадцати, поэтому в этой записи они тоже считаются цифрами. Из сочетаний цифр и букв получается числовой адрес; названия страны или провайдера в них не зашифрованы.
Бит — это один двоичный разряд: ноль или единица. Одна шестнадцатеричная цифра занимает четыре бита, а группа из четырёх цифр — шестнадцать. Восемь групп дают 128 бит. В каждой группе можно записать число от 0000 до ffff. Двоеточия разделяют группы для удобства чтения и в эти 128 бит не входят.
В списках прокси обычно встречается более короткая запись. В ней часть нулей опущена по определённым правилам. Сам адрес остаётся тем же: у него по-прежнему восемь 16-битных групп, даже если на экране видны не все из них.
Сокращённая запись адреса и порт
Первое правило — убрать нули в начале каждой группы. Так, 0db8 превращается в db8, 0042 — в 42, а от 0000 остаётся один 0. Наш адрес принимает вид 2001:db8:0:0:0:0:0:42. Нули в середине или конце группы убирать нельзя: получится другое число.
Второе правило — заменить несколько нулевых групп подряд двойным двоеточием ::. В нашем примере подряд идут пять таких групп, поэтому адрес можно записать как 2001:db8::42. Использовать двойное двоеточие разрешается только один раз в адресе. Иначе программа не сможет определить, сколько групп пропущено в каждом месте.
При сокращении выбирают самую длинную последовательность нулевых групп. Если таких последовательностей несколько и они равны по длине, сокращают первую. Для единообразной записи стандарт рекомендует строчные буквы и не рекомендует заменять двойным двоеточием одну нулевую группу. Заглавные буквы тоже допустимы и обозначают те же числа. Поэтому полная и сокращённая записи, а также записи с разным регистром букв могут обозначать один и тот же IP-адрес.
Если рядом с IPv6-адресом нужно указать порт, адрес заключают в квадратные скобки, а порт пишут после них: [2001:db8::42]:8080. Скобки помогают понять, где заканчивается адрес с его двоеточиями и начинается порт.
В этом примере внутри скобок находится IPv6-адрес, а 8080 — номер порта. На одном сервере могут работать разные сервисы; порт указывает, к какому из них нужно подключиться. Для прокси это порт, на котором он принимает подключения клиентов. Ни порт, ни скобки не являются частью IPv6-адреса. Полная строка с указанием протокола может выглядеть так: http://[2001:db8::42]:8080. Если для адреса и порта предусмотрены отдельные поля, их заполняют раздельно в формате, который принимает программа.
Почему IPv6-адресов так много
В 128 битах можно записать 2128 разных адресов — приблизительно 3,4 × 1038. Это общее число возможных комбинаций. Не все они предназначены для работы в интернете: часть диапазонов зарезервирована для специальных задач.
Операторы получают IPv6-адреса большими диапазонами и выделяют часть из них своим клиентам. У прокси-провайдера могут оставаться огромные запасы неиспользуемых адресов. Из своего диапазона он формирует пул — набор адресов, которые предоставляет пользователям прокси. Когда нужны дополнительные IP, провайдер может взять их из того же диапазона.
Благодаря такому запасу провайдеру проще расширять пул и выдавать адреса, которыми раньше никто не пользовался. Это также позволяет предлагать низкую цену за один IP. Но каждому работающему прокси нужны сервер и доступ к сети: наличие свободных адресов само по себе не заменяет оборудование и интернет-канал.
Откуда провайдер получает IPv6-адреса
Адреса распределяют региональные интернет-регистратуры — организации, которые выделяют адресные диапазоны сетевым операторам и другим участникам интернета. Прокси-провайдер может получить диапазон у хостинга, у оператора, через которого его серверы подключены к интернету, или у регистратуры для собственной сети. Использовать адреса он должен на условиях, на которых ему выделили диапазон.
После получения диапазона нужно настроить маршрутизацию — пути передачи данных между сетями. Сетевое оборудование должно доставлять ответы сайтов на серверы прокси, которые используют эти адреса. Без правильно настроенных маршрутов прокси не сможет обмениваться данными с сайтами. Произвольно составленный список IPv6-адресов работать не будет: эти адреса должны быть выделены провайдеру и доступны через его сеть.
Одному серверу можно назначить множество IPv6-адресов. Прокси-программа выбирает исходный адрес при открытии соединения с сайтом. Запросы, отправленные по тому же TCP-соединению, сохраняют его адрес; для нового соединения IP выбирается по настройкам услуги. Поэтому тысяча разных IP не обязательно означает тысячу серверов: все адреса могут обслуживаться одной машиной и использовать один интернет-канал.
По обозначению IPv6 нельзя определить, кому принадлежит сеть. Адреса этой версии используют дата-центры, домашние интернет-провайдеры, организации и мобильные операторы. Тип сети и страну нужно смотреть в описании конкретного предложения: сам формат адреса об этом не говорит.
Из чего складывается стоимость IPv6-прокси
Провайдер платит за серверы и связь, настраивает прокси, следит за их работой и обслуживает клиентов. Эти расходы остаются, даже когда свободных IPv6-адресов очень много. Если один сервер обслуживает большой пул, затраты можно распределить между множеством IP. Поэтому большой список адресов может стоить сравнительно недорого.
При этом провайдеры могут считать стоимость по-разному: за фиксированный список IP, объём трафика, число запросов или доступ к пулу. Для оценки расходов нужно знать, что входит в тариф и за что придётся доплачивать. Цена одного IP без этих условий мало что говорит об итоговой стоимости работы.
Количество адресов и производительность прокси — разные характеристики. Если к тому же серверу добавить ещё тысячу IP, его процессор не станет быстрее, а интернет-канал не станет шире. Сколько запросов можно выполнять одновременно, зависит от оборудования, связи и ограничений тарифа. На время ответа также влияют удалённость сайта и работа сетей между ним и прокси.
Поэтому пакет с большим количеством IP может подходить для задач, где нужны разные адреса, но сравнительно мало запросов. Для большого числа одновременных запросов провайдеру понадобятся соответствующие мощности. При выборе пакета количество IP и допустимую нагрузку нужно оценивать отдельно.
Совместимость с сайтами и программами
Чтобы прокси обратился к сайту по IPv6, сайт должен иметь IPv6-адрес и принимать подключения по нему. Обычно этот адрес указан в DNS — системе, которая связывает доменные имена с IP-адресами. Для IPv6 используется запись типа AAAA. Одной записи в DNS недостаточно: сервер сайта должен работать, а сеть прокси-провайдера — позволять подключиться к нему по IPv6.
Если сайт работает только с IPv4, прокси не сможет обратиться к нему напрямую с IPv6-адреса. Некоторые провайдеры предлагают выход к таким сайтам через IPv4: запрос передаётся дальше с IPv4-адреса, и именно его видит сайт. Эту возможность нужно уточнять у провайдера. При этом тысяча IPv6-адресов не превращается в тысячу IPv4-адресов — количество доступных IPv4 зависит от того, какие адреса предоставляет провайдер.
У одного сайта могут быть отдельные домены для главной страницы, входа в аккаунт и API, через который программы запрашивают данные. Например, главная страница доступна по IPv6, а сервер входа в аккаунт работает только с IPv4. Через прокси, который обращается к сайтам только по IPv6, главная страница откроется, а войти в аккаунт не получится. Поэтому проверять нужно всю последовательность действий, которую выполняет ваша программа: открытие одной страницы ещё не подтверждает, что остальные обращения сработают.
Важно и то, как программа передаёт адрес сайта прокси. HTTP и SOCKS5 — протоколы работы с прокси; их названия сами по себе не подтверждают поддержку IPv6 у конкретной услуги. Если программа передаёт доменное имя, прокси может найти IPv6-адрес через DNS, но при наличии обеих версий может выбрать IPv4. Если передан только IPv4-адрес, программа просит подключиться именно к нему. Для проверки IPv6 задайте эту версию в настройках услуги либо передайте IPv6-адрес сайта, если такой способ поддерживается, и проверьте адрес, который увидел сайт.
Адрес, который вы вводите в настройках программы, может отличаться от адреса, который увидит сайт. Например, программа подключается к прокси по IPv4, а прокси обращается к сайту по IPv6. Такой вариант позволяет пользоваться IPv6-прокси даже из сети, где у клиента нет IPv6. Если же провайдер выдал для подключения к самому прокси только IPv6-адрес, программа и сеть клиента должны уметь работать с IPv6.
Новые адреса, репутация сети и ограничения
Большой запас IPv6 позволяет выдавать ранее не использовавшиеся адреса, но не доказывает, что конкретный IP новый. Провайдер мог назначать его другому клиенту, а собственный журнал выдачи может не охватывать более раннее использование диапазона. Если адрес действительно никогда не использовался, у него нет истории запросов прежнего пользователя. История окружающей сети — отдельный вопрос.
Сайт может учитывать не только отдельный IP, но и сеть, к которой тот относится. Например, новый адрес может принадлежать дата-центру, с других адресов которого сайт уже получал нежелательные запросы. В этом случае отсутствие истории у конкретного IP не гарантирует, что сайт будет ему доверять.
Блокировки тоже могут распространяться на весь диапазон адресов. Если сайт заблокировал диапазон провайдера, замена одного IP на другой внутри этого диапазона проблему не решит. По той же причине нельзя считать, что каждый адрес обязательно получит отдельный лимит запросов: сайт может применять общий лимит к группе адресов.
Обещание «чистых IP» стоит понимать только вместе с объяснением продавца. Он мог проверить адреса по определённым блок-листам, но у нужного вам сайта могут быть собственные ограничения. Адрес может отсутствовать в проверенных списках и всё равно не работать на конкретном сайте.
При этом большой пул IPv6 сам по себе не означает плохую репутацию. Нужно различать количество адресов, историю их использования и сети, к которым они относятся. Полезно уточнить у провайдера, выдаёт ли он адреса из одного диапазона или из нескольких сетей, и проверить работу прокси на нужных вам сайтах.
