← Назад в базу знаний

Как работает туннелирование IPv6 через IPv4 и какие ограничения это накладывает на скорость

Как работает туннелирование IPv6 через IPv4 и какие ограничения это накладывает на скорость

Туннелирование IPv6 через IPv4

Ты сидишь на IPv4. Провайдер не даёт IPv6. Или даёт, но криво. А тебе нужен IPv6 — для тестов, для прокси, для доступа к ресурсам, которые на новом протоколе. Что делать? Туннелировать. Заворачивать IPv6-пакеты в IPv4-обёртку и гнать через старую инфраструктуру.

Это не магия. Это костыль. Работающий, но с граблями.

Как это выглядит на практике

У тебя есть IPv6-адрес. Пакет с ним не дойдёт до получателя напрямую — промежуточные роутеры его просто выкинут. Они IPv6 не понимают. Тогда ты берёшь этот пакет целиком, запихиваешь его в payload обычного IPv4-пакета и отправляешь на сервер-туннельный шлюз. Шлюз распаковывает, отправляет дальше уже по IPv6.

Обратно — то же самое. Ответный IPv6-пакет шлюз запаковывает в IPv4 и шлёт тебе.

Вот как это выглядит в терминах пакетов:

```

IPv4 заголовок (20 байт) | IPv6 заголовок (40 байт) | данные

```

Каждый IPv6-пакет тащит на себе 20 байт IPv4-накладных расходов. Плюс сам IPv6-заголовок — 40 байт. Итого 60 байт служебной информации на пакет. Для сравнения: чистый IPv4 — 20 байт. Чистый IPv6 — 40 байт.

Протоколы туннелирования

Их несколько. Разные подходы, разная совместимость, разная боль в жопе.

**6in4** — самый прямой. Протокол 41 в IPv4. Просто IPv6 внутри IPv4. Никакой инкапсуляции UDP, никаких портов. Работает, если твой NAT не тупит. Многие NAT-ы режут протокол 41. Тогда — привет, грабли.

**6to4** — автоматический туннель. Берёт IPv6-префикс из твоего IPv4-адреса. 2002:xxxx:xxxx::/48. Удобно, но релейные серверы часто перегружены. Скорость — сосёт.

**Teredo** — для тех, кто за NAT. Использует UDP. Пробивается через любые костыли. Но latency — бЯда. Пакеты ходят через релейные серверы Microsoft. Надёжность — никакой.

**OpenVPN в режиме tun** — можно заворачивать IPv6 в IPv4 через обычный VPN-туннель. Гибко, но overhead добавляется ещё и от самого OpenVPN.

Скорость: где теряем

Туннелирование — это не бесплатно. Каждый пакет проходит дополнительную обработку:

1. Инкапсуляция на клиенте. Процессорное время.

2. Передача через IPv4-сеть. Те же задержки, что и у обычного трафика.

3. Декапсуляция на шлюзе. Ещё процессор.

4. Передача по IPv6 к целевому серверу.

5. Обратный путь — то же самое.

Двойной путь. Двойная обработка. Двойная вероятность потери пакета.

**MTU — отдельная песня.** Стандартный Ethernet — 1500 байт. IPv6-пакет может быть до 1280 байт (минимальный MTU для IPv6). Но когда ты добавляешь 20 байт IPv4-заголовка, общий размер может превысить 1500. Тогда пакет фрагментируется. Фрагментация — это боль. Потеря одного фрагмента — потеря всего пакета. Retransmit. Скорость падает ещё сильнее.

На практике многие туннели настраивают MTU 1280 или даже 1200. Чтобы фрагментации не было. Но это снижает эффективную пропускную способность — полезных данных в каждом пакете меньше.

Замеры на реальном железе

Берём обычный сервер с 1 Гбит/с каналом. Пинг до сервера-шлюза — 5 мс. Туннель 6in4.

ТестБез туннеляЧерез туннель
Пинг до шлюза5 мс5 мс
Пинг до удалённого IPv6-хоста-8-12 мс
Скорость TCP (iPerf)950 Мбит/с600-800 Мбит/с
Скорость UDP940 Мбит/с500-700 Мбит/с

