Network Address Translation
NAT буюу Network Address Translation, орчуулбал Сүлжээний хаягийн хөрвүүлэлт нь рүтерүүдээр дамжиж буй өгөгдлийн IP хаягийг хувиргаж буй үйлдлийг хэлдэг.
1990-ээд оны дунд үеэс NAT нь IPv4 хаягчлалын нөөц дуусах асуудлыг багасгахад хэрэглэсэн үндсэн хэрэгсэл болсон байдаг. NAT нь зарим нэг ноцтой асуудлыг Интернет холболт дээр бий болгодог бөгөөд өгөгдөл илгээж буй хэрэглэгчийн хаяг болон портын дугаарыг хувиргаад явуулдаг нь зарим төрлийн холболтонд саад учруулдаг. NAT- Network Address Translation бол маш олон хэрэглээтэй. Нэг хэрэглээ нь бол хувийн IP хаяг хэрэглэж буй сүлжээний IP хаягийг хадгалах. NAT нь routable –г хөрвүүлдэггүй. Харин routable дотор байгаа Private хаягийг Public хаяг руу хөрвүүлэх үүрэгтэй. IPv4 ашиглаж интернет сүлжээнд хандах хэрэглэгчдийн тоо өдрөөс өдөрт өсөж байна. Мөн хаяглалт хэрэглэдэг технологууд нэмэгдэж байгаа нь Network Address Translate (NAT) хэрэглэх нэг шалтгаан нөхцөл болсон. NAT нь нэг зорилготой ба энэ н сүлжээний нууцлал. Бид бүхэн Public болон private хаягийн талаар мэддэг. Public хаягийг интернетийн хүрээнд хэрэглэдэг. Харин Private хаягийг бол зөвхөн байгууллагын хүрээнд хэрэглэдэг. Өнөөдөр, энэ цагт дэлхий даяр хэдэн сая private хаяг хэрэглэж интернетд хандаж байна. Энэ private хаягаас public хаяг- руу хөрвүүлж байгаа нь NAT. NAT -г зөвхөн Private хаягийг public хаягруу хөрвүүлэхэд хэрэглэдэггүй. NAT нь Public to public, private to private хөрвүүлэхэд хэрэглэдэг. Хамгийн ерөнхий хэрэглээ нь Private to Public юм аа. Гадаад сүлжээнээс өөрийнхөө сүлжээг нууж байгаа нь аюулгүй байдлын нэг шалтгаан юм. Интернет буюу гадаад сүлжээнээс тухайн нэг note –д remote -р хандах хэрэг гарвал тухайн PC –ний дотоод хаягаар биш зөвхөн public хаягаар хандах хэрэгтэй. Ерөнхийдөө stub network хүрээн дэхь төхөөрөмж дээр NAT ажилладаг.
- Static NAT: Port эсвэл Address –г нэгээс нэгт хөрвүүлэхэд хэрэглэдэг төрөл.
- Dynamic NAT: Public address pool, ба нэг public илүү хаягтай ажиллахад хэрэглэдэг төрөл.
- PAT ( Port address Translation ) or NAT overload: дотоод node -үүдийн outbound траффик нь нэг public хаягийн зөвхөн port number хөрвүүлэх нөхцөлд хэрэглэнэ.
Dynamic Mapping ба Static Mapping.
[засварлах | кодоор засварлах]- NAT хөрвүүлэлт нь 2 янз байдаг. Dynamic ба Static.
Dynamic NAT нь IP address –ийн сан ба first-come, first-served basis олгох гэж хэрэглэнэ. NAT pool name нь ямар public хаягруу хөрвүүлэх вэ? ACL нь зөвхөн энэ хаяг хөрвүүлэгдэнэ. Source: хаанаас хашаа хөрвүүлэх вэ? гэдэг ээ холбож өгнө.Хувийн ip address –тэй host нь интернетэд хандах хүсэлт илгээхэд dynamic NAT нь бусад хостын хараахан хэрэглээгүй байгаа IP address-г сангаас сонгож өгнө. Хамгийн эхэнд санал болгосон болон хамгийн эхэнд ирсэнд даалгах ба public IP address pool хэрэглэх. Жишээ нь : Хувийн IP хаягтай host internet хандах хүсэлт илгээхэд. Dynamic NAT нь тухайн pool -ээс ip хаяг сонгох ба гэхдээ бусад host-д хараахан сонгож амжаагүй байгаа ip хаягийг өгнө.
Static NAT local ба global address –н mapping -д one to one гэж хэрэглэдэг. Static NAT ихэвчлэн интернетэд байрлалтай тогтмол хаягтай web server эсвэл host-д хэрэглэдэг. Тухайн хөрвүүлэх хаяг нь өөрчлөгдөхгүй public хаяг байна. NAT Overload NAT overloading (заримдаа үүнийг Port Address Translation буюу PAT гэдэг) private олон хаягийг ганц public хаягруу эсвэл цөөн хэдэн public хаягруу хөрвүүлэхийг хэлнэ. Static NAT нь outside address ба inside хооронд one-to-one mapping хийдэг. Static NAT нь гадаад төхөөрөмжөөс дотоод төхөөрөмжрүү эхлээд холбогдохыг эхлээд зөвшөөрдөг. Дотоод сүлжээнд байгаа серверийнн IP хаягийг шууд public хаягруу хөрвүүлж байна. Dynamic NAT –н тохиргоо хийх. Static NAT нь тусгай public ба internal IP address хооронд тогтомол mapping хийж байдаг. Dynamic NAT нь private хаягуудаас public хаягуудруу map хийдэг. Эдгээр public address –д нь NAT pool-с ирдэг. Dynamic нь static nat-аас өөр тохиргоотой боловч хоёулаа интерфейс тус бүр дээрээ inside or outside interface гэдэг ээ тохируулж өгнө.
Мөн зайлшгүй тайлбарлах ижил зүйл нь.
- Inside local : тухайн PC-ний private хаяг.
- Inside global: тухайн PC-ний авах Public хаяг.
- Outside local: гадна талд байгаа хостуудын public хаяг.
- Outside global: гадаад local нь адилхан хаягтай зайлшгүй outside address-г private хаягруу хөрвүүлэх шаардлагатай. / Same address as the outside local, necessary to translate an outside address to an private address. /
Зураг 1-ээс хаягийн өөр өөр байдлыг тодорхойлж харна уу.
NAT overload
[засварлах | кодоор засварлах]NAT overload ( заримдаа Port Address Translation буюу PAT гэж нэрлэдэг. ) олон private (хувийн ) ip address –г нэг public ip address эсвэл д цөөн хэдэн хувийн ip хаягруу замчилдаг. Үүнийг Home routers хийдэг ба танай ISP тухайн router дээр зөвхөн нэг л хаягаар хандаг.
NAT Overloading тэй multiple address-д нь нэг эсвэл цөөхөн ip хаягруу замчиллах шалтгаан нь private address бүр нь port number-р чиглүүллэгдэг. Client –н TCP/IP session нь open байхад NAT router нь source addressц-д port number оноож өгдөг. Internet дахь server –д холбогдосон Client тус бүрд NAT overload нь өөр өөр TCP port number хэрэглэж client-уудыг баталгаажуулдаг. Server –c буцаж хариу эрхэд source port нь ( return trip ) буцаж ирэх destination port address дээр ирдэг router-ээс замчиллагдасан pаckets нь аль client дээр ирхийг тодорхойлно.
NAT болон NAT overload-н хоорондын ялгаа нь
[засварлах | кодоор засварлах]NAT нь ерөнхийдөө зөвхөн IP address 1:1 байдлаар хөрвүүлдэг. Public ip address ба private ip address хооронд.
NAT overload нь бол private address ба port number 2-г өөрчилж илгээдэг. NAT Overload нь public сүлжээний хостоос харсан port number сонгох болно. NAT overload нь ерөнхийдөө зөвхөн нэг эсвэл маш цөөхөн public IP хаягруу хөрвүүлдэг.
NAT- ийн давуу болон сул тал.
NAT-н давуу тал дараах зүйлүүд болно.
- NAT нь public сүлжээнд холбогдох уян хатан чанрыг өсгөж өгдөг. Multiple pools, Backup pools, and load-balancing pools нь public сүлжээнд холбогдох найдвартай аюулгүй ажилгааг хэрэгжүүлдэг.
- Хувийн сүлжээний аюулгүй байдал.
- Дотоод сүлжээний хаягийн схэм дэхь цогцол
NAT –н сул тал нь
- Гүйцэтгэл нь муу
- End-to-End үйл ажиллагаа нь муу.
- End-to-End traceroute нь муу.
- Tunneling бол илүү асуудалтай будлиантай.
- Эхний TCP холболт нь байхгүй
Static NAT тохиргоо хийх
[засварлах | кодоор засварлах]Статик нат нь inside address ба outside address –аар хоорондоо one-to-one mapping хийдэг. Static NAT нь гадаад төхөөрөмжөөс дотоод төхөөрөмжрүү эхлэж холбогдохыг зөвшөөрдөг. Жишээбэл танай вэб сэрвэрд хандахын тулд чухал inside local address руу inside global address замчиллах ёстой.
Configuring Static NAT
Доорх зурганд 192.168.10.254 хаягтай сервер интернэт рүү гарахдаа үргэлж 209.165.200.254 гэсэн гадаад хаягаар хөрвүүлэгдэнэ. Дотоод сүлжээ inside тал интернэт тал нь outside тал болно.
Command | Тайлбар | |
1 | Inside local address болон inside global address хооронд static translation үүсгэнэ.
Router(config)#ip nat inside source static local-ip global ip |
Үндэсэн комманд |
2 | Чухал inside interface
Router (config)#interface type number |
Аль interface нь inside болох аль interface нь outside болох нь тодорхойлогдоно. |
PAT
[засварлах | кодоор засварлах]Inside болон outside interface-г тодорхойлно.
Router(config)#access-list 10 permit 192.168.10.0 0.0.0.255
Router(config)#ip nat inside source list 10 interface fa0/1 overload –интерфэйс дээр өгсөн хаягаар хөрвүүлэгдэнэ.
Dynamic NAT configure.
[засварлах | кодоор засварлах]Static NAT нь нэг дотоод хаягнаас нэг гадаад хаяг хооронд өөрчиллөгдөггүй mapping хийдэг бол Dynamic NAT нь дотоод IP хаягуудаас гадаад IP хаягуудруу замчилдаг. Эдгээр Public IP хаягууд нь
NAT pool-ээс ирдэг. Dynamic NAT configure нь Static NAT-аас өөр. Харин outside interface болон inside interface дээр configure нь адилхан. Хэдийгээр Static map to single ip address үүсгэдэг ч. Inside global сангаас ip хаяг хэрэглэдэг.
Configuring Dynamic NAT алхам:
NAT pool name Ямар public хаягруу хөрвүүлэх вэ?
ACL нь зөвхөн энэ хаяг хөрвүүлэгдэнэ Source: хаанаас хашаа хөрвүүлэх вэ?
Гэдэг ээ холбож өгнө NAT Overload There are two possible ways to configure overloading, depending on how the ISP allocates public IP addresses. In the first instance, the ISP allocates one public IP address to the organization, and in the other, it allocates more than one public IP address.
Комманд | Тайлбар | |
1 | Хичнээн global address –н сан хэрэгтэйг тодорхойлно.
Router(config)#ip nat pool name start-ip end ip netmask netmask | prefix-length prefix-length |
Хэрвээ delete хийхээр бол урд нь no ip nat pool ? |
2 | Эдгээр хаягуудыг хөрвүүлхын тулд standard access list –н permitting тодорхойлно.
Router(config)#access-list access-listnumber permit source source-wildcard |
|
3 | Dynamic source translation –г тодорхойлох, мөн өмнөх чухал accesslist-г тодорхойлно. Router(config)#ip NAT inside source list access-list-number pool name | |
4 | Inside болон outside interface-г тодорхойлно. |
Доор Зураг-3т үзүүлэв. Тохиргоог нь Зураг-4т харуулав. NAT-POOL нэртэй access-list зарлаж өгсөн ба хөрвүүлэгдэх хаягийн хэмжээ 209.165.200.226 -аас 209.165.200.240 хооронд хөрвүүлэлт хийгдэнэ.
Зөвшөөрсөн хаяг нь 192.168.0.0 дотоод сүлжээний хаяг. Оролтын эх үүсвэрийн хаяг нь дотоод сүлжээнээс зөвшөөрсөн хаяг. Интерфейс дээр орол гаралтыг зааж өгнө.
Configuring NAT Overload
[засварлах | кодоор засварлах]Single Public IP address дэхь NAT overload тохиргоо.
Overloading configure хийх 2 боломжтой арга байна. Эдгээр нь ISP байгаа public ip address-с хамаарна. Нэгт тухайн байгууллага нь ISP дээр нэг Public хаягтай. Эсвэл тухайн байгууллага ISP дээр 1-ээс илүү хаягтай үед. NAT overload хийх нь Dynamic NAT хийхтэй адилхан configure тэй.
Каммонд | тайлбар | |
1 | Address –уудаас аль нь translate хийхийг permit хийх stardard access-list бичнэ. Router(config)#access-list acl-number permit source [ source-wildcard] | Access list-g remove хийх бол global command горимоос no access-list access-list-number |
2 | Translate хийх |
Configuring Port Forwarding
[засварлах | кодоор засварлах]Port forwarding ( заримдаа tunneling тэй хамаатай гэж дууддаг.) бол сүлжээний нэг цэгээс өөр сүлжээний порт дамжуулдаг үйлдэл юм. Энэ арга нь гадаад хэрэглэгч NAT идэвхжсэн чиглүүлэгчийн дамжуулан гаднаас нь (а LAN дотор) хувийн IP хаяг дээр порт хүрэх боломжийг олгож болно.
Ерөнхийдөө. Peer-to-peer file-sharing programs ба key operations, web serving ба outgoing FTP, гэх мэт router –ийн port дээр эдгээр application-ээс open хийгдэсэн нь ажилдаг. Учир нь NAT нь дотоод сүлжээний хаягийг нуудаг. Зөвхөн peer-to-peer нөхцөлд ажилдаг.
Nat хөрвүүлэгдсэн эсэхийг Show command-аар харахад дараах байдлаар харагдана.
[засварлах | кодоор засварлах]Router# show ip nat translations-> Хөрвүүлэгдсэн ip хаягийг харах
Router#sh ip nat translations
Pro Inside global Inside local Outside local Outside gloabal
icmp 200.200.200.1:1 192.168.10.3:1 192.168.30.10:1 192.168.30.10:1
icmp 200.200.200.1:2 192.168.10.3:2 192.168.30.10:2 192.168.30.10:2
icmp 200.200.200.1:3 192.168.10.3:3 192.168.30.10:3 192.168.30.10:3
icmp 200.200.200.1:4 192.168.10.3:4 192.168.30.10:4 192.168.30.10:4
icmp 200.200.200.1:5 192.168.10.3:5 192.168.30.10:5 192.168.30.10:5
- Inside local : тухайн PC-ний private хаяг.
- Inside global: тухайн PC-ний авах Public хаяг.
- Outside local: гадна талд байгаа хостуудын public хаяг.
- Outside global: гадаад local нь адилхан хаягтай зайлшгүй outside address-г private хаягруу хөрвүүлэх шаардлагатай.
- Icmp: ашиглагдаж буй протокол
Router# show ip nat statistics-> Статикаар хөрвүүлэгдэж байгаа ip хаягийг харах
Router# sh ip nat statictics
Total translations: 1 (1 static, 0 dynamic, 0 extended )
Outside Interfaces:FactEthernet0/1 /Гаралтын интерфейс/
Inside Interfaces: FastEthernet0/0 /Оролтын интерфейс/
Hits: 0 Misses: 2
Expired translations: 0
Dynamic mappings:
--Inside Source /Оролтын эх үүсвэрийн хаяг /
accees-list 10 pool Nat resfCount 0 /статик нат бичихдээ access-list 10 -ийг Nat гэсэн нэртэйгээр зарлаж өгсөн байна./
pool NAT:netmask 255.255.255.0
start 200.200.200.1 end 200.200.200.200
Router# debug ip nat-> Хөрвүүлэгдэж байгаа хаягуудыг харах
NAT*: s=192.168.30.10, d=100.100.100.100->192.168.10.10 [11]
NAT*: s=192.168.10.0, d=100.100.100.100->192.168.10.10 [12]
NAT*: s=192.168.30.10, d=100.100.100.100->192.168.10.10 [5]
NAT*: s=192.168.10.10, d=100.100.100.100->192.168.10.10 [8]
NAT*: s=192.168.30.10, d=100.100.100.100->192.168.10.10 [11]
Nat програм хангамжийн жишээ
[засварлах | кодоор засварлах]- Internet Connection Sharing (ICS): NAT & DHCP implementation included with Windows desktop operating systems
- IPFilter: included with (Open)Solaris, FreeBSD and NetBSD, available for many other Unix-like operating systems
- ipfirewall (ipfw): FreeBSD-native packet filter
- Netfilter with iptables/nftables: the Linux packet filter
- NPF: NetBSD-native Packet Filter
- PF: OpenBSD-native Packet Filter
- Routing and Remote Access Service: routing implementation included with Windows Server operating systems
- WinGate: third-party routing implementation for Windows
Гадаад холбоос
[засварлах | кодоор засварлах]https://en.wikipedia.org/wiki/Network_address_translation /англи хэл дээр Nat -ийн ойлголт/
https://web.archive.org/web/20160330025335/http://cisco.edu.mn/ /cisco-ийн хичээлүүд/
http://www.slideshare.net/ochiroodorj/nat-31246241 /Nat-ийн тухай ойлголт/