Network Address Translation (NAT). NAT এর মাধ্যমে Private আইপি অ্যাড্রেসকে Public আইপি অ্যাড্রেসে Translate করে ইন্টারনেটে Routable করা হয়। কারণ Private আইপি অ্যাড্রেস ইন্টারনেটে Routable না।
Normally LAN এ Private আইপি অ্যাড্রেস ব্যবহার করা হয় এবং LAN থেকে ইন্টারনেট এক্সেস এর প্রয়োজন থাকে। যেহেতু Private আইপি অ্যাড্রেস ইন্টারনেটে Routable না সেহেতু NAT এর মাধ্যমে Private আইপি অ্যাড্রেসকে Public আইপি অ্যাড্রেসে কনভার্ট করে ইন্টারনেটে Routable করা হয়।
NAT Overview :
Some Address Terminology of NAT :
Inside Local : নিজের LAN এ ব্যবহৃত Private আইপি অ্যাড্রেস গুলো কে বোঝানো হয়েছে।
Inside Global : নিজের WAN Side এ ব্যবহৃত Public আইপি অ্যাড্রেস কে বোঝানো হয়েছে যে অ্যাড্রেস এর মাধ্যমে Exactly Translation হবে।
Outside Local : Internet/Remote side এর Private অ্যাড্রেস কে বোঝানো হয়েছে।
Outside Global : Internet/Remote side এর Public অ্যাড্রেস কে বোঝানো হয়েছে।
Note: Normally Remote side এর Local ও Global অ্যাড্রেস same হয়, এখানে একটি পাবলিক অ্যাড্রেস ব্যবহার করা হয়।
Type of NAT:
Static NAT: Static NAT এর ক্ষেত্রে ম্যানুয়ালি Private and Public অ্যাড্রেস Bind করে দিতে হয়। Static NAT কাজ করে One:One Mapping প্রসেসে। অর্থাৎ এখানে একটি Private অ্যাড্রেস এর সাথে একটি Public অ্যাড্রেসকে Map করে দিতে হয়। যখন ওই Private অ্যাড্রেসটি ইন্টারনেটে যাবে তখন তার সাথে Mapping করা Fixed Public অ্যাড্রেস এ Translate হয়ে যাবে।
Scenario :
এখানে Mapping Table অনুযায়ী 192.168.0.5 যখন Internet এ যাবে তখন 210.0.0.1 এ Translate হবে। এবং 192.168.0.10 যখন Internet এ যাবে তখন 210.0.0.2 এ Translate হবে।
One of the most important thing, static Nat Bidirectional mode এ কাজ করে। যেমনভাবে Inside Local অ্যাড্রেস থেকে ইন্টারনেটকে অ্যাক্সেস করা যায় তেমন ভাবে ইন্টারনেট থেকেও Inside Local অ্যাড্রেসকে অ্যাক্সেস করা যায়।
সুতরাং,আউটসাইড থেকে Mapping Public অ্যাড্রেস এর মাধ্যমে Inside Local অ্যাড্রেস কে Access করা যাবে। যেমন Outside থেকে 210.0.0.1 IP কে Hit করে Inside Local এর 192.168.0.5 IP কে access করা যাবে।
When use Static NAT: যখন Inside এ Private অ্যাড্রেস ব্যবহৃত Devices বা Server থাকে যাকে Outside থেকে Access করার প্রয়োজন হয় তখন Static NAT configure করা হয়।
Router বা Firewall এ NAT configure করা হলে Device এ একটি NAT Translation Table Generate হয় এবং এই টেবিল এর মাধ্যমে Router অ্যাড্রেস Translate করে।
Apply Direction of Translate: মূলত Inside এর আইপি গুলো Outside এ যাওয়ার সময় Translate হয়। So, ডিভাইসে ইনসাইড ইন্টারফেস ও আউটসাইড ইন্টারফেস Pre-define করে দিতে হবে।
এখানে Gig 0/0 Interface দিয়ে Incoming Private IP গুলো Gig 0/1 Interface দিয়ে Forward হওয়ার সময় Public address এ Translate হবে।
Scenario :
Direction apply Syntax : interface <type> < number>
ip nat <inside/outside>
Create NAT Statement Syntax : ip nat inside static <private address> <public address>
Command:
ip nat inside static 192.168.0.5 210.0.0.1
ip nat inside static 192.168.0.10 210.0.0.2
ip nat inside static 192.168.0.20 210.0.0.3
interface gig 0/0
ip nat inside
interface gig 0/1
ip nat outside
Static NAT Configure on the Router:
Verifying Translation Table after Generate traffic:
Dynamic NAT : Dynamic NAT, Static NAT এর মত One:One Mapping process এ কাজ করে এখানে ম্যানুয়ালি আইপি Mapping করে দিতে হয় না। অটোমেটিক Mapping করে নেয়।
এখানে Public address গুলোর মাধ্যমে একটি Pool create করা হয় Inside এর Private address গুলো Pool থেকে যেকোনো একটি Public address এ Translate হয়ে Internet এ যেতে পারে।
Pool এ যে কয়টি Public address থাকবে একই সময়ে ঠিক ঐ কয়টি Private address Translate হতে পারবে বাকি address গুলো waiting এ থাকবে। এখানে First In First Out(FIFO) process এ কাজ করে।
Note : Dynamic NAT এর ক্ষেত্রে যে Private address গুলো Translate হবে ঐ address গুলোকে permit করে একটি access-list create করতে হবে এবং NAT Statement এ Source address হিসেবে ঐ access-list কে উল্লেখ করতে হবে।
Create Interesting traffic, Syntax : access-list <number> permit <network id> <wildcard mask>
Create IP Pool, Syntax : ip nat pool <pool name> <start public ip> <end public ip> netmask <subnet mask>
Create NAT Statement, Syntax : ip nat inside source list <access-list number> pool <pool name> <public address>
Command :
access-list 10 permit 192.168.0.0 0.0.0.255
ip nat pool Test_pool 210.0.0.1 210.0.0.6 netmask 255.255.255.248
ip nat inside source list 10 pool Test_pool
interface gig 0/0
ip access-group 10 in
ip nat inside
interface gig 0/1
ip nat outside
Dynamic NAT Configure on the Router:
Verifying Translation Table after Generate traffic :
এখানে access-list 10 এ থাকা Source address গুলো Gig 0/1 interface দিয়ে Exit হওয়ার সময় Test_pool এ থাকা Public address গুলতে Translate হয়েছে।
PAT : Port Address Translation/Overloading (PAT)। বর্তমান scenario তে বেশি ব্যবহৃত হয় PAT। PATএর ক্ষেত্রে একটি Public address এর মাধ্যমে Inside এর সকল Private address গুলো Translate হবে । এখানে প্রতিটি Private address এর Service কে Specify করা হয় Random Port ব্যবহারের মাধ্যমে । Inside Global address এর সাথে specific Random Source Port ব্যবহার করে Traffic Specify করা হয়।
এখানে সব Private address গুলো 210.0.0.1 একই Public address Translate হয়ে ইন্টারনেটে reach হয়েছে এবং Port number এর মাধ্যমে Traffic Specify হয়েছে । এখানে Inside Global address একই হলেও Source Port number আলাদা আলাদা ছিল।
Inside Local থেকে কোন Request আসলে Router তার Translation Table এ Local IP, Global IP, Port Number entry করে রাখে। এখানে Global IP একই হলেও Port Number আলাদা আলাদা হওয়ায় কোন প্যাকেট Router এ Receive হলে Port Number এর মাধ্যমে Source address কে mark করে ।
PAT Unidirectional মোডে কাজ করে অর্থাৎ Inside Local address Translate হয়ে Inside থেকে Outside কে Access করতে পারে কিন্তু Outside থেকে Inside কে Access করতে পারে না।
দুটি Scenario তে PAT apply করা যায়,
- Using Pool : Pool এ থাকা IP address দিয়ে Translate হবে।
- Using Exit Interface : Exit Interface দিয়ে Forward হওয়ার সময় Interface এর Public IP address দিয়ে translate হবে।
NOTE: যদি Scenario তে Inside Global address change হওয়ার সম্ভাবনা থাকে তাহলে Exit Interface এর উপর PAT কনফিগার করতে হবে। এখানে Interface এ যে Public IP address থাকবে ঐ IP address দিয়ে Translate হবে।
PAT এর ক্ষেত্রে যে Private address গুলো Translate হবে ঐ address গুলোকে permit করে একটি access-list create করতে হবে এবং NAT Statement এ Source address হিসেবে ঐ access-list কে উল্লেখ করতে হবে।
When Using Pool :
Create Interesting traffic, Syntax : access-list <number> permit <network id> <wildcard mask>
Create IP Pool, Syntax : ip nat pool <pool name> <start public ip> <end public ip> netmask <subnet mask>
Create PAT Statement, Syntax : ip nat inside source list <access-list number> pool <pool name> overload
Command :
access-list 10 permit 192.168.0.0 0.0.0.255
ip nat pool Test_pool 210.0.0.1 210.0.0.1 netmask 255.255.255.255
ip nat inside source list 10 pool Test_pool overload
interface gig 0/0
ip access-group 10 in
ip nat inside
interface gig 0/1
ip nat outside
PAT Configure on the Router by Using Pool:
এখানে access-list 10 এ থাকা Source address গুলো Gig 0/1 interface দিয়ে Exit হওয়ার সময় Test_pool এ থাকা Public address এ Translate হবে।
When Using Exit Interface :
Create Interesting traffic, Syntax : access-list <number> permit <network id> <wildcard mask>
Create PAT Statement, Syntax : ip nat inside source list <access-list number> interface <type & number> overload
Command :
access-list 10 permit 192.168.0.0 0.0.0.255
ip nat inside source list 10 interface gig 0/1 overload
interface gig 0/0
ip access-group 10 in
ip nat inside
interface gig 0/1
ip nat outside
PAT Configure on the Router by Using Exit Interface :
এখানে access-list 10 এ থাকা Source address গুলো Gig 0/1 interface দিয়ে Exit হওয়ার সময় Gig 0/1 interface এ থাকা Public address এ Translate হবে।
NOTE : When translate, every Inside Global address will be same but Source Port number would be Different.
Verifying Translation Table after Generate traffic for using pool and exit interface both :
Have Any query Please feel free to ask by Comment Below