Кіріспе

Компьютерлік желілерде протоколға өту технологиясы

Компьютерлік желілерде Teredo – IPv6 мүмкіндігі бар, бірақ IPv6 желісіне тікелей қосылмаған хосттарға толық IPv6 байланысын қамтамасыз ететін өту технологиясы. 6to4 сияқты басқа ұқсас протоколдардан айырмашылығы, ол үй маршрутизаторлары сияқты желілік адрес трансляциясы (NAT) құрылғыларының артында да жұмыс істей алады. Teredo платформадан тәуелсіз туннельдеу протоколын пайдаланады, ол IPv6 (Интернет протоколының 6-шы нұсқасы) байланысын IPv6 дерекграммаларын IPv4 пайдаланушы дерекграммалық протоколы (UDP) пакеттеріне ендіру арқылы қамтамасыз етеді. Teredo осы дерекграммаларды IPv4 Интернеті арқылы және NAT құрылғылары арқылы жібереді. IPv6 желісіндегі басқа Teredo түйіндері (Teredo релелері деп аталады) пакеттерді қабылдап, оларды ашып, одан әрі жібереді. Teredo – уақытша шешім. Ұзақ мерзімді перспективада барлық IPv6 хосттары тікелей IPv6 байланысын пайдалануы керек. IPv6 байланысы қолжетімді болған кезде Teredo өшірілуі керек. Кристиан Хуитема Teredo-ны Microsoft компаниясында жасады, ал IETF оны RFC 4380 ретінде бекітті. Teredo сервері 3544 UDP портында күтіп тұрады.

Мақсаты

6to4 үшін, ең көп таралған IPv6 over IPv4 туннель протоколы, туннельдің соңғы нүктесіне қоғамдық IPv4 адресі қажет. Дегенмен, көптеген хосттар қазіргі уақытта IPv4 Интернетке бір немесе бірнеше NAT құрылғылары арқылы қосылады, көбінесе IPv4 адресінің жетіспеуіне байланысты. Мұндай жағдайда, қол жетімді жалғыз қоғамдық IPv4 адресі NAT құрылғысына беріледі, ал 6to4 туннелінің соңғы нүктесі NAT құрылғысының өзінде іске асырылуы тиіс. Проблема сол, көптеген қазіргі уақытта орнатылған NAT құрылғыларын техникалық немесе экономикалық себептермен 6to4 іске асыру үшін жаңарту мүмкін емес. Teredo бұл мәселені IPv6 пакеттерін UDP/IPv4 датаграммаларының ішіне енгізу арқылы шешеді, көптеген NAT құрылғылары оларды дұрыс жібере алады. Осылайша, NAT-тің артындағы IPv6-ны білетін хосттар, тіпті арнайы қоғамдық IPv4 адресі болмаса да, Teredo туннелінің соңғы нүктелері ретінде жұмыс істей алады. Teredo-ны іске асыратын хост жергілікті желі ортасының көмегінсіз IPv6 қосылымын ала алады. Ұзақ мерзімді перспективада барлық IPv6 хосттары түпкілікті IPv6 қосылымын пайдалануы керек. Уақытша Teredo протоколына тоқтату процедурасы үшін ережелер кіреді: Teredo іске асырылуы IPv6 жетілгенде және қосылымды аз осал механизм арқылы қол жетімді етуге болатын кезде Teredo қосылымын пайдалануды тоқтату жолын қамтамасыз етуі керек. IETF89-дан бастап Microsoft 2014 жылдың бірінші жартысында (нақты күні белгіленбеді) Windows клиенттері үшін Teredo серверлерін өшіруді жоспарлап отыр және қоғамдық түрде жұмыс істейтін Teredo релелерін өшіруге шақырады.

Релелер

