May 22, 2017

NAT (Network Address Translation)


Unicode
NAT ဆိုတာကဘာလည်း။ NAT ဆိုတာကတော့ ကျွန်တော်တို့ သုံးပြုနေတဲ့ IP မှာ Public နဲ့ Private ဆိုပြီးတော့ address နှစ်မျိုးခွဲး ထားတာတာဆိုတော့ Public address တွေအများကြီး မချပေးနိုင်ဘူးပေါ့ဗျာ။ အဲ့ဒီအတွက် LAN မှာ private address တွေကို အသုံးပြုပြီးတော့ internet ကို ထွက်တဲ့အခါမျိုးမှာဆိုရင်တော့ private မှာ သုံးတဲ့ address ကို internet ကို ထွက်ရမှာဖြစ်တဲ့ အတွက်ကြောင့် public address ပြောင်းလည်းဖို့လိုအပ်မှာ သေခြာပါတယ်။ အဲ့လိုနေရာမှာ address တွေကို translation လုပ်တဲ့ function ကို NAT လို့ခေါ်တာဖြစ်တယ်။ NAT က သူ့စီရောက်လာတဲ့ private address ကို သူ့မှာရှိတဲ့ public address နဲ့ လည်းပြီး အဲ့ public address နဲ့ internet ကို ထွက်သွားတယ်။ Internet က ပြန်ပြီးတော့၀င်လာတဲ့ public address ကို private address ပြန်လည်းပြီး client စီကို ပြန်လည်းပေးပိုပါတယ်။ Cisco မှာ NAT အသုံးပြုဖို့ဆိုရင် အောက်က အဆင့်သုံးဆင့်ကို ပြုလုပ်ရမယ်။
1)        Access-list ကို အသုံးပြုရပါသည်။ Private address တွေကို access list နဲ့ စရင်ပြုဆိုရတယ်။ အဲ့ဒါမှာ ဒီ address တွေဆိုရင်တော့ translation လုပ်မယ်ဆိုပြီးတော့ router သိမှာဖြစ်တယ်။
2)        NAT ရေး NAT ကို ရေးပုံမှာ အမျိုးစား သုံးမျိုးရှိတယ်။
A.   Static NAT (One to One) or (Port Forwarding)
B. Dynamic NAT (Dynamic NAT မှာ Many to Many နဲ့ Many to Many Overload ဆိုပြီးတော့ရှိတယ်။)
C.   NAT Overloading (PAT – Port address Translation ဆိုပြီးတော့လည်း သိကြတယ်။) or (One to Many လို့လည်းခေါ် တယ်။)
3)        Interface မှာ à inside, ouside ကြေညာ။



NAT အသုံးနှုန်းမျာ:

NAT မှာ Local Address နဲ့ Global Address ဆိုပြီးတော့ရှိတယ်။
Local address ဆိုတာကတော့ translate မလုပ်ခင် router ထဲကို ၀င်လာတဲ့ address တစ်နည်းအားဖြစ် private address တွေဖြစ် တယ်။
Global Address ဆိုတာကတော့ translate လုပ်လိုက်တဲ့ address တစ်နည်းအားဖြစ် public address ဖြစ်တယ်။
Local နဲ့ Global address တွေကို ပြန်ပြီးခွဲးထုတ်လိုက်ရင် ၄မျိုးရှိတယ်။

1- Inside Local               Translate မလုပ်ရသေးတဲ့ source address

2- Ousitde Local             Translate မလုပ်ရသေးတဲ့ destination address

3- Inside Global            Translate လုပ်ပြီးသွားတဲ့ source address

4- Outside Global         Translate လုပ်ပြီးသွားတဲ့ destination address


Static Nat

