Перайсці да зместу

NAT

З Вікіпедыі, свабоднай энцыклапедыі

NAT (ад англ.: Network Address Translation — «пераўтварэнне сеткавых адрасоў») — гэта механізм у сетках TCP/IP, які дазваляе пераўтвараць IP-адрасы транзітных пакетаў. Таксама мае назвы IP Masquerading, Network Masquerading і Native Address Translation.

Функцыянаванне

[правіць | правіць зыходнік]

Пераўтварэнне адрасу метадам NAT можа здзяйсняцца амаль любой маршрутызавальнай прыладай — маршрутызатарам, серверам доступу, міжсеткавым экранам. Найбольш папулярным з'яўляецца SNAT, функцыяй якога з'яўляецца падмена адраса крыніцы (англ.: source) падчас мінання пакета ў адзін бок і адваротнай падмене адраса прызначэння (англ.: destination) у адказным пакеце. Разам з адрасамі крыніца/прызначэнне могуць таксама замяняцца нумары партоў крыніцы і прызначэння.

Прымаючы пакет ад лакальнага камп'ютара, роўтар глядзіць на IP-адрас прызначэння. Калі гэта лакальны адрас, то пакет перасылаецца іншаму лакальнаму камп'ютару. Калі не, пакет патрэбна пераслаць вонкі ў інтэрнэт. Але ж зваротным адрасам у пакеце пазначаны лакальны адрас камп'ютара, які з інтэрнэту будзе недасягальны. Таму роўтер імгненна транслюе (падмяняе) зваротны IP-адрас пакета на свой вонкавы (сапраўды бачны з інтэрнэту) IP-адрас і змяняе нумар парта (каб адрозніваць зваротныя пакеты, адрасаваныя розным лакальным камп'ютарам). Камбінацыю, патрэбную для адваротнай падстаноўкі, роўтар захоўвае ў сваёй часовай табліцы. Праз некаторы час пасле таго, калі кліент і сервер скончаць абмен пакетамі, роўтар знішчыць у сваёй табліцы запіс аб n-ым парце за тэрмінам даўнасці.

Апроч source NAT (прадастаўленне карыстальнікам лакальнай сеткі з унутранымі адрасамі доступу да сеціва Інтэрнэт) часта ўжываецца таксама destination NAT, калі запыты звонку транслююцца міжсеткавым экранам на камп'ютар карыстальніка ў лакальнай сетцы, які мае "шэры" адрас і таму недасяжны непасрэдна звонку сеткі (без NAT).

Існуе 3 базавыя канцэпцыі трансляцыі адрасоў: статычная (Static Network Address Translation), дынамічная (Dynamic Address Translation), маскарадная (NAPT, NAT Overload, PAT).

Статычны NAT — адпавяданне незарэгістраванага ("шэрага") IP-адраса на зарэгістраваны ("белы") IP-адрас адзін да аднаго. Асабліва карысна, калі прылада павінна быць даступнай звонку сеткі.

Дынамічны NAT — Адлюстроўвае "шэры" IP-адрас на "белы" адрас з групы "белых" IP-адрасоў. Дынамічны NAT таксама ўсталёўвае непасрэднае адпавяданне паміж "шэрым" і "белым" адрасамі, але адпавяданне можа змяняцца ў залежнасці ад "белага" адраса, даступнага з шэрагу адрасоў, падчас камунікацыі.

Перагружаны NAT (NAPT, NAT Overload, PAT, маскарадынг) — форма дынамічнага NAT, які транслюе некалькі "шэрых" адрасоў у адзіны "белы" IP-адрас, ужываючы розныя парты. Вядомы таксама як PAT (Port Address Translation). Пры перагрузцы кожны камп'ютар у прыватнай сетцы транслюецца ў адзіны адрас, але з рознымі нумарамі парта.

Механізм NAT вызначаны ў RFC 1631, RFC 3022.

Класіфікацыя NAT, якая часта сустракаецца ў сувязі з VoIP.[1] Тэрмін «злучэнне» ўжыты ў значэнні «паслядоўны абмен пакетамі UDP».

Сіметрычны NAT (Symmetric NAT) — Трансляцыя, пры якой кожнае злучэнне, якое ініцыюецца парай «унутраны адрас: унутраны порт» пераўтвараецца ў адвольна выпадковую ўнікальную пару «публічны адрас: публічны порт». Аднак ініцыяцыя злучэння з публічнай сеткі немагчыма.