Терэдо релесіне көп желілік өткізу қабілеті қажет болуы мүмкін. Сонымен қатар, ол Teredo IPv6 префиксіне (2001::/32) басқа IPv6 хосттарына экспорттау (жарнамалау) керек. Осылайша, Терэдо релесі кез келген Терэдо клиентіне жіберілген IPv6 хосттарынан трафикті қабылдайды және оны UDP/IPv4 арқылы жібереді. Симметриялық түрде ол UDP/IPv4 арқылы IPv6 хосттарына жіберілген Терэдо клиенттерінен пакеттерді қабылдайды және оларды IPv6 желісіне енгізеді. Іс жүзінде желі әкімшілері өздерінің компаниясы немесе кампусы үшін жеке Терэдо релесін орната алады. Бұл олардың IPv6 желісі мен кез келген Терэдо клиенті арасындағы қысқа жолды қамтамасыз етеді. Алайда, Терэдо релесін бір желіден тыс масштабта орнату үшін BGP IPv6 маршруттарын басқа автономды жүйелерге (AS) экспорттау мүмкіндігі қажет. 6to4-тен айырмашылығы, онда қосылыстың екі жартысы әртүрлі релелерді қолдана алады, жергілікті IPv6 хосты мен Терэдо клиенті арасындағы трафик бірдей Терэдо релесін, атап айтқанда, жергілікті IPv6 хост желісіне ең жақын болып табылатын релені пайдаланады. Терэдо клиенті релені өзі анықтай алмайды (өйткені ол IPv6 пакеттерін өзі жібере алмайды). Егер ол IPv6 хостымен байланыс орнатуды бастауы керек болса, ол бірінші пакетті Терэдо сервері арқылы жібереді, ол клиенттің Терэдо IPv6 адресін пайдалана отырып, IPv6 хостына пакет жібереді. Жергілікті IPv6 хосты әдеттегідей клиенттің Терэдо IPv6 адресіне жауап береді, бұл ақыр соңында пакеттің Терэдо релесін табуына әкеледі, ол клиентке қосылымды бастайды (мүмкін Терэдо серверін NAT-ты бұзу үшін пайдалану). Терэдо клиенті мен IPv6 хосты қажет болғанша байланыс үшін релені пайдаланады. Бұл дизайн Терэдо серверінің де, клиенттің де Терэдо релелерінің IPv4 мекенжайын білудің қажеті жоқ дегенді білдіреді. Олар жаһандық IPv6 маршруттау кестесі арқылы автоматты түрде қолайлы релені табады, өйткені барлық Терэдо релелері желі 2001::/32 жарнамалайды. 2006 жылдың 30 наурызында ITGate итальяндық провайдері IPv6 Интернетте 2001::/32 маршрутын жарнамалай бастаған алғашқы AS болды, сондықтан RFC 4380 талаптарына сай Терэдо іске асырулары толыққанды пайдалануға болады. 2007 жылдың 16 ақпанынан бастап ол жұмыс істемейді. 2009 жылдың 1-тоқсанында IPv6 магистральдық желісі Hurricane Electric 14 Терэдо релесін anycast жүзеге асыру арқылы іске қосты және 2001::/32 жаһандық түрде жарнамалады. Релелер Сиэтл, Фримонт, Лос-Анджелес, Чикаго, Даллас, Торонто, Нью-Йорк, Эшберн, Майами, Лондон, Париж, Амстердам, Франкфурт және Гонконг қалаларында орналасқан. Үлкен желі операторлары Терэдо релелерін ұстап тұрады деп күтілуде. 6to4 сияқты, Терэдо қызметінің IPv4-тен басқа, Терэдо арқылы IPv6-ны пайдалана бастаған Интернет хосттарының үлкен бөлігіне дейін қаншалықты жақсы кеңейетіні әлі белгісіз. Microsoft Windows XP үшін алғашқы Терэдо псевдо-туннелін шығарғаннан бері Терэдо серверлерінің жиынтығын жұмыс істесе де, олар ешқашан IPv6 Интернеті үшін Терэдо реле қызметін ұсынған емес.

Шектеулер

Teredo барлық NAT құрылғыларымен үйлесімді емес. RFC 3489 терминологиясын қолдану арқылы, ол толық конус, шектеулі және портпен шектелген NAT құрылғыларын қолдайды, бірақ симметриялық NAT-тарды қолдамайды. Teredo протоколының бастапқы нұсқасы Shipworm да симметриялық NAT-тарды қолдаған, бірақ қауіпсіздік алаңдауларына байланысты одан бас тартылған. Кейінірек Тайваньдағы Ұлттық Чиао Тунг университетінің ғалымдары SymTeredo ұсынды, ол симметриялық NAT-тарды қолдау үшін бастапқы Teredo протоколын жетілдірді, ал Microsoft және Miredo іске асырулары симметриялық NAT-тарды қолдауды жақсарту үшін белгілі бір стандартқа келмейтін кеңейтулерді енгізеді. Дегенмен, симметриялық NAT-тың артындағы Teredo клиенті мен портпен шектелген немесе симметриялық NAT-тың артындағы Teredo клиенті арасындағы байланыс, көрінетіндей, мүмкін емес. Шындығында, Teredo екі клиент капсулаланған IPv6 пакеттерін алмасса, карталанған/сыртқы UDP порт нөмірлері Teredo серверімен байланысу үшін (және Teredo IPv6 мекенжайын құру үшін) пайдаланылған нөмірлермен сәйкес келеді деп есептейді. Егер осы есептеу дұрыс болмаса, екі клиент арасында тікелей байланыс орнату мүмкін болмайды және үшбұрышты маршруттауды жүзеге асыру үшін қымбат реле пайдалану қажет болады. Teredo іске асырылымы бастапқыда NAT түрін анықтауға тырысады және NAT симметриялық болып көрінсе, жұмыс істеуден бас тартады. (Бұл шектеуді кейде құрылғыға әкімшілік қол жеткізуді қажет ететін NAT құрылғысында портты жіберу ережесін қолмен конфигурациялау арқылы айналып өтуге болады). Teredo туннельдің әр соңы үшін тек бір IPv6 мекенжайын ұсына алады. Осы себепті, 6to4 және кейбір нүктеден нүктеге IPv6 туннельдерінен айырмашылығы, бірнеше хосттарды қосу үшін бір Teredo туннелін пайдалану мүмкін емес. Teredo клиенттеріне IPv6 Интернетке қол жетімді болатын өткізу қабілеті Teredo релелерінің болуымен шектеледі, бұл жағынан олар 6to4 релелерінен ешқандай айырмашылығы жоқ.