ဆိုတာကတော့ private address တစ်ခုကို public address တစ်ခုနဲ့ အသေချိတ်ဆက်ထားတာဖြစ်တယ်။ ဒီ address ဆိုရင် public address ဒါကိုပြောင်းဆိုပြီးတော့ သတ်မှတ်ထားတာဖြစ်တယ်။ အဲ့တော့ public address တစ်ခုထက်ပိုလိုအပ်တယ် ဆိုရင် static nat ကအဆင်မပြေဘူးပေါ့ဗျာ။ ဥပမာ - 192.168.1.1/24 private address လာရင်တော့ 35.20.43.20 ဆိုတဲ့ public address ကို ပြောင်းဆိုပြီးတေ့ာဖြစ်တယ်။ အဲ့တော့ 192.168.1.2/24 က public address ကို အသုံးပြုဖိုလိုအပ်လာရင်တော့ အသုံးပြုလို့ရ တော့မှာမဟုတ်ပါဘူး။ အဲ့တော့ client များရင်များသလို public address လိုအပ်မှာဖြစ်တယ်။ အဲ့တော့ အဆင်ပြေဘူးပေါ့ဗျာ။ Public address ကို မရှိလို့ nat သုံးပါတယ်ဆိုမှ အခုတော့ public address တွေ အများကြီး လိုအပ်နေပြီ အဲ့တော့ static nat ကအဆင် မပြေလှဘူပေါ့ဗျာ။ အမှန်တကယ်တန်းမှာတော့ static nat ကို internet ကနေပြီးတော့ ကိုယ့်ရဲ့ local network ထဲမှာရှိ တဲ့ service တစ်ခုခုကို access လုပ်ခြင်တဲ့အခါမျိုးမှာ အသုံးပြုကြတယ်။ ဥပမာ - ကျွန်တော်စီမှာ public ip တစ်ခုရှိတယ်ဆိုပါတော့ ကျွန်တော် local network ထဲမှာ web server တစ်ခု လုပ်မယ်ဗျာ။ web server အတွက် public ip ကလိုကော။ ကျွန်တော်မှာရှိတာ က public ip ကတစ်ခုထဲ router မှ အဲ့ public ip ကို ထည့်မှ internet ထွက်ရင် nat က translation လုပ်ပြီး internet ကို ထွက်သွားမှာဆိုတော့ router ရဲ့ internet out interface ကို public address ပေးရကော။ အဲ့လိုပေးလိုက်ရင် web server ကို ပေးဖို့ ip မရှိတော့ဘူး။ အဲ့လိုနေရာမျိုးမှာ static nat ကို အသုံးပြုပြီးတော့ ဖြေရှင်းလို့ရတယ်။ ဘယ်လို ဖြေရှင်းမလည်း။ router မှာ ပေးထားတဲ့ public address ကိုသုံးပြီး ကိုယ် network ထဲမှာရှိတဲ့ web server ရဲ့ port 80 or 443 နဲ့ တွဲးပြီးတော့ Mapping လုပ်ထားလိုက်ရင် internet ကနေပြီးတော့ ကိုယ် router ရဲ့ public address ကို http (port 80 or 443) လာမေးတဲ့အခါ ကိုယ် local network မှာရှိတဲ့ private ip address နဲ့ port 88 or 443 နဲ့ ပြောင်းပြီးတော့ router ကနေထွက်လာမှာဖြစ်တယ်။
(config)#ip nat inside source static tcp 192.168.1.1 80 203.81.1.1 80 extendable


အောက်တွင် static nat နှင့် PAT ကို တွဲးပြီး configuration လုပ်ပြထားပါသည်။

Dynamic NAT