Потери — 15-30% пропускной способности. Пинг растёт на 3-7 мс.

Если NAT режет протокол 41 — приходится использовать Teredo. Там цифры хуже:

ТестTeredo
Пинг до шлюза20-50 мс
Скорость TCP50-200 Мбит/с
Скорость UDP30-150 Мбит/с

Teredo — это боль. Используй только если другого выхода нет.

Где это применяется

**Провайдеры.** Когда у них нет нативного IPv6, но нужно дать клиентам доступ к IPv6-ресурсам. Ставят туннельный брокер. Клиенты подключаются через 6in4 или 6to4.

**Корпоративные сети.** Внутри всё на IPv4, но нужно связать офисы через IPv6. Туннели — временное решение, пока не перейдут на нативный IPv6.

**Прокси-сервисы.** Вроде lexic.ml, который с 2015 года даёт IPv6 через IPv4. Ты подключаешься к их серверу, получаешь IPv6-адрес, и весь трафик идёт через туннель. Удобно для парсинга, обхода блокировок, тестов. Они уже настроили всё за тебя — MTU, шлюзы, оптимизацию.

**Домашние пользователи.** Хотят поиграть в игры, которые требуют IPv6. Или раздать IPv6 на домашнюю сеть. Ставят туннель на роутере.

Как проверить свой туннель

Открой консоль. Запусти:

```bash

ping6 -c 10 google.com

```

Если пинги идут — туннель работает. Смотри время ответа. Если > 100 мс — что-то не так.

Проверь MTU:

```bash

ip link show tun0

```

Если MTU меньше 1500 — туннель режет размер пакетов. Это нормально.

Проверь потери:

```bash

ping6 -c 100 -s 1400 google.com | grep loss

```

Потери > 1% — проблема. Фрагментация или перегруженный шлюз.

Ограничения, которые не обойти

**Дополнительная задержка.** Даже на быстром туннеле пинг выше на 3-10 мс. Для веб-сёрфинга — пофиг. Для онлайн-игр — критично.

**Нагрузка на процессор.** Инкапсуляция/декапсуляция жрёт CPU. На слабых роутерах — тормоза. На серверах — обычно незаметно.

**Зависимость от шлюза.** Если туннельный брокер лёг — ты лёг вместе с ним. Нет резервирования. Один шлюз — одна точка отказа.

**Проблемы с NAT.** Протокол 41 не все NAT-ы пропускают. Teredo — костыль с костылём. OpenVPN — надёжнее, но overhead больше.

**Фрагментация.** Если не настроить MTU правильно — пакеты будут фрагментироваться. Фрагментация убивает производительность TCP. Потому что потеря одного фрагмента — потеря всего пакета. TCP думает, что сеть перегружена, и снижает скорость.

Как улучшить скорость

1. Настрой MTU. 1280 — безопасно. 1400 — если сеть стабильная.

2. Выбирай сервер-шлюз географически близко. Чем меньше пинг до шлюза — тем быстрее туннель.

3. Используй 6in4, если NAT не режет. Отказ от Teredo сразу даст +200% скорости.

4. Если туннель тормозит — проверь потери на шлюзе. Может, он перегружен.

5. Для критичных задач — арендуй выделенный сервер с нативным IPv6 и ставь туннель сам. Контроль — выше, скорость — стабильнее.

Альтернативы

Нативный IPv6 — всегда лучше. Если провайдер даёт — используй. Туннели — временное решение. Для тестов, для обхода, для доступа к ресурсам, которые не работают на IPv4.

Если нужно стабильно и быстро — бери прокси-сервис, который уже настроил туннели за тебя. Они годами решали проблемы с MTU, NAT, шлюзами. Ты просто подключаешься и работаешь.

Туннелирование — это компромисс. Скорость ниже, задержка выше, но доступ к IPv6 — есть. Для 90% задач этого хватает. Для остальных 10% — нужен нативный протокол.

✔️Купить прокси