თეორია:NAT

WiKi MikroTik geo გვერდიდან
Jump to navigation Jump to search

NAT (Network Address Translation — «ქსელის მისამართების გარდაქმნა») — ეს არის მექანიზმი კომპიუტერულ ქსელებში TCP/IP, რომრლიც საშუალებას იძლევა გარდაქმნას IP-მისამართი სატრანზიტო პაკეტებად. ასევე აქვს სახელები IP Masquerading, Network Masquerading და Native Address Translation.

ფუნქციონირება

მისამართის გარდაქმნა NAT- ის გამოყენებით შეიძლება განხორციელდეს თითქმის ნებისმიერი მარშრუტიზაციის საშუალებით — მარშრუტიზატორი, წვდომის სერვერი, firewall. ყველაზე პოპულარულია SNAT, რომლის მექანიზმის არსია შეცვალოს წყაროს მისამართი (source) პაკეტის ერთი მიმართულებით გატარებისას და საპასუხო პაკეტში დანიშნულების მისამართის შეცვლა (destination). წყაროს მისამართთან ერთად/დანიშნულებას ასევე შეუძლია შეცვალოს წყაროს პორტის ნომერი და დანიშნულება.

ლოკალური კომპიუტერიდან პაკეტის მიღებისას, როუტერი ათვალიერებს დანიშნულების IP მისამართს. თუ ეს ლოკალური მისამართია, მაშინ პაკეტი გადაეგზავნება სხვა ლოკალურ კომპიუტერს. თუ არა, მაშინ პაკეტი უნდა გაიგზავნოს გარეთ ინტერნეტში. მაგრამ დაბრუნების მისამართად პაკეტში მითითებულია კომპიუტერის ლოკალური მისამართი, რომელიც ინტერნეტიდან ვერ იქნება ხელმისაწვდომი. ამრიგად, როუტერი გარდაქმნის (ცვლის) პაკეტის დაბრუნების IP-მისამართს მის გარე (რომელიც ჩანს ინტერნეტიდან) IP-მისამართზე და ცვლის პორტის ნომერს (სხვადასხვა ლოკალური კომპიუტერებისთვის მიმართული საპასუხო პაკეტების გასასხვავებლად). კომბინაცია, საჭირო დაბრუნების ჩანაცვლებისთვის, როუტერი ინახავს თავის დროებით ცხრილში. რამდენიმე ხნის შემდეგ, როგორც კლიენტი და სერვერი დაასრულებენ პაკეტების გაცვლას, როუტერი წაშლის ჩანაწერებს ცხრილში.