ဟုတ်ပြီ static nat က one to one ပဲရတော့ အဆင်မပြေဘူး။ Client အများကြီးကနေပြီးတော့ public ကိုသွားဖို့ဆိုရင်တော့ public address တွေအများကြီးလိုအပ်မှာပဲ။ အဲ့လိုနေရာမှာ public address တစ်ခု (သို့မဟုတ်) တစ်ခုထက်ပိုတဲ့ address တွေကို ပြောင်းလည်းပြီးသွားစေခြင်ရင်တော့ Dynamic NAT ကို အသုံးပြုရပါတယ်။
Many to Many à Public address ၄ခု ရှိတယ်ဆိုပါတော့။ အဲ့ ၄ခုနဲ့ translation လုပ်ပြီးတော့ internet ကို ထွက်မှာဖြစ်တယ်။ Public address ၄ခု translate လုပ်ပြီးလို့ internet ကို ထွက်မဲ့ private address ၅ခုမြောက်ရောက်လာရင်တော့ translate လုပ်စရာ public address မရှိတာကြောင့် ၅ခုမြောက် private address ဖြတ်ချပြစ်လိုက်မှာြဖစ်တယ်။ Translate လုပ်နိုင်တဲ့ public address ၄ ခုထဲက တစ်ခုခု အားတဲ့အထိစောင့်ပြီးတော့မှပဲ နောက်ထပ်ပြန်ပြီ translate လုပ်မှာဖြစ်တယ်။
Many to Many Overload à Public address ၄ခုရှိတယ်ဆိုရင် internet ကို အဲ့ ၄ခုနဲ့ ကုန်သွားပြီး ၅ခုမြောက်ရောက်လာရင် ထွက်စရာမရှိတော့ဘူး ဒါဆိုရင် router က ဖြတ်ချလိုက်မှာဖြစ်တယ်။ အဲ့လိုနေရာမျိုးဆိုရင် overload ဆိုတာကို သုံးလိုက်ရင် ၅ခု မြောက်ရောက်လာရင် သူ့ဘာသာ ပြောင်းလည်းပြီးထွက်သွားမှာဖြစ်တယ်။
Dynamic NAT ကို အသုံးပြုခြင်းဟာ public address ၁ခုထက်ပိုပြီးတော့ရှိသဖြင့် ထို public address ၁ခုထက်ပိုတဲ့ဟာတွေကို Pool ဆောက်ပေးရပါတယ်။

ip route 0.0.0.0 0.0.0.0 10.10.10.2
access-list 10 permit 192.168.1.0 0.0.0.255
ip nat pool NAME 10.10.10.3 10.10.10.10 netmask 255.255.255.0
ip nat inside source list 10 pool NAME overload
interface FastEthernet0/1
ip address 192.168.1.1 255.255.255.0
ip nat inside
interface FastEthernet0/0
ip address 10.10.10.1 255.255.255.0
ip nat outside


NAT Overloading (PAT)

NAT Overloading ကို အများအားဖြစ် PAT – Port address Translation လို့သိကြပါတယ်။ PAT မှာကတော့ Public address တစ်ခုထဲရှိနေရုံနဲထင် အလုပ်ဖြစ်တာမို့ အသုံးများတဲ့ nat တစ်ခုဖြစ်တယ်။ သူကတော့ ဘယ်လိုအလုပ်လုပ်ဆိုရင်တော့ private address တွေသူစီကို၀င်လာရင် အရင် nat တွေမှာလို့ inside address and ouside address တွေကို မှတ်တဲ့အပြင် host တစ်ခုခြင်စီကပို့လာတဲ့ port နံပါတ်တွေကိုပါတွဲးပြီးမှတ်ပါတယ်။ Private address တစ်ခု သူ့စီ၀င်လာရင် ဘယ်protocol ကလာပို့တဲ့ port ဆိုတာကိုကြည့်ပြီး private address နဲ့ port နံပါတ်နဲ့ တွဲးမှတ်လိုက်တယ်၊ Public ကို translate လုပ်တဲ့အခါမှလည်း public address အနောက်မှာ port နံပါတ်တစ်ခုကို တပ်ပေးလိုက်တယ်။ အဲ့တော့ return ပြန်တဲ့အခါမှာလည်း public address ကပြန်၀င်လာတဲ့အခါမှာ port နံပါတ်နဲ့ addressကို ကြည့်လိုက်တယ်။ သူ့ nat table ထဲမှာ ရှာပြီးတေ့ာ သတ်ဆိုင်ရာ host စီကိုပြန်ပို့လိုက်တယ်။
 
