Реализация Teredo

Хотя не требуется вносить изменения в программирование для Teredo, разработчикам рекомендуется вносить незначительные изменения, которые приводят к наиболее эффективному использованию интерфейса Teredo:

  • Для приложений, которые могут использовать только IPv6-трафик, можно использовать Teredo. Однако при разработке протокола приложения следует учитывать обработку трафика IPv4 и IPv6. Приложению потребуется привязаться к AF_INET6 или AF_UNSPEC в настройках параметров сокета.
  • Приложения, способные прослушивать неподпрошенный трафик из Интернета, необходимы для включения параметра обхода сетевых адресов (NAT) внутри брандмауэра Windows. Это достигается путем вызова API INetFwPolicy2 с параметром Edge Traversal, равным VARIANT_TRUE. Windows Vista гарантирует, что адрес Teredo доступен для использования, когда это необходимо приложению. В результате адрес Teredo автоматически стабилизируется при использовании интерфейса Teredo. Если приложение хочет убедиться, что адрес Teredo стабильный, вызов NotifyStableUnicastIpAddressTable API переводит Teredo в устойчивое состояние.
  • Приложения также могут использовать параметр сокета IPV6_PROTECTION_LEVEL Winsock для установки уровня защиты, что позволяет незапрошенному входящему трафику проходить через брандмауэр. См. Получение непрошенного трафика через Teredo для получения дополнительной информации.

Помощник интернет-протокола (IP Helper) реализации конкретных функций Teredo служит примером того, как адрес Teredo можно проверить и сделать доступным для приложения. Дополнительные сведения см. в статье Using Teredo With IP Helper.