Versija 5 nuo 2012-05-21 21:22:35

Išvalyti žinutę
Locked History Actions

Session Traversal Utilities for NAT

Žodis angliškai:

STUN

Santrumpa:

STUN

Žodis lietuviškai:

NAT‘ui skirta sesijų trasavimo priemonė

Apibrėžimas:

STUN (angl., Session Traversal Utilities for NAT, - NAT‘ui skirta sesijų trasavimo priemonė, anksčiau angl. Simple Traversal of UDP through NATs, - Paprastas UDP praėjimas pro NAT serverius) - tai tinklo sąsaja, leidžianti esančiam už adresų transliavimo serverio (arba už kelių tokių serverių) klientui nustatyti savo išorinį IP-adresą, adreso transliavimo būdą ir prievado, susieto su tam tikru vidinio prievado numeriu, numerį išoriniame tinkle. Gauta informacija yra naudojama UDP susijungimui inicijuoti tarp dviejų mazgų tuo atvejų, jei abu jie yra už NAT maršrutizatoriaus. Sąsajos, tokios kaip SIP, naudoja UDP paketus balsui, vaizdui ar tekstui perduoti IP-tinkluose. Deja, kai abi bendraujančios šalys lokalizuotos už NAT‘o - susijungimas negali būti įvykdytas paprastu būdu. Būtent tokiose situacijose gelbsti STUN sąsaja.

STUN - tai serverio-kliento sąsaja. VoIP-klientas gali turėti savyje STUN-kliento realizaciją, kuris siunčia užklausas STUN serveriui. Po to STUN serveris siunčia klientui atgal informaciją apie tai, koks yra NAT maršrutizatoriaus išorinis adresas, kokie prievadai jame yra atidaryti tam, kad priiminėti įeinančias užklausas atgal į vidinį tinklą. Atsakymas leidžia STUN-klientui nustatyti, koks transliacijos tipas yra naudojamas, nes skirtingi NAT maršrutizatorių tipai apdoroja UDP paketus įvairiai.

Pavyzdys:

NAT tipo nustatymas, naudojant STUN, daromas tokiu būdu. Tarkim klientas yra už NAT, kliento lokalus adresas 192.168.0.111, viešasis NAT adresas 1.2.3.4, STUN-serverio adresas - 11.22.33.1 ir 11.22.33.2, prievadų numeriai 3478. Vykdomi tokie veiksmai:

  • Klientas siunčia užklausą pagrindiniam serverio adresui (11.22.33.1), tuo pačiu užklausos paketo viduje nurodyti adresai ir prievadai: 192.168.0.111:1055 -> 11.22.33.1:3478. Tokie pat adresai ir prievadai yra ir užklausos IP-paketo antraštėje, bet po NAT praėjimo šaltinio adresas antraštėje pakeičiamas į 1.2.3.4, o prievado numeris, priklausomai nuo NAT realizacijos, gali pasikeisti, arba likti nepakeistas. Jeigu klientas negauna jokio atsakymo per taimauto periodą, daroma išvada, kad klientas yra už blokuojančios ugniasienės, ir jis baigia darbą.

  • Serveris atsako klientui iš savo adreso 11.22.33.1 pranešimu, kuriuo viduje taip pat yra nurodyti jo adresai ir prievadų numeriai: 11.22.33.1:3478 -> 1.2.3.4:1055. Jeigu adresas, iš kurio klientas siuntė savo pirmą pranešimą (192.168.0.111), ir adresas gautame nuo serverio pranešime sutaptų, klientas padarytų išvadą, kad paketų kelyje NAT maršrutizatorių nėra. Šiuo atveju klientas ir serveris dar apsikeistu pora užklausų-atsakymų, pagal kuriuos galima būtų nustatyti, ar nėra jų kelyje ugniasienių, blokuojančių įeinančius UDP paketus. Kai šie adresai nesutampa, akivaizdu, kad kelyje tarp kliento ir serverio yra NAT. Taipogi šiame atsakyme serveris informuoja klientą apie savo alternatyvų IP-adresą (11.22.33.2) ir prievado numerį (3478).

  • Po to klientas siunčia antrą zonduojantį pranešimą, kuriame nustatoma speciali vėliavėlė, nurodanti serveriui, kad klientas laukia atsakymo iš jo alternatyvaus IP-adreso (11.22.33.2) ir su kitu šaltinio prievado numeriu. Jeigu klientas gauna atsakymą tokiai užklausai, padaroma išvada, kad jų kelyje stovintis NAT yra Full Cone tipo.
  • Jeigu į paskutinę užklausa atsakymo gauta nebuvo, klientas siunčia savo pirmą zonduojančią užklausą į alternatyvųjį STUN-serverio adresą. Jeigu gautajame atsakyme adresas ir prievado numeris skiriasi nuo nurodytų pirmajame atsakyme, tai reiškia, kad nauja užklausa inicijavo naujo įrašo atsiradimą NAT lentelėje. Toks elgesys būdingas Symmetric NAT tipui.
  • Jeigu adreso ir prievado numeris gautajame atsakyme pasiliko tokie patys, kokie buvo esant pirmam atsakymui, tai reiškia kad NAT yra Restricted Cone tipo. Belieka tik išsiaiškinti, ar jis yra Adders Restricted, ar Port Restricted. Tam tikslui klientas siunčia ketvirtąją užklausą, kur pažymima vėliavėlė, nurodanti serveriui, kad jis turi atsakyti, panaudojus kitą šaltinio prievado numerį. Jeigu atsakymas buvo gautas - tai reiškia, kad NAT yra Address Restricted Cone tipo, jei ne - Port Restricted Cone.

STUN veikimo iliustravimui pažiūrėsim į šitą paveikslą:

stun.gif

STUN sąsajos paketo struktūra:

Klientas ir serveris sąveikauja, siunčiant vienas kitam tokio tipo UDP paketus:

1.jpg

Kiekvienas pranešimas turi dvi dalis - antraštę ir atributus. Antraštė yra būtina kiekvienam pranešimui, skirtingai kaip atributai, nes sąsaja leidžia siusti pranešimus, susidedančius tik tai iš antraščių, be atributų.

Paketo antraštė

STUN-paketo antraštė (Message Header) yra tokio formato:

2.jpg

Naudota literatūra:

http://en.wikipedia.org/wiki/Freenet

http://lt.wikipedia.org/wiki/Freenet


CategoryŽodis