-  အထက်ကပုံမှာဆိုရင် 10.10.10.1 private address က web server ကို သွားခြင်တာမို့ port 80 နဲ့ router စီကိုရောက်လာတယ်။
-  NAT က port နဲ့ private address ကို တွဲးပြီးတော့ မှတ်ထားလိုက်တယ်။ 10.10.10.1:80 à
-  Public address ကို port တစ်ခုခုနဲ့ တွဲးပြီးတော့ translate လုပ်လိုက်တယ်။ 63.63.63.1:8000 à
-  အဲ့လိုနဲ့ web server ကနေ return ပြန်လာတယ်။ 63.63.63.1:8000 နဲ့ ß
-  Nat က table ထဲမှာရှာလိုက်တော့ 63.63.63.1:8000 ဟာ 10.10.10.1:80 နဲ့ဆိုတာကို တွေ့သွားလို့ 10.10.10.1:80 နဲ့ translate လုပ်လိုက်တယ်။ 10.10.10.1:80
Port ကို အဓိက အသုံးပြုတာမို့ address တစ်ခုထဲကနေပြီ port ပေါင်း 64500 လောက်ကို translate လုပ်နိုင်တာမို့ တစ်ပြိုင်ထဲ့ host ပေါင်း 64500 လောက်ထိကို အသုံးပြုနိုင်ပါတယ်။ ပြောရရင်တော့ public address တစ်ခုထဲနဲ့ကို တစ်ပြိုင်ထဲ address 64500 လောက်ထိ အသုံးပြုနိုင်တာပေါ့ဗျာ။ Port ဟာဆိုရင် OSI 7 Layer ရဲ့ Layer 4 Transport Layer မှာ အလုပ်လုပ်တာဖြစ်တယ်။ Port တွေမှာ 0 to 65535 အထိရှိကြပါတယ်။ အဲ့ထဲကမှ 0 to 1023 ထိဟာ  Well Know Port Number (ပုံသေသတ်မှတ်ပြီးသား port များဖြစ်ပြီး သတ်ဆိုင်ရာ application များအတွက်ဖြစ်တယ်) များဖြစ်ကြပါတယ်။ 1024 to 65535 ထိကိုတော့ စိတ်ကြိုက်အသုံး ပြုနိုင်ပါတယ်
Example

R1 Configuration
Inter-vlan Routing
interface FastEthernet0/0
no shutdown
interface FastEthernet0/0.1
 encapsulation dot1Q 10
 ip address 192.168.1.1 255.255.255.0
interface FastEthernet0/0.2
 encapsulation dot1Q 20
 ip address 192.168.2.1 255.255.255.0
interface FastEthernet0/0.3
 encapsulation dot1Q 30
 ip address 192.168.3.1 255.255.255.0

Default Route
ip route 0.0.0.0 0.0.0.0 45.30.30.1

Access-list for PAT
access-list 10 permit 192.168.1.0 0.0.0.255
access-list 10 permit 192.168.2.0 0.0.0.255

NAT (PAT)
ip nat inside source list 10 interface GigabitEthernet1/0 overload
External web server to internal for Static Nat
ip nat inside source static tcp 192.168.3.10 80 45.30.30.2 80 extendable
ip nat inside source static 192.168.3.10 45.30.30.2 extendable

Interface inside and outside
interface GigabitEthernet1/0
ip nat outside
interface FastEthernet0/0.1
 ip nat inside
interface FastEthernet0/0.2
ip nat inside
interface FastEthernet0/0.3
ip nat inside

show ip nat translations


 Zawgyi