გარდა source NAT (ლოკალური ქსელის მომხმარებლებს შიდა მისამართებით ინტერნეტთან წვდომის უზრუნველყოფა) ასევე ხშირად გამოიყენება destination NAT, როდესაც მიმართვის გარდაქმნა ხდება firewall-ით მომხმარებლის კომპიუტერზე ლოკალურ ქსელში, აქვს შიდა მისამართი და, შესაბამისად, მიუწვდომელია უშუალოდ ქსელის გარედან (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 ტიპები

სიმეტრიული NAT (Symmetric NAT) — გარდაქმნა, რომელშიც თითოეული კავშირი, ინიცირებული წყვილი «შიდა მისამართი: შიდა პორტი» გარდაიქმნება თავისუფალ ინდივიდუალურად, შემთხვევით შერჩეული წყვილში «გარე მისამართი: გარე პორტი». ამასთან, გარე ქსელიდან კავშირის წამოწყება შეუძლებელია.

Cone NAT, Full Cone NAT — ერთმნიშვნელოვანი (ურთიერთგამომრიცხავი) გარდაქმნა წყვილებ შორის «შიდა მისამართი: შიდა პორტი» და «გარე მისამართი: გარე პორტი». ნებისმიერ გარე ჰოსტს შეუძლია კავშირის ინიცირება შიდა ჰოსტთან (თუ ეს ნებადართულია firewall- ის წესებში).

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-ის მასობრივ დანერგვამდე, ვერ იმუშავებს, თუ ურთიერთმოქმედ ჰოსტებს შორის არის მისამართების გარდაქმნა. ზოგიერთი firewall-ი, ასრულებენ IP-მისამართების გარდაქმნას, შეუძლიათ ამ ხარვეზის გამოსწორება, IP მისამართების სათანადოდ შეცვლა არა მხოლოდ IP სათაურებში, არამედ უფრო მაღალ დონეზე (მაგალითად, FTP პროტოკოლის ბრძანებებში).
  2. მომხმარებლის იდენტიფიკაცია. მისამართების გარდაქმნის გამო «ბევრი ერთში» წარმოიქმნება დამატებითი სირთულეები მომხმარებლის იდენტიფიკაციასთან და გარდაქმნის სრული ლოგების შენახვის აუცილებლობა.
  3. DoS-შეტევების ილუზია. თუ NAT გამოიყენება მრავალი მომხმარებლის დაკავშირებისათვის ერთ და იმავე სერვისზე, эამან შეიძლება გამოიწვიოს DoS- ს თავდასხმის ილუზია (მრავალი წარმატებული და წარუმატებელი მცდელობა). მაგალითად, ICQ-ს მომხმარებლების გადაჭარბებული რაოდენობა NAT-ს უკან იწვევს პრობლემას ზოგიერთი მომხმარებლების სერვერთან დაკავშირებისას დასაშვები კავშირის სიჩქარის გადამეტების გამო. Чპრობლემის ნაწილობრივი გადაწყვეტა არის მისამარტების პული (მისამართების ჯგუფი) გამოყენება, რომლისათვისაც ხორციელდება გარდაქმნა.
  4. პირინგული ქსელი. NAT მოწყობილობებში, რომლებიც არ არის მხარდაჭერილი Universal Plug & Play ტექნოლოგიით, ზოგიერთ შემთხვევაში, საჭიროა დამატებითი კონფიგურაცია, პირინგულ ქსელებთან მუშაობისას და სხვა ზოგიერთ პროგრამებთან, რომელშიც აუცილებელია არა მხოლოდ გამავალი კავშირების ინიცირება, ასევე მიიღოთ შემომავალი.

მაგალითი

ლოკალური ქსელის გარდაქმნა მისამართების დიაპაზონით 172.17.14.0/24 გლობალურ ქსელში მოხდება ერთი გარე IP მისამართის საშუალებით (მარშრუტიზატორის მისამართი, რომელიც ასრულებს გარდაქმნას).

IP ქსელი ერთი IP მისამართის საშუალებით

• კონომიკური სარგებელი ერთადერთი IP კავშირის შეძენით, და არა IP ქსელები.

• შიდა IP ქსელის სტრუქტურის დამალვა გარე დამკვირვებლის მხრიდან.

• განაწილებული დატვირთვის სისტემის ორგანიზაცია.

• საერთო წვდომა NAT-ის საშუალებით გამჭვირვალედ ხსნის წვდომას შიდა სტრუქტურასთან უსაფრთხოებით firewall-ის გამოყენების გარეშე და ა.შ.

• NAT- ის საშუალებით ბევრი ქსელის პროტოკოლი მუშაობს სწორად. კონსტრუქციული განხორციელება (ზოგადი დაშვება — ეს არის NAT კავშირი) არის NAT-ის აპარატურული რეალიზაცია (ინტეგრირებული firewall-ით).

NAT loopback

NAT loopback ტექნოლოგიის მნიშვნელობა (ან NAT hairpinning) მარტივია: თუ პაკეტი მოდის შიდა ქსელიდან მარშრუტიზატორის გარე IP მისამართზე, ითვლება, რომ იგი მოდის გარედან - ეს ნიშნავს, რომ მუშაობს firewall- ის წესები, რომლებიც ვრცელდება გარე კავშირებზე. და თუ პაკეტი წარმატებით გაივლის firewall- ს, მოქმედებაში მოდის NAT, ორ შიდა მანქანებს შორის შუამავლის როლს იღებს საკუთარ თავზე. ეს ორი რამეს იძლევა.

  1. პირდაპირ ლოკალური ქსელის შიგნიდან შეგიძლიათ შეამოწმოთ, როგორ არის კონფიგურირებული ქსელის მომსახურება.
  2. დომენის სახელის საშუალებით ლოკალურ ქსელში მდებარე სერვერზე წვდომა. NAT loopback-ის გარეშე მოგიწევდათ hosts ფაილის მართვა თითოეულ მანქანაზე თითოეული ჩართული დომენისა და ქვესაფენისთვის.

NAT loopback-ის უარყოფით მხარედ შეიძლება ჩაითვალოს მარსრუტიზატორზე და ჰაბზე გაზრდილი დატვირთვა (სერვერზე პირდაპირ წვდომასთან შედარებით).

NAT Traversal

NAT Traversal (გატარება ან NAT ავტოკონფიგურაცია) — ეს არის ფუნქციების მთელი რიგი, რომელიც საშუალებას აძლევს ქსელის აპლიკაციებს განსაზღვრონ, რომ ისინი იმყოფებიან მოწყობილობის უკან, რომელიც უზრუნველყოფილია NAT-ით, შეიტყოს ამ მოწყობილობის გარე IP მისამართი და შეასრულოს პორტების შედგენა პაკეტების გადაგზავნისათვის NAT-ის გარე პორტიდან შიდა პორტზე, აპლოკაციის მიერ გამოყენებული; ეს ყველაფერი ხორციელდება ავტომატურად, მომხმარებელს არ სჭირდება პორტის შედგენის ხელით კონფიგურაცია ან შეიტანოს ცვლილებები სხვა რომელიმე პარამეტრში. ამასთან, არსებობს სიფრთხილის ზომები ასეთი პროგრამებისადმი ნდობა — ისინი ირებენ ფართო კონტროლს მოწყობილობაზე, ვლინდება პოტენციური დაუცველობა.

NAT პროგრამული რეალიზაცია

თუ თქვენ უკვე გაქვთ სერვერი, მართული სერვერული ოპერაციული სისტემით, შესაძლებელია მისამართების გარდაქმნის ორგანიზება, დამატებითი აპარატების შეძენის საჭიროების გარეშე. როგორც წესი, NAT-ის პროგრამული რეალიზაციისათვის საჭიროა სერვერზე მინიმუმ ორი ქსელური გადამყვანი (არსებობს ვარიანტი ერთოთაც, მაგრამ თუ არის trunk-VLAN-ის ხელმისაწვდომობა).

სერვერის ყველა არსებული და გამოყენებული ოპერაციული სისტემა ხელს უწყობს მისამართების უმარტივეს გარდაქმნას.

შეცდომების თვალსაზრისით, მოქნილობასა და წარმადობაში, გამოიყენება UNIX ოჯახის ოპერაციული სისტემები (უმეტესობა GNU/Linux, *BSD-სისტემები, ასევე OpenSolaris და ა.შ.). მრავალ მათგანში, NAT ხელმისაწვდომია «ყუთიდან», სხვებში, განხორციელება შესაძლებელია მოდულების დამატებით firewall- ებთან კომბინაციაში მისამართების გარდაქმნის ფუნქციებთან (IPFW, IPtables და ა.შ.). NAT ასევე მუშაობს Windows Server ოპერაციული სისტემების ოჯახში.