Cone NAT, Full Cone NAT — Адназначная (ўзаемная) трансляцыя паміж парамі «ўнутраны адрас: унутраны порт» і «публічны адрас: публічны порт». Любы вонкавы хост можа ініцыяваць злучэнне з унутраным хостам (калі гэта дазволена правіламі міжсеткавага экрану).

Address-Restricted cone NAT, Restricted cone NAT — Сталая трансляцыя паміж парай «унутраны адрас: унутраны порт» і «публічны адрас: публічны порт». Любое злучэнне, ініцыяванае з унутранага адрасу, дазваляе яму ў далейшым атрымліваць пакеты з любога парта таго публічнага хоста, да якога ён дасылаў пакет(ы) раней.

Port-Restricted cone NAT — Трансляцыя паміж парай «унутраны адрас: унутраны порт» і «публічны адрас: публічны порт», у якой уваходныя пакеты праходзяць на ўнутраны хост толькі з аднаго парта публічнага хоста — таго, на які унутраны хост ужо дасылаў пакет.

NAT выконвае тры важныя функцыі.

  1. Дазваляе эканоміць IP-адрасы (толькі ў выпадку ўжывання NAT у рэжыме PAT), транслюючы некалькі ўнутраных IP-адрасоў у адзін вонкавы публічны IP-адрас (ці ў некалькі, але меншай колькасці, чым унутраных). Па такім прынцыпе пабудавана большасць сетак у свеце: на невялікі раён хатняй сеткі мясцовага правайдара ці на офіс вылучаецца 1 публічны (вонкавы) IP-адрас, за якім працуюць і атрымліваюць доступ інтэфейсы з прыватнымі (унутранымі) IP-адрасамі.
  2. Дазваляе прадухіліць ці абмежаваць запыт звонку да унутраных хостаў, пакідаючы магчымасць звяртання знутры вонкі. Пры ініцыяцыі злучэння знутры сеткі ствараецца трансляцыя. Адказныя пакеты, якія трапляюць звонку, адпавядаюць створанай трансляцыі і таму будуць прапушчаны. Калі для пакетаў, якія трапляюць звонку, адпаведнай трансляцыі не існуе (яна можа быць створана пры ініцыяцыі злучэння ці статычным правілам), то яны не будуць прапушчаны.
  3. Дазваляе схаваць пэўныя ўнутраныя сэрвісы унутраных хостаў/сервераў. Па сутнасці выконваецца тая ж трансляцыя на пэўны порт, але магчыма падмяніць унутраны порт афіцыйна зарэгістраванай службы (напрыклад, 80-ы порт TCP (HTTP-сервер) на вонкавы 54055-ы). Тым самым, па вонкавым IP-адрасе пасля трансляцыі адрасоў на сайт (ці форум) дасведчаныя наведвальнікі могуць трапіць адрасам http://example.org:54055, але на ўнутраным серверы, які знаходзіцца за NAT, ён будзе працаваць на звычайным 80-м порце. Так дасягаецца паляпшэнне бяспекі і схаванне «непублічных» рэсурсаў.
  1. Старыя пратаколы. Пратаколы, распрацаваныя да масавага ўкаранення NAT, не ў стане работаць, калі на шляху паміж хостамі ёсць трансляцыя адрасоў. Некаторыя міжсеткавыя экраны, якія здзяйсняюць трансляцыю IP-адрасоў, могуць выправіць гэты недахоп, адпаведным чынам падмяняючы IP-адрасы не толькі ў загалоўках IP, але і на больш высокіх узроўнях (напрыклад, у камандах пратаколу FTP). Гл. Application-level gateway.
  2. Ідэнтыфікацыя карыстальнікаў. З-за трансляцыі адрасоў «шмат у адзін» з'яўляюцца дадатковыя цяжкасці з ідэнтыфікацыяй карыстальнікаў і патрэбай захоўваць поўныя логі трансляцый.
  3. Ілюзія DoS-нападу. Калі NAT ужываецца дзеля далучэння шматлікіх карыстальнікаў да аднаго і таго ж сэрвісу, гэта можа выклікаць ілюзію DoS-атакі на сэрвіс (мноства паспяховых і няўдалых спробаў). Напрыклад, залішняя колькасць карыстальнікаў ICQ за NAT выклікае праблему далучэння да сервера некалькіх карыстальнікаў з-за перавышэння дапушчальнай хуткасці далучэнняў. Частковым рашэннем праблемы з'яўляецца ўжыванне пула адрасоў (групы адрасоў), для якіх ажыццяўляецца трансляцыя.
  4. Пірынгавыя сеткі. У NAT-прыладах, якія не падтрымліваюць тэхналогію Universal Plug & Play, у некаторых выпадках патрэбна дадатковая наладка (гл. Трансляцыя порт-адрас) пры рабоце з пірынгавымі сеткамі і некаторымі іншымі праграмамі, у якіх патрэбна не толькі ініцыяваць зыходзячыя злучэнні, але таксама прымаць уваходныя.