NAT ဆိုတာကဘာလည္း။ NAT ဆိုတာကေတာ့ ကၽြန္ေတာ္တို႔ သုံးျပဳေနတဲ့ IP မွာ Public နဲ႔ Private ဆိုၿပီးေတာ့ address ႏွစ္မ်ိဳးခြဲး ထားတာတာဆိုေတာ့ Public address ေတြအမ်ားႀကီး မခ်ေပးနိုင္ဘူးေပါ့ဗ်ာ။ အဲ့ဒီအတြက္ LAN မွာ private address ေတြကို အသုံးျပဳၿပီးေတာ့ internet ကို ထြက္တဲ့အခါမ်ိဳးမွာဆိုရင္ေတာ့ private မွာ သုံးတဲ့ address ကို internet ကို ထြက္ရမွာျဖစ္တဲ့ အတြက္ေၾကာင့္ public address ေျပာင္းလည္းဖို႔လိုအပ္မွာ ေသျခာပါတယ္။ အဲ့လိုေနရာမွာ address ေတြကို translation လုပ္တဲ့ function ကို NAT လို႔ေခၚတာျဖစ္တယ္။ NAT က သူ႔စီေရာက္လာတဲ့ private address ကို သူ႔မွာရွိတဲ့ public address နဲ႔ လည္းၿပီး အဲ့ public address နဲ႔ internet ကို ထြက္သြားတယ္။ Internet က ျပန္ၿပီးေတာ့၀င္လာတဲ့ public address ကို private address ျပန္လည္းၿပီး client စီကို ျပန္လည္းေပးပိုပါတယ္။ Cisco မွာ NAT အသုံးျပဳဖို႔ဆိုရင္ ေအာက္က အဆင့္သုံးဆင့္ကို ျပဳလုပ္ရမယ္။
1)    Access-list ကို အသုံးျပဳရပါသည္။ Private address ေတြကို access list နဲ႔ စရင္ျပဳဆိုရတယ္။ အဲ့ဒါမွာ ဒီ address ေတြဆိုရင္ေတာ့ translation လုပ္မယ္ဆိုၿပီးေတာ့ router သိမွာျဖစ္တယ္။
2)    NAT ေရး။ NAT ကို ေရးပုံမွာ အမ်ိဳးစား သုံးမ်ိဳးရွိတယ္။
A.     Static NAT (One to One) or (Port Forwarding)
B.     Dynamic NAT (Dynamic NAT မွာ Many to Many နဲ႔ Many to Many Overload ဆိုၿပီးေတာ့ရွိတယ္။)
C.     NAT Overloading (PAT – Port address Translation ဆိုၿပီးေတာ့လည္း သိၾကတယ္။) or (One to Many လို႔လည္းေခၚ တယ္။)
3)    Interface မွာ  inside, ouside ေၾကညာ။

NAT အသုံးႏွုန္းမ်ာ:
NAT မွာ Local Address နဲ႔ Global Address ဆိုၿပီးေတာ့ရွိတယ္။
Local address ဆိုတာကေတာ့ translate မလုပ္ခင္ router ထဲကို ၀င္လာတဲ့ address တစ္နည္းအားျဖစ္ private address ေတြျဖစ္ တယ္။
Global Address ဆိုတာကေတာ့ translate လုပ္လိုက္တဲ့ address တစ္နည္းအားျဖစ္ public address ျဖစ္တယ္။
Local နဲ႔ Global address ေတြကို ျပန္ၿပီးခြဲးထုတ္လိုက္ရင္ ၄မ်ိဳးရွိတယ္။
1-    Inside Local    Translate မလုပ္ရေသးတဲ့ source address
2-    Ouside Local    Translate မလုပ္ရေသးတဲ့ destination address
3-    Inside Global    Translate လုပ္ၿပီးသြားတဲ့ source address
4-    Outside Global    Translate လုပ္ၿပီးသြားတဲ့ destination address