Баламалар

6to4 ашық IPv4 мекенжайын қажет етеді, бірақ әрбір туннельдің соңғы нүктесі үшін үлкен 48 биттік IPv6 префиксін ұсынады және инкапсуляцияның төменгі жүктемесіне ие. Нүктеден нүктеге туннельдер Тередоға қарағанда сенімдірек және жауапкершілік жүктемесі жоғарырақ болуы мүмкін, сондай-ақ туннельдің соңғы нүктесінің IPv4 мекенжайына тәуелді емес, тұрақты IPv6 мекенжайларын ұсынады. Кейбір нүктеден нүктеге туннель брокерлері NAT-тардан өту үшін UDP инкапсуляциясын қолдайды (мысалы, AYIYA протоколы осы мүмкіндікке ие). Алайда, нүктеден нүктеге туннельдер әдетте тіркеуден өтуді талап етеді. Автоматтандырылған құралдар (мысалы, AICCU) нүктеден нүктеге туннельдерді пайдалануды оңайлатуға көмектеседі.

Экспозиция

Teredo NAT құрылғыларының артындағы желілік хосттарға, әйтпесе Интернеттен қол жеткізуге болмайтын, жаһандық маршрутизацияланатын IPv6 адрестерін тағайындау арқылы шабуылға ұшырау мүмкіндігін арттырады. Осылайша, Teredo кез келген IPv6 қолдауы бар және ашық порты бар қосымшаны сыртқы ортаға әлеуетті түрде ашады. Teredo туннельдік капсулациясы IPv6 дерек трафигінің мазмұнын пакеттерді тексеру бағдарламалық қамтамасы үшін көрінбейтін етеді, бұл зиянды бағдарламалардың таралуын жеңілдетеді. Соңында, Teredo IPv6 стегі мен туннельдеу бағдарламалық қамтамасын, егер оларда қашықтан пайдалануға болатын осалдықтар болса, шабуылдарға ұшыратады. Шабуылға ұшырау мүмкіндігін азайту үшін Microsoft IPv6 стегінде "қорғау деңгейі" сокет опциясы бар. Бұл қосымшаларға IPv6 трафигін қандай көздерден қабылдауға дайын екенін көрсетуге мүмкіндік береді: Teredo туннелінен, Teredo-дан басқа кез келген жерден (әдепкі бойынша) немесе тек жергілікті интранеттен. Teredo протоколы сонымен қатар туннельдің соңғы нүктесі туралы егжей-тегжейлі ақпаратты өз дерек пакеттерінде қамтиды. Бұл ақпарат әлеуетті шабуылшыларға шабуыл жасау мүмкіндігін арттыру және/немесе қажетті күш-жігерді азайту арқылы көмектесе алады.

Блок-файролл, сүзгілеу және бұғаттау

Терэдо псевдо-тұңғымының қалыпты жұмыс істеуі үшін 3544 портына бағытталған UDP пакеттері сүзгіленбеуі тиіс. Сонымен қатар, осы пакеттерге жауап ретінде келетін трафик ("сұралған трафик") да сүзгіленбеуі керек. Бұл NAT және оның күйді сақтаушы (stateful) өрт қабырғасының стандартты конфигурациясына сәйкес келеді. Teredo туннельдеу бағдарламасы шығатын IPv4 UDP трафигі бұғатталса, қателік туралы хабарлап, жұмысын тоқтатады.

DoS маршруттау циклдері арқылы

2010 жылы Терэдо туннельдерін пайдаланып, маршруттық циклдар арқылы қызметтен бас тарту шабуылдарын жасаудың жаңа әдістері анықталды. Оларды болдырмау өте оңай.

MS-Windows-та әдетті пайдалану

Microsoft Windows-тың Windows 10, 1803 нұсқасы және одан кейінгі нұсқаларында Teredo әдепкі бойынша өшірілген. Қажет болса, бұл көшісі технологиясын CLI командасы немесе Топтық саясат арқылы қосуға болады.

Атауды таңдау

Терэдо туннельдік протоколының бастапқы аты Кеме құрттары болған. Протокол NAT құрылғыларын, кеме құрттары сияқты (теңізде ағаш тесіп өтетін моллюскалар) ағашқа туннельдер қазып өтеді деп ойланды. Көптеген ағаштан жасалған кемелер осы құрттардың кесірінен қираған. Алғашқы нұсқада Кристиан Хуитема кеме құрттарының "тек таза және ластанбаған суларда ғана тіршілік ететінін, ал Солтүстік Американың бірнеше портында олардың қайта пайда болуы судың тазалығының артуын көрсетеді. Shipworm сервисі де Интернеттің ашықтығын арттыруға септігін тигізуі керек" деп жазған. Компьютерлік вирустармен шатасуды болдырмау үшін Хуитема кейіннен протоколдың атын Shipworm-нан Teredo-ға өзгертеді, бұл Teredo navalis кеме құртының ғылыми атынан алынған.