Network Address Translation (NAT)

Network Address Translation (NAT). NAT এর মাধ্যমে Private আইপি অ্যাড্রেসকে Public আইপি অ্যাড্রেসে Translate করে ইন্টারনেটে Routable করা হয়। কারণ Private আইপি অ্যাড্রেস ইন্টারনেটে Routable না।

Normally LAN এ Private আইপি অ্যাড্রেস ব্যবহার করা হয় এবং LAN থেকে ইন্টারনেট এক্সেস এর প্রয়োজন থাকে। যেহেতু Private আইপি অ্যাড্রেস ইন্টারনেটে Routable না সেহেতু NAT এর মাধ্যমে Private আইপি অ্যাড্রেসকে Public আইপি অ্যাড্রেসে কনভার্ট করে ইন্টারনেটে Routable করা হয়।

NAT Overview :

Basic Overview of NAT

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:

Three Types of NAT

Static NAT: Static NAT এর ক্ষেত্রে ম্যানুয়ালি Private and Public অ্যাড্রেস Bind করে দিতে হয়। Static NAT কাজ করে One:One Mapping প্রসেসে। অর্থাৎ এখানে একটি Private অ্যাড্রেস এর সাথে একটি Public অ্যাড্রেসকে Map করে দিতে হয়। যখন ওই Private অ্যাড্রেসটি ইন্টারনেটে যাবে তখন তার সাথে Mapping করা Fixed Public অ্যাড্রেস এ Translate হয়ে যাবে।

Scenario :

Scenario of Static NAT & Mapping Table

এখানে 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 করে দিতে হবে।

Apply Direction on Inside & Outside Interface

এখানে Gig 0/0 Interface দিয়ে Incoming Private IP গুলো Gig 0/1 Interface দিয়ে Forward হওয়ার সময় Public address এ Translate হবে।

Scenario :

Network Topology

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:

Static NAT Configure on the Router & showing Translation Table before Generate traffic.

Verifying Translation Table after Generate traffic:

showing Translation Table on the Router after Generate traffic from host

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 কে উল্লেখ করতে হবে।

Network Topology

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:

Dynamic NAT Configure on the Router & showing Translation Table before Generate traffic

Verifying Translation Table after Generate traffic :

Verifying Translation Table on the Router after Generate traffic from host

এখানে 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 করা হয়।

Scenario of PAT & Translation Table

এখানে সব 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 করা যায়,

  1. Using Pool : Pool এ থাকা IP address দিয়ে Translate হবে।
  2. 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 কে উল্লেখ করতে হবে।

Network Topology

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:

PAT Configure on the Router by Using Pool & showing Translation Table before Generate traffic

এখানে 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 :

PAT Configure on the Router by Using Exit Interface & showing Translation Table before Generate traffic

এখানে 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 :

After translate, every Inside Global address are same but Source Port number  is Different.

Have Any query Please feel free to ask by Comment Below

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top