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:0::/32).
- Teredo сервер
- Teredo релей (relay)
- Хост-релей (host-specific relay) Teredo