PAT (Port Address Translation) ويسمى أيضاً NAT Overload أو NAPT، هو أكثر أنواع NAT انتشاراً، وهو ما يعمل في راوتر منزلك وفي جدار الحماية في معظم الشركات. يسمح PAT لمئات أو آلاف الأجهزة ذات العناوين الخاصة بالخروج إلى الإنترنت عبر عنوان عام واحد، لأن الراوتر يترجم العنوان ورقم منفذ المصدر معاً، ويحفظ كل ترجمة في جدول لإعادة الردود إلى صاحبها.
كيف يعمل؟
عندما يفتح الجهاز 192.168.1.10 اتصالاً من المنفذ 51000 إلى خادم على المنفذ 443، يستبدل الراوتر عنوان المصدر بعنوانه العام 203.0.113.5، ويحتفظ برقم المنفذ نفسه إن كان متاحاً، أو يختار رقماً آخر إن كان مستخدماً من جهاز آخر. وعند عودة الرد إلى 203.0.113.5:51000 يبحث في الجدول ويعيد الحزمة إلى 192.168.1.10. ولأن رقم المنفذ 16 بت، يمكن نظرياً دعم عشرات الآلاف من الجلسات المتزامنة لكل بروتوكول على كل عنوان عام.
Pro Inside global Inside local Outside local Outside global
tcp 203.0.113.5:51000 192.168.1.10:51000 93.184.216.34:443 93.184.216.34:443
tcp 203.0.113.5:51001 192.168.1.20:51000 93.184.216.34:443 93.184.216.34:443
لاحظ في السطر الثاني أن جهازاً آخر استخدم المنفذ نفسه 51000، فاختار الراوتر 51001 لتمييزه.
الإعداد على سيسكو
R1(config)# access-list 1 permit 192.168.1.0 0.0.0.255
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip nat inside
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip nat outside
R1(config)# ip nat inside source list 1 interface GigabitEthernet0/1 overload
الكلمة overload هي ما يحول NAT الديناميكي إلى PAT. ويمكن بدلاً من الواجهة استخدام Pool من العناوين العامة مع overload أيضاً.
الفرق بين PAT و Port Forwarding
PAT العادي يعمل للاتصالات الخارجة فقط. أما إذا أردت أن يصل الناس من الإنترنت إلى خادم داخلي، فتحتاج ترجمة ثابتة لمنفذ محدد تسمى Static PAT أو Port Forwarding:
ip nat inside source static tcp 192.168.1.20 80 interface GigabitEthernet0/1 80
وفي أنظمة Linux يُعرف PAT باسم Masquerade. ومن آثاره الجانبية أن الاتصالات الواردة غير المطلوبة لا تجد ترجمة فتُسقط، لكن هذا ليس بديلاً عن جدار ناري حقيقي.


