NAT (Network Address Translation)

Introduction to NAT (Network Address Translation)

किसी भी device को internet से जुड़ने के लिए IP address की आवश्यकता होती है। यदि आपके work enviornment में 10 device है तो इन्हें internet से जुड़ने के लिए 10 ही IP addresses की आवश्यकता होगी। जैसा की आपको पता है internet बहुत अधिक गति से बढ़ रहा है और IP address की सँख्या जरुरत से कम है, इसलिए इस समस्या से निपटने के लिए IPV6 को develop किया जा रहा है लेकिन उसे implement होने में अभी काफी समय लगेगा। ऐसी situation में IP address की आवश्यकता को पूरी करने के लिए NAT (Network Address Translation) का प्रयोग किया जा रहा है।

NAT (Network Address Translation) Cisco द्वारा develop किया गया है। ये एक mechanism होता है जो आपके private network और internet के बीच काम करता है। NAT किसी device पर काम करता है। ये device कोई भी हो सकता है जैसे की firewall और router आदि NAT को IETF RFC 1631 में define किया गया है।

मान लीजिये आपके organization में 25 devices है जिन्हें internet से जोड़ा जाना है| Normally देखे तो इसके लिए आपको 25 IP address की आवश्यकता होगी। लेकिन NAT को use करते हुए आप एक ही registered IP address से सभी devices को internet से जोड़ सकते है। NAT के use से आपको 25 IP addresses की आवश्यकता नहीं होगी| सभी devices को आप unregistered IP address से configure करते है| इन IP address को local IP addresses कहा जाता है NAT किसी organization में IP addresses की जरुरत को कम कर देता है|

Types of NAT (Network Address Translation)

NAT को 3 प्रकार से use किया जा सकता है|

  1. Static NAT
  2. Dynamic NAT
  3. NAT Overload & Port Address Translation

इन सभी methods को निचे समझाया जा रहा है।

Static NAT

Static NAT में एक local IP address की एक global IP address में mapping की जाती है| ये one to one process होती है। जब आप किसी NAT enabled router के दूसरी तरफ के एक device को internet से connect करना चाहे तो इस type के NAT को use करते है|

Dynamic NAT

Dynamic NAT में जब भी कोई local IP address का device internet से जुड़ने का प्रयास करता है तो registered IP addresses के pool में से एक IP address dynamically select किया जाता है और उसकी local IP address से mapping की जाती है|

NAT Overload or Port Address Translation (PAT)

इस तरह के NAT में local IP address के traffic को एक single global IP address के अलग अलग ports पर map किया जाता है| PAT का उपयोग उस condition में किया जाता है जब local address की सँख्या global addresses की सँख्या से अधिक होती है।

Working of NAT (Network Address Translation)

NAT की working को समझने के लिए पहले आपको कुछ terms को समझना होगा| इन terms के बारे में निचे बताया जा रहा है।

Inside Local

ये आपके home/private network में किसी host पर configure किया हुआ unregistered IP address होता है। इसे एक private IP address भी कहा जाता है|

Inside Global

ये वह IP address होता है जो आपके private host को public network (Internet) में represent करता है| ये एक registered IP address होता है|

Outside Global

ये किसी outside host को assign किया गया registered IP address होता है। ये host NAT enabled device के दूसरी तरफ होता है।

Outside Local

ये NAT enabled device के दूसरी तरफ private network में किसी host को assign किया गया unregistered IP address भी हो सकता है और public network में कोई registered IP address भी हो सकता है|

NAT की working को निचे एक diagram द्वारा समझाया जा रहा है।

NAT in Hindi

जैसा की आप ऊपर दिए गए diagram में देख सकते है home network में configure किये गए IP addresses inside local होते है| जो IP address आपके private को public network से connect करता है वह inside global कहा जाता है| ये NAT enabled device (router) के उस interface पर configured होता है जो की private network से जोड़ता है| ये IP address आपके private network को represent करता है| NAT enabled device के दूसरी तरफ outside global address होता है जो की इसे public network से जोड़ता है| वह कोई भी host जो public network में होता है और NAT enabled device के interface से public network में connect रहता है outside local address कहलाता है|

जब भी home network का कोई भी host internet से जुड़ने का प्रयास करता है तो NAT उसे एक registered IP address में translate कर देता है और वह host आसानी से internet access कर पाता है|

Configuring NAT (Network Address Translation)

जैसा की मैने आपको पहले बताया NAT को 3 प्रकार से use किया जाता है। इसलिए NAT को configure भी 3 प्रकार से किया जाता है। NAT के 3 तरह के configuration को निचे समझाया जा रहा है|

Static NAT Configuration

Static NAT configure करने के लिए सबसे पहले आप inside और outside interfaces को identify करके configure करते है| Inside interface वह होता है जिससे private host NAT enabled device से connected करता है| Outside interface वह होता है जिससे NAT enabled device internet से जुड़ा होता है।

Inside interface को configure करने के लिए आप इस प्रकार commands execute करेंगे।

Router(config)# int e0/0
Router(config-if)# ip nat inside

पहली command से आप interface configuration mode में आ जाते है और दूसरी commands से आप उस interface को inside interface के रूप में configure करते है|

Outside interface को आप इस प्रकार configure कर सकते है।

Router(config)# int s0/0
Router(config-if)ip nat outside

आखिर में एक private IP address को public IP address में map करने के लिए आप इस प्रकार command execute करेंगे।

Router(config)# ip nat inside source static 152.4.0.1 192.168.1.1

ऊपर दी गयी command 152.4.0.1 को 192.168.1.1 में statically translate करती है।

Configuring Dynamic NAT

Dynamic NAT configuration के लिए भी सबसे पहले आप inside और outside interfaces को identify करके configure करते है| इसके बारे में मैं static configuration में पहले बता चूका हूँ इसलिए यँहा पर मैं इस process को skip कर रहा हूँ|

Inside और outside interfaces को identify करके configure करने के बाद आप public address का एक pool specify करते है| Inside hosts internet से जुड़ते समय इस pool में next available IP address dynamically select करेंगे|

Public addresses के pool को configure करने के लिए आप इस प्रकार command execute करते है।

Router(config)# ip nat pool BHTPOOL 151.70.1.1 151.70.1.1 netmask 255.255.255.0

ऊपर दी गयी command BHTPOOL नाम से एक pool define करती है जिसमें 151.70.1.1 से लेकर 151.70.1.50 तक के public IP addresses available है। आखिर में आप उन private address को configure करते है जो इस pool के द्वारा translate किये जा सकते है| इसके लिए आप access-list का प्रयोग करते है|

Private address की list को configure करने के लिए आप इस प्रकार command execute करेंगे।

Router(config)# ip nat inside source list 10 pool BHTPOOL
Router(config)# access list 10 permit 172.16.1.1 0.0.0.255

पहली command बताती है की कोई भी inside host जो access list 10 को match करता है उसे BHTPOOL में available किसी भी public address में translate किया जा सकता है| Access list किसी भी host को 172.16.1.1 network पर specify करता है।

Configuring NAT Overload or (Port Address Translation)

जैसा की आपको पता है PAT को तब configure किया जाता है जब inside local addresses की सँख्या outside public addresses से कम होती है| हर inside private address को एक single public address के unique port number में translate किया जाता है।

PAT को configure करना आसान है| इसके लिए सबसे पहले आप inside और outside interfaces को configure करते है| इनके बारे में आपको पहले बताया जा चूका है| इसके बाद आप PAT configure करते है|

PAT को configure करने के लिए आप इस प्रकार commands execute करते है|

Router(config)# ip nat inside source list 10 interface Serial0/0 overload
Router(config)# access list 10 permit 172.16.1.1 0.0.0.255

ऊपर दी गयी commands बताती है की कोई भी inside host जो access list 10 को match करता है उसे overload के साथ serial interface 0/0 में translate किया जाएगा|

Troubleshooting NAT (Network Address Translation)

NAT को troubleshoot करने के लिए कुछ basic commands के बारे में निचे बताया जा रहा है|

सभी static और dynamic NAT translations को देखने के लिए आप निचे दी गयी command execute करते है|

Router# show ip nat translation

ये देखने के लिए की कौनसा interface inside है और कौनसा outside है आप निचे दी गयी command execute करते है|

Router# show ip nat statistics

NAT translation को real time में देखने के लिए आप निचे दी गयी command execute करते है|

Router# debug ip nat

सभी dynamic NAT entries को clear करने के लिए आप निचे दी गयी command execute करते है|

Router# clear ip nat translation