Трансляцыя лакальнай сеткі з дыяпазонам адрасоў 172.17.14.0/24 у глабальнае сеціва будзе ажыццяўляцца праз адзін вонкавы IP-адрас (адрас маршрутызатара, які выконвае трансляцыю).

  • Для забеспячэння доступу мноства вузлоў у вонкавую IP сетку праз адзіны IP-адрас
  • На рабочых станцыях указаны шлюз па змоўчванню ці gateway
  • пераўтварае службовыя загалоўкі, фармуе ідэнтычны IP-пакет
  • Публікацыя лакальных рэсурсаў у вонкавай IP-сетцы

• Эканамічная выгада ў выніку набыцця адзінага IP-далучэння, а не IP-сеткі.

• Схаванне ад вонкавага назіральніка структуры ўнутранай IP-сеткі.

• Арганізацыя сістэмы з размеркаванай нагрузкай.

• Пры агульным доступе праз NAT празрыста адчыняецца доступ да ўнутранай структуры з абаронай без ужывання міжсеткавага экрану і г.д.

Сэнс тэхналогіі NAT loopback (ці NAT hairpinning) просты: калі пакет прыходзіць з унутранай сеткі на вонкавы IP-адрас маршрутызатара, лічыцца што ён прыйшоў звонку — значыць, працуюць правілы брандмаўара, якія адносяцца да вонкавых злучэнняў. І калі пакет паспяхова пройдзе скрозь брандмаўар, спрацуе NAT, узяўшы на сябе пасрэдніцтва паміж дзвюма унутрысеткавымі машынамі. Гэта дае дзве ўласцівасці.

  1. Напрост знутры лакальнай сеткі можна праверыць, як наладжаны сеткавыя службы.
  2. Доступ да сервера, які знаходзіцца ў лакальнай сетцы, па даменнаму імі. Без NAT loopback патрэбна было б правіць файл hosts на кожнай машыне для кожнага задзейнічанага дамена і паддамена.

Недахопам NAT loopback можна лічыць падвышаную нагрузку на хаб і маршрутызатар (у параўнанні з прамым доступам да сервера).

NAT Traversal (праходжанне ці аўтаналадка NAT) — гэта набор магчымасцяў, якія дазваляюць сеткавым праграмам вызначаць, што яны знаходзяцца за прыладай, якая забяспечвае NAT, узнаваць вонкавы IP-адрас гэтай прылады і выконваць супастаўленне партоў для перасылкі пакетаў з вонкавага парта NAT на ўнутраны порт, скарыстаны праграмай; усё гэта выконваецца аўтаматычна, карыстальніку няма патрэбы ўручную наладжваць супастаўленні партоў ці ўносіць змены ў якія-небудзь іншыя параметры. Аднак існую меры засцярогі ў даверы да такіх праграм — яны атрымліваюць значны кантроль над прыладай, з'яўляюцца патэнцыйныя ўразлівасці.

Праграмная рэалізацыя NAT

[правіць | правіць зыходнік]

Пры наяўнасці ўжо існуючага сервера пад кіраваннем сервернай АС магчыма арганізаваць трансляцыю адрасоў без патрэбы закупкі дадатковых апаратных прылад. Як правіла, для праграмнай рэалізацыі NAT патрабуецца наяўнасць па меншай меры двух сеткавых адаптараў у серверы (магчымы варыянты з адным, але пры наяўнасці trunk-VLAN).

Усе існуючыя серверныя АС падтрымліваюць простую трансляцыю адрасоў.

З пункту гледжання адмоваўстойлівасці, гнуткасці і прадукцыйнасці, ужываюцца аперацыйныя сістэмы сямейства UNIX (большасць GNU/Linux, *BSD-сістэмы, а таксама OpenSolaris і інш.). У многіх з іх NAT даступны адразу, у іншых магчыма рэалізацыя за конт дадання модуляў у спалучэнні з міжсеткавымі экранамі з функцыямі трансляцыі адрасоў (IPFW, IPtables і інш.). Таксама, NAT працуе «са скрыні» ў сямействе аперацыйных сістэм Windows Server.

Зноскі

  1. Андрей Жуков. [http://aoz.com.ua/2009/01/26/nat-types/ Тыпы Network Address Translation (NAT)] Архівавана 8 мая 2020.