Static Nat
ဆိုတာကေတာ့ private address တစ္ခုကို public address တစ္ခုနဲ႔ အေသခ်ိတ္ဆက္ထားတာျဖစ္တယ္။ ဒီ address ဆိုရင္ public address ဒါကိုေျပာင္းဆိုၿပီးေတာ့ သတ္မွတ္ထားတာျဖစ္တယ္။ အဲ့ေတာ့ public address တစ္ခုထက္ပိုလိုအပ္တယ္ ဆိုရင္ static nat ကအဆင္မေျပဘူးေပါ့ဗ်ာ။ ဥပမာ - 192.168.1.1/24 private address လာရင္ေတာ့ 35.20.43.20 ဆိုတဲ့ public address ကို ေျပာင္းဆိုၿပီးေတ့ာျဖစ္တယ္။ အဲ့ေတာ့ 192.168.1.2/24 က public address ကို အသုံးျပဳဖိုလိုအပ္လာရင္ေတာ့ အသုံးျပဳလို႔ရ ေတာ့မွာမဟုတ္ပါဘူး။ အဲ့ေတာ့ client မ်ားရင္မ်ားသလို public address လိုအပ္မွာျဖစ္တယ္။ အဲ့ေတာ့ အဆင္ေျပဘူးေပါ့ဗ်ာ။ Public address ကို မရွိလို႔ nat သုံးပါတယ္ဆိုမွ အခုေတာ့ public address ေတြ အမ်ားႀကီး လိုအပ္ေနၿပီ အဲ့ေတာ့ static nat ကအဆင္ မေျပလွဘူေပါ့ဗ်ာ။ အမွန္တကယ္တန္းမွာေတာ့ static nat ကို internet ကေနၿပီးေတာ့ ကိုယ့္ရဲ့ local network ထဲမွာရွိ တဲ့ service တစ္ခုခုကို access လုပ္ျခင္တဲ့အခါမ်ိဳးမွာ အသုံးျပဳၾကတယ္။ ဥပမာ - ကၽြန္ေတာ္စီမွာ public ip တစ္ခုရွိတယ္ဆိုပါေတာ့ ကၽြန္ေတာ္ local network ထဲမွာ web server တစ္ခု လုပ္မယ္ဗ်ာ။ web server အတြက္ public ip ကလိုေကာ။ ကၽြန္ေတာ္မွာရွိတာ က public ip ကတစ္ခုထဲ router မွ အဲ့ public ip ကို ထည့္မွ internet ထြက္ရင္ nat က translation လုပ္ၿပီး internet ကို ထြက္သြားမွာဆိုေတာ့ router ရဲ့ internet out interface ကို public address ေပးရေကာ။ အဲ့လိုေပးလိုက္ရင္ web server ကို ေပးဖို႔ ip မရွိေတာ့ဘူး။ အဲ့လိုေနရာမ်ိဳးမွာ static nat ကို အသုံးျပဳၿပီးေတာ့ ေျဖရွင္းလို႔ရတယ္။ ဘယ္လို ေျဖရွင္းမလည္း။ router မွာ ေပးထားတဲ့ public address ကိုသုံးၿပီး ကိုယ္ network ထဲမွာရွိတဲ့ web server ရဲ့ port 80 or 443 နဲ႔ တြဲးၿပီးေတာ့ Mapping လုပ္ထားလိုက္ရင္ internet ကေနၿပီးေတာ့ ကိုယ္ router ရဲ့ public address ကို http (port 80 or 443) လာေမးတဲ့အခါ ကိုယ္ local network မွာရွိတဲ့ private ip address နဲ႔ port 88 or 443 နဲ႔ ေျပာင္းၿပီးေတာ့ router ကေနထြက္လာမွာျဖစ္တယ္။
(config)#ip nat inside source static tcp 192.168.1.1 80 203.81.1.1 80 extendable   

ေအာက္တြင္ static nat ႏွင့္ PAT ကို တြဲးၿပီး configuration လုပ္ျပထားပါသည္။

Dynamic NAT
ဟုတ္ၿပီ static nat က one to one ပဲရေတာ့ အဆင္မေျပဘူး။ Client အမ်ားႀကီးကေနၿပီးေတာ့ public ကိုသြားဖို႔ဆိုရင္ေတာ့ public address ေတြအမ်ားႀကီးလိုအပ္မွာပဲ။ အဲ့လိုေနရာမွာ public address တစ္ခု (သို႔မဟုတ္) တစ္ခုထက္ပိုတဲ့ address ေတြကို ေျပာင္းလည္းၿပီးသြားေစျခင္ရင္ေတာ့ Dynamic NAT ကို အသုံးျပဳရပါတယ္။
Many to Many  Public address ၄ခု ရွိတယ္ဆိုပါေတာ့။ အဲ့ ၄ခုနဲ႔ translation လုပ္ၿပီးေတာ့ internet ကို ထြက္မွာျဖစ္တယ္။ Public address ၄ခု translate လုပ္ၿပီးလို႔ internet ကို ထြက္မဲ့ private address ၅ခုေျမာက္ေရာက္လာရင္ေတာ့ translate လုပ္စရာ public address မရွိတာေၾကာင့္ ၅ခုေျမာက္ private address ျဖတ္ခ်ျပစ္လိုက္မွာျဖစ္တယ္။ Translate လုပ္နိုင္တဲ့ public address ၄ ခုထဲက တစ္ခုခု အားတဲ့အထိေစာင့္ၿပီးေတာ့မွပဲ ေနာက္ထပ္ျပန္ၿပီ translate လုပ္မွာျဖစ္တယ္။
Many to Many Overload  Public address ၄ခုရွိတယ္ဆိုရင္ internet ကို အဲ့ ၄ခုနဲ႔ ကုန္သြားၿပီး ၅ခုေျမာက္ေရာက္လာရင္ ထြက္စရာမရွိေတာ့ဘူး ဒါဆိုရင္ router က ျဖတ္ခ်လိုက္မွာျဖစ္တယ္။ အဲ့လိုေနရာမ်ိဳးဆိုရင္ overload ဆိုတာကို သုံးလိုက္ရင္ ၅ခု ေျမာက္ေရာက္လာရင္ သူ႔ဘာသာ ေျပာင္းလည္းၿပီးထြက္သြားမွာျဖစ္တယ္။
Dynamic NAT ကို အသုံးျပဳျခင္းဟာ public address ၁ခုထက္ပိုၿပီးေတာ့ရွိသျဖင့္ ထို public address ၁ခုထက္ပိုတဲ့ဟာေတြကို Pool ေဆာက္ေပးရပါတယ္။

 ip route 0.0.0.0 0.0.0.0 10.10.10.2
access-list 10 permit 192.168.1.0 0.0.0.255
ip nat pool NAME 10.10.10.3 10.10.10.10 netmask 255.255.255.0
ip nat inside source list 10 pool NAME overload
interface FastEthernet0/1
ip address 192.168.1.1 255.255.255.0
ip nat inside
interface FastEthernet0/0
ip address 10.10.10.1 255.255.255.0
ip nat outside   

NAT Overloading (PAT)
NAT Overloading ကို အမ်ားအားျဖစ္ PAT – Port address Translation လို႔သိၾကပါတယ္။ PAT မွာကေတာ့ Public address တစ္ခုထဲရွိေန႐ုံနဲထင္ အလုပ္ျဖစ္တာမို႔ အသုံးမ်ားတဲ့ nat တစ္ခုျဖစ္တယ္။ သူကေတာ့ ဘယ္လိုအလုပ္လုပ္ဆိုရင္ေတာ့ private address ေတြသူစီကို၀င္လာရင္ အရင္ nat ေတြမွာလို႔ inside address and ouside address ေတြကို မွတ္တဲ့အျပင္ host တစ္ခုျခင္စီကပို႔လာတဲ့ port နံပါတ္ေတြကိုပါတြဲးၿပီးမွတ္ပါတယ္။ Private address တစ္ခု သူ႔စီ၀င္လာရင္ ဘယ္protocol ကလာပို႔တဲ့ port ဆိုတာကိုၾကည့္ၿပီး private address နဲ႔ port နံပါတ္နဲ႔ တြဲးမွတ္လိုက္တယ္၊ Public ကို translate လုပ္တဲ့အခါမွလည္း public address အေနာက္မွာ port နံပါတ္တစ္ခုကို တပ္ေပးလိုက္တယ္။ အဲ့ေတာ့ return ျပန္တဲ့အခါမွာလည္း public address ကျပန္၀င္လာတဲ့အခါမွာ port နံပါတ္နဲ႔ addressကို ၾကည့္လိုက္တယ္။ သူ႔ nat table ထဲမွာ ရွာၿပီးေတ့ာ သတ္ဆိုင္ရာ host စီကိုျပန္ပို႔လိုက္တယ္။

 -    အထက္ကပုံမွာဆိုရင္ 10.10.10.1 private address က web server ကို သြားျခင္တာမို႔ port 80 နဲ႔ router စီကိုေရာက္လာတယ္။
-    NAT က port နဲ႔ private address ကို တြဲးၿပီးေတာ့ မွတ္ထားလိုက္တယ္။ 10.10.10.1:80 
-    Public address ကို port တစ္ခုခုနဲ႔ တြဲးၿပီးေတာ့ translate လုပ္လိုက္တယ္။ 63.63.63.1:8000 
-    အဲ့လိုနဲ႔ web server ကေန return ျပန္လာတယ္။ 63.63.63.1:8000 နဲ႔ 
-    Nat က table ထဲမွာရွာလိုက္ေတာ့ 63.63.63.1:8000 ဟာ 10.10.10.1:80 နဲ႔ဆိုတာကို ေတြ႕သြားလို႔ 10.10.10.1:80 နဲ႔ translate လုပ္လိုက္တယ္။ 10.10.10.1:80
Port ကို အဓိက အသုံးျပဳတာမို႔ address တစ္ခုထဲကေနၿပီ port ေပါင္း 64500 ေလာက္ကို translate လုပ္နိုင္တာမို႔ တစ္ၿပိဳင္ထဲ့ host ေပါင္း 64500 ေလာက္ထိကို အသုံးျပဳနိုင္ပါတယ္။ ေျပာရရင္ေတာ့ public address တစ္ခုထဲနဲ႔ကို တစ္ၿပိဳင္ထဲ address 64500 ေလာက္ထိ အသုံးျပဳနိုင္တာေပါ့ဗ်ာ။ Port ဟာဆိုရင္ OSI 7 Layer ရဲ့ Layer 4 Transport Layer မွာ အလုပ္လုပ္တာျဖစ္တယ္။ Port ေတြမွာ 0 to 65535 အထိရွိၾကပါတယ္။ အဲ့ထဲကမွ 0 to 1023 ထိဟာ  Well Know Port Number (ပုံေသသတ္မွတ္ၿပီးသား port မ်ားျဖစ္ၿပီး သတ္ဆိုင္ရာ application မ်ားအတြက္ျဖစ္တယ္) မ်ားျဖစ္ၾကပါတယ္။ 1024 to 65535 ထိကိုေတာ့ စိတ္ႀကိဳက္အသုံး ျပဳနိုင္ပါတယ္။
Example

R1 Configuration

Inter-vlan Routing
interface FastEthernet0/0
no shutdown
interface FastEthernet0/0.1
 encapsulation dot1Q 10
 ip address 192.168.1.1 255.255.255.0
interface FastEthernet0/0.2
 encapsulation dot1Q 20
 ip address 192.168.2.1 255.255.255.0
interface FastEthernet0/0.3
 encapsulation dot1Q 30
 ip address 192.168.3.1 255.255.255.0
  
Default Route
ip route 0.0.0.0 0.0.0.0 45.30.30.1

Access-list for PAT
access-list 10 permit 192.168.1.0 0.0.0.255
access-list 10 permit 192.168.2.0 0.0.0.255 

NAT (PAT)
ip nat inside source list 10 interface GigabitEthernet1/0 overload 

External web server to internal for Static Nat
ip nat inside source static tcp 192.168.3.10 80 45.30.30.2 80 extendable
ip nat inside source static 192.168.3.10 45.30.30.2 extendable 

Interface inside and outside
interface GigabitEthernet1/0
ip nat outside
interface FastEthernet0/0.1
 ip nat inside
interface FastEthernet0/0.2
ip nat inside
interface FastEthernet0/0.3
ip nat inside 

show ip nat translations   




No comments:

Post a Comment