Teredo (сетевой протокол)
Teredo — сетевой протокол, предназначенный для передачи IPv6-пакетов через сети IPv4, в частности, через устройства, работающие по технологии NAT, путём их инкапсуляции в UDP-дейтаграммы.
Цели
Стандартные средства инкапсуляции IPv6 в IPv4 требуют, чтобы как сервер, так и клиент имели публичный IP-адрес. Однако, в настоящее время многие устройства подсоединены к Интернету IPv4 через одно или несколько устройств NAT, как правило, из-за нехватки IPv4-адресов. В такой ситуации единственный доступный IPv4-адрес принадлежит устройству NAT. Протокол Teredo даёт возможность доступа к IPv6-сетям при такой конфигурации сети.
Обзор
Протокол Teredo обеспечивает:
- Проверку соединения UDP over IPv4 (UDPv4) и обнаружение NAT, если таковой имеется в соединении (аналог STUN)
- Присваивает конечному устройству уникальный IPv6-адрес
- Упаковывает (инкапсулирует) IPv6-пакеты в дейтаграммы UDPv4 для передачи их по сети IPv4
- Занимается маршрутизацией между Teredo-хостами и IPv6-хостами
Все хосты с поддержкой Teredo делятся на:
- Teredo-клиент — обычный IPv4-хост, который имеет выход в Internet, находится за NAT и использует туннелирующий протокол Teredo для подключения к сети IPv6. Всем клиентам присваивается IPv6-адрес, начинающийся с префикса (2001::/32).
- Teredo-сервер
- Teredo-релей (relay)
- Локальный для хоста релей (host-specific relay) Teredo
Реализации в *nix-системах
- ng_teredo маршрутизатор и сервер для FreeBSD, созданный LIP6 и 6WIND.
- Miredo клиент, сервер и маршрутизатор для Linux, BSD и Mac OS X.
- NICI-Teredo маршрутизатор и сервер для GNU/Linux, созданные National Chiao Tung University.
Безопасность
В настоящее время активно обсуждается безопасность применения протокола Teredo. Основной угрозой является то, что на данный момент не все межсетевые экраны способны фильтровать Teredo-трафик, что может сделать возможным несанкционированное проникновение в IPv6-сеть.