Поделиться через


Адреса Teredo

Адрес Teredo состоит из следующих элементов:

  • префикс Teredo

    Первые 32 бита предназначены для префикса Teredo, который одинаков для всех адресов Teredo. Windows XP и Windows Server 2003 изначально использовали префикс 3FFE:831F::/32 Teredo. Префикс, определенный для Teredo в RFC 4380, равен 2001::/32 и является префиксом, используемым Teredo в Windows Vista и Windows Server 2008. Компьютеры под управлением Windows XP и Windows Server 2003 будут использовать префикс 2001::/32 Teredo при обновлении с помощью бюллетеня майкрософт по безопасности MS06-064.

  • адрес IPv4 сервера Teredo

    Следующие 32 бита содержат общедоступный адрес IPv4 сервера Teredo, который помог настроить этот адрес Teredo. Дополнительные сведения см. в разделе "Начальная конфигурация для клиентов Teredo" в этой статье.

  • флаги

    Следующие 16 битов зарезервированы для флагов Teredo. Для клиентов Teredo на основе Windows XP только определенный флаг — это бит высокого порядка, известный как флаг Cone. Флаг Cone устанавливается, когда клиент Teredo находится за конусом NAT. Определение того, является ли NAT подключенным к Интернету конусом NAT во время начальной конфигурации клиента Teredo. Дополнительные сведения см. в разделе "Начальная конфигурация для клиентов Teredo" в этой статье.

    Для клиентов Teredo на основе Windows Vista и Windows Server 2008 неиспользуемые биты в поле Flags обеспечивают уровень защиты от сканирования адресов злоумышленниками. 16 битов в поле "Флаги" для клиентов Teredo на основе Windows Vista и Windows Server 2008 состоят из следующих компонентов: CRAAAAUG AAAAAAAAAAAA. Бит C предназначен для флага Cone. Бит R зарезервирован для дальнейшего использования. Бит U предназначен для универсального или локального флага (задано значение 0). Бит G — отдельный или групповой флаг (задано значение 0). Биты задаются для 12-разрядного случайно созданного числа. Используя случайное число для битов, злоумышленник, который определил остальную часть адреса Teredo, захватив исходный обмен пакетами между клиентом Teredo и сервером Teredo, придется попробовать до 4096 (212) разных адресов, чтобы определить адрес клиента Teredo во время сканирования адресов.

  • скрыт внешний порт

    В следующих 16 битах хранится скрытая версия внешнего порта UDP, соответствующего всем трафику Teredo для этого клиента Teredo. Когда клиент Teredo отправляет исходный пакет на сервер Teredo, исходный порт UDP пакета сопоставляется с NAT другим внешним портом UDP. Клиент Teredo поддерживает это сопоставление портов, чтобы он оставался в таблице перевода NAT. Таким образом, весь трафик Teredo для узла использует один и тот же внешний, сопоставленный порт UDP. Внешний порт UDP определяется сервером Teredo из исходного порта UDP входящего начального пакета, отправленного клиентом Teredo, и отправляется обратно клиенту Teredo.

    Внешний порт скрывается XORing внешнего порта с 0xFFFF. Например, скрытая версия внешнего порта 5000 в шестнадцатеричном формате — EC77 (5000 = 0x1388, 0x1388 XOR 0xFFFF = 0xEC77). Скрытие внешнего порта предотвращает преобразование внешнего порта в полезных данных пакетов, которые они перенаправляют.

  • скрыт внешний адрес

    Последние 32 бита хранят скрытую версию внешнего IPv4-адреса, соответствующего всем трафику Teredo для этого клиента Teredo. Как и внешний порт, когда клиент Teredo отправляет свой первоначальный пакет на сервер Teredo, исходный IP-адрес пакета сопоставляется с NAT другим внешним (общедоступным) адресом. Клиент Teredo поддерживает это сопоставление адресов, чтобы он оставался в таблице перевода NAT. Таким образом, весь трафик Teredo для узла использует один и тот же внешний, сопоставленный, общедоступный IPv4-адрес. Внешний IPv4-адрес определяется сервером Teredo из исходного IPv4-адреса входящего исходного пакета, отправленного клиентом Teredo и отправляемым обратно клиенту Teredo.

    Внешний адрес скрывается XORing внешнего адреса с 0xFFFFFFFF. Например, скрытая версия общедоступного IPv4-адреса 131.107.0.1 в шестнадцатеричном формате двоеточия составляет 7C94:FFFE (131.107.0.1 = 0x836B0001, 0x836B0001 XOR 0xFFFFFFFF = 0x7C94FFFE). Скрытие внешнего адреса предотвращает преобразование внешнего адреса в полезных данных пакетов, которые они перенаправляют.