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 сеть.