آشنایی با معماری Large Scale NAT (LSN)

اگر از پست قبل به خاطر داشته باشید، توضیح داده شد که چندین سال از NAT به عنوان راهکاری در ساختارهای شبکه ی مشتریان برای کاهش نیاز به آدرس های IPv4 Public استفاده می شد.

زمانی که آدرس های IPv4 Public به مرز اتمام نزدیک شدند، ISP ها به دنبال جواب این سوال بودند که چطور می توانند ارتباط خود با مشتریانشان را حفظ کنند. پاسخ این پرسش این بود که اگر NAT در لبه ی مرزی ساختار مشتریان با Provider ها توانسته بود موفق عمل کند پس قطعا می تواند در لبه ی مرزی ساختار Provider ها با مشتریانشان نیز موفق عمل نماید. در واقع این پاسخ، ایده ی اصلی شکل گیری مفهومی با نام Large Scale NAT یا LSN بود.

معماری LSN به این صورت است که، ISP ها برای لینک هایی که به سمت مشتریان خود دارند به جای تخصیص آدرس IPv4 Public  از آدرس های IPv4 Private استفاده می کنند و برای لینک هایی که برای ارتباط آن ها با اینترنت است از آدرس IPv4 Public.

بنابراین اگر مشتری در روتر مرزی خود با Service Provider از NAT استفاده کرده باشد، پکتی که از سمت ساختار مشتری به سمت ISP ارسال می شود، ابتدا آدرس IPv4 Private آن به یک آدرس IPv4 Private دیگر که از سمت ISP به لینک بین آن و روتر مرزی مشتری اختصاص پیدا کرده، نگاشت می شود و در هنگام خروج پکت از ساختار Provider به سمت اینترنت،  آدرس آن به یک آدرس IPv4 Public ترجمه می شود. پس بنابراین دوبار ترجمه رخ می دهد: یک آدرس IPv4 Private به یک آدرس IPv4 Private دیگر و نهایتا به یک آدرس IPv4 Public ترجمه می گردد. به همین دلیل این عمل اصطلاحا NAT444 نامیده می شود.

خوبی این روش آن است که NAT ای که سمت مشتریان پیاده سازی شده هیچ نیازی به تغییر ندارد چرا که برای NAT مهم نیست که آدرس outside ای که باید نگاشت به آن انجام شود، باید Private باشد یا Public. بنابراین از دید تجهیز سمت مشتری، هیچ تغییری رخ نداده است.

اما این معماری قطعا مشکلاتی را نیز در پی خواهد داشت: به عنوان مثال تصور کنید که مشتری در ساختار خود از همان رنج آدرس IPv4 Private ای استفاده کرده باشد که Provider آن رنج را به لینک بین خود و مشتری اختصاص داده است، در این صورت overlap رخ خواهد داد. یا مثلا تصور نمایید که یک مشتری قصد ارسال پکتی را به یک مشتری دیگر که در پشت همان LSN ای که با آن ارتباط دارد، داشته باشد. معمولا فایروال ها یا ACL هایی که در روترها تعریف می شوند، مانع از ورود پکتی با آدرس IP Private به داخل ساختار شده و این پکت ها رو drop می کنند.

در این پست سعی شده تا بیشتر با معماری LSN، مزایا و معایب آن و هم چنین راهکارهایی که برای حل مشکلات این معماری ارائه شده است، آشنا شویم.

Large Scale NAT Architectures