Tunneling یا سیستم ایجاد تونل ارتباطی با نام کپسوله کردن (Encapsulation) نیز شناخته میشود که روشی است برای استفاده از زیرساخت یک شبکه عمومی جهت انتقال اطلاعات. این اطلاعات ممکن است از پروتکلهای دیگری باشد. اطلاعات بهجای اینکه بهصورت اصلی و Original فرستاده شوند، با اضافه کردن یک Header (سرایند) کپسوله میشوند.
این سرایند اضافی که به پکت متصل میشود، اطلاعات مسیریابی را برای پکت فراهم می کند تا اطلاعات بهصورت صحیح، سریع و فوری به مقصد برسند. هنگامی که پکتهای کپسوله شده به مقصد رسیدند، سرایندها از روی پکت برداشته شده و اطلاعات بهصورت اصلی خود تبدیل میشوند. این عملیات را از ابتدا تا اتمام کار Tunneling مینامند.
نگهداری تونل
مجموعه عملیات متشکل از پروتکل نگهداری تونل و پروتکل تبادل اطلاعات تونل بهنام پروتکل Tunneling شناخته میشوند . برای اینکه این تونل برقرار شود، هم کلاینت و هم سرور میبایست پروتکل Tunneling یکسانی را مورد استفاده قرار دهند. از جمله پروتکلهایی که برای عملیات Tunneling مورد استفاده قرار میگیرند PPTP و L2TP هستند که در ادامه مورد بررسی قرار خواهند گرفت.
پروتکل نگهداری تونل
پروتکل نگهداری تونل بهعنوان مکانیسمی برای مدیریت تونل استفاده میشود. برای برخی از تکنولوژیهایTunneling مانند PPTP و L2TP یک تونل مانند یک Session میباشد، یعنی هر دو نقطه انتهایی تونل علاوه بر اینکه باید با نوع تونل منطبق باشند، میبایست از برقرار شدن آن نیز مطلع شوند.
هرچند بر خلاف یک Session، یک تونل دریافت اطلاعات را بهصورتی قابل اطمینان گارانتی نمیکند و اطلاعات ارسالی معمولاً بهوسیله پروتکلی بر مبنای دیتاگرام مانندUDP هنگام استفاده از L2TP یا TCP برای مدیریت تونل و یک پروتکل کپسوله کردن مسیریابی عمومی اصلاح شده بهنام GRE برای وقتی که PPTP استفاده می گردد، پیکربندی و ارسال میشوند.
ساخته شدن تونل
یک تونل باید قبل از اینکه تبادل اطلاعات انجام شود، ساخته شود. عملیات ساخته شدن تونل بهوسیله یک طرف تونل یعنی کلاینت آغاز میشود و طرف دیگر تونل یعنی سرور، تقاضای ارتباط Tunneling را دریافت میکند. برای ساخت تونل یک عملیات ارتباطی مانند PPP انجام میشود.
سرور تقاضا میکند که کلاینت خودش را معرفی کرده و معیارهای تصدیق هویت خود را ارائه نماید. هنگامی که قانونی بودن و معتبر بودن کلاینت مورد تأیید قرار گرفت، ارتباط تونل مجاز شناخته شده و پیغام ساخته شدن تونل توسط کلاینت به سرور ارسال میگردد و سپس انتقال اطلاعات از طریق تونل شروع خواهد شد.
برای روشن شدن مطلب، مثالی میزنیم. اگر محیط عمومی را، که غالبا نیز همینگونه است، اینترنت فرض کنیم، کلاینت پیغام ساخته شدن تونل را از آدرس IP کارت شبکه خود بهعنوان مبدا به آدرس IP مقصد یعنی سرور ارسال میکند. حال اگر ارتباط اینترنت بهصورت DialUp از جانب کلاینت ایجاد شده باشد، کلاینت بهجای آدرس NIC خود، آدرس IP را که ISP به آن اختصاص داده بهعنوان مبدا استفاده خواهد نمود.
در برخی از تکنولوژیهای Tunneling مانند L2TP و PPTP، تونل ساخته شده باید نگهداری و مراقبت شود . هر دو انتهای تونل باید از وضعیت طرف دیگر تونل باخبر باشند. نگهداری یک تونل معمولا از طریق عملیاتی بهنام نگهداری فعال (KA) اجرا میگردد که طی این پروسه بهصورت دوره زمانی مداوم از انتهای دیگر تونل آمارگیری میشود. اینکار هنگامی که اطلاعاتی در حال تبادل نیست، انجام می پذیرد.
پروتکل تبادل اطلاعات تونل
زمانی که یک تونل برقرار میشود، اطلاعات میتوانند از طریق آن ارسال گردند. پروتکل تبادل اطلاعات تونل، اطلاعات را کپسوله کرده تا قابل عبور از تونل باشند. وقتی که تونل کلاینت قصد ارسال اطلاعات را به تونل سرور دارد، یک سرایند (مخصوص پروتکل تبادل اطلاعات) را بر روی پکت اضافه میکند. نتیجه اینکار این است که اطلاعات از طریق شبکه عمومی قابل ارسال شده و تا تونل سرور مسیریابی میشوند.
تونل سرور پکتها را دریافت کرده و سرایند اضافه شده را از روی اطلاعات برداشته و سپس اطلاعات را بهصورت اصلی درمی آورد.
انواع تونل
تونلها به دو نوع اصلی تقسیم میگردند: اختیاری و اجباری.
تونل اختیاری
تونل اختیاری بهوسیله کاربر و از سمت کامپیوتر کلاینت طی یک عملیات هوشمند، پیکربندی و ساخته میشود. کامپیوتر کاربر نقطه انتهایی تونل بوده و بهعنوان تونل کلاینت عمل میکند. تونل اختیاری زمانی تشکیل میشود که کلاینت برای ساخت تونل به سمت تونل سرور مقصد داوطلب شود.
هنگامیکه کلاینت بهعنوان تونل کلاینت قصد انجام عملیات دارد، پروتکل Tunneling موردنظر باید بر روی سیستم کلاینت نصب گردد. تونل اختیاری میتواند در هریک از حالتهای زیر اتفاق بیفتد:
– کلاینت ارتباطی داشته باشد که بتواند ارسال اطلاعات پوشش گذاری شده را از طریق مسیریابی به سرور منتخب خود انجام دهد .
– کلاینت ممکن است قبل از اینکه بتواند تونل را پیکربندی کند، ارتباطی را از طریق DialUp برای تبادل اطلاعات برقرار کرده باشد. این معمولترین حالت ممکن است. بهترین مثال از این حالت، کاربران اینترنت هستند. قبل از اینکه یک تونل برای کاربران بر روی اینترنت ساخته شود، آنها باید به ISP خود شمارهگیری کنند و یک ارتباط اینترنتی را تشکیل دهند.
تونل اجباری
تونل اجباری برای کاربرانی پیکر بندی و ساخته می شود که دانش لازم را نداشته و یا دخالتی در ساخت تونل نخواهند داشت. در تونل اختیاری، کاربر، نقطه نهایی تونل نیست. بلکه یک Device دیگر بین سیستم کاربر و تونل سرور، نقطه نهایی تونل است که بهعنوان تونل کلاینت عمل مینماید.
اگر پروتکل Tunneling بر روی کامپیوترکلاینت نصب و راه اندازی نشده و در عین حال تونل هنوز مورد نیاز و درخواست باشد، این امکان وجود دارد که یک کامپیوتر دیگر و یا یک Device شبکه دیگر، تونلی از جانب کامپیوتر کلاینت ایجاد نماید.
این وظیفهای است که به یک متمرکزکننده دسترسی (AC) به تونل، ارجاع داده شده است. در مرحله تکمیل این وظیفه، متمرکزکننده دسترسی یا همان AC باید پروتکل Tunneling مناسب را ایجاد کرده و قابلیت برقراری تونل را در هنگام اتصال کامپیوتر کلاینت داشته باشد. هنگامیکه ارتباط از طریق اینترنت برقرار می شود، کامپیوتر کلاینت یک تونل تأمین شده (NAS (Network Access Service را از طریق ISP احضار میکند.
بهعنوان مثال یک سازمان ممکن است قراردادی با یک ISP داشته باشد تا بتواند کل کشور را توسط یک متمرکزکننده دسترسی بههم پیوند دهد. این AC میتواند تونلهایی را از طریق اینترنت برقرار کند که به یک تونل سرور متصل باشند و از آن طریق به شبکه خصوصی مستقر در سازمان مذکور دسترسی پیدا کنند.
این پیکربندی بهعنوان تونل اجباری شناخته میشود، بهدلیل اینکه کلاینت مجبور به استفاده از تونل ساخته شده بهوسیله AC شده است. یکبار که این تونل ساخته شد، تمام ترافیک شبکه از سمت کلاینت و نیز از جانب سرور بهصورت خودکار از طریق تونل مذکور ارسال خواهد شد.
بهوسیله این تونل اجباری، کامپیوتر کلاینت یک ارتباط PPP میسازد و هنگامیکه کلاینت به NAS، از طریق شمارهگیری متصل میشود، تونل ساخته میشود و تمام ترافیک بهطور خودکار از طریق تونل، مسیریابی و ارسال میگردد. تونل اجباری می تواند بهطور ایستا و یا خودکار و پویا پیکربندی شود.
تونلهای اجباری ایستا
پیکربندی تونلهای Static معمولاً به تجهیزات خاص برای تونلهای خودکار نیاز دارند. سیستم Tunneling خودکار بهگونهای اعمال میشود که کلاینتها به AC از طریق شمارهگیری (Dialup) متصل میشوند. این مسأله احتیاج به خطوط دسترسی محلی اختصاصی و نیز تجهیزات دسترسی شبکه دارد که به اینها هزینههای جانبی نیز اضافه میگردد.
برای مثال کاربران احتیاج دارند که با یک شماره تلفن خاص تماس بگیرند، تا به یک AC متصل شوند که تمام ارتباطات را بهطور خودکار به یک تونل سرور خاص متصل میکند. در طرحهای Tunneling ناحیهای، متمرکزکننده دسترسی بخشی از User Name را که Realm خوانده میشود بازرسی میکند تا تصمیم بگیرد در چه موقعیتی از لحاظ ترافیک شبکه، تونل را تشکیل دهد.
تونلهای اجباری پویا
در این سیستم انتخاب مقصد تونل براساس زمانی که کاربر به AC متصل می شود، ساخته میشود. کاربران دارای Realm یکسان، ممکن است تونلهایی با مقصدهای مختلف تشکیل بدهند. البته این امر به پارامترهای مختلف آنها مانند UserName، شماره تماس، محل فیزیکی و زمان بستگی دارد.
تونلهای Dynamic، دارای قابلیت انعطاف عالی هستند. همچنین تونلهای پویا اجازه میدهند که AC بهعنوان یک سیستم Multi-NAS عمل کند، یعنی اینکه همزمان هم ارتباطات Tunneling را قبول می کند و هم ارتباطات کلاینتهای عادی و بدون تونل را. در صورتی که متمرکزکننده دسترسی بخواهد نوع کلاینت تماسگیرنده را مبنی بر دارای تونل بودن یا نبودن از قبل تشخیص بدهد، باید از همکاری یک بانک اطلاعاتی سود ببرد.
برای اینکار باید AC اطلاعات کاربران را در بانک اطلاعاتی خود ذخیره کند که بزرگترین عیب این مسأله این است که این بانک اطلاعاتی به خوبی قابل مدیریت نیست.
بهترین راهحل این موضوع، راهاندازی یک سرور RADIUS است، سروری که اجازه میدهد که تعداد نامحدودی سرور، عمل شناسایی Userهای خود را بر روی یک سرور خاص یعنی همین سرور RADIUS انجام دهند، بهعبارت بهتر این سرور مرکزی برای ذخیره و شناسایی و احراز هویت نمودن کلیه کاربران شبکه خواهد بود.
پروتکلهای VPN
عمدهترین پروتکلهایی که بهوسیله ویندوز ۲۰۰۰ برای دسترسی به VPN استفاده می شوند
عبارتند از: L2TP ،Ipsec ،PPTP ،IP-IP
البته پروتکل امنیتی SSL نیز جزء پروتکلهای مورد استفاده در VPN به شمار میآید، ولی بهعلت اینکه SSL بیشتر بر روی پروتکلهای HTTP ،LDAP ،POP3 ،SMTP و … مورد استفاده قرار میگیرد، بحث در مورد آن را به فرصتی دیگر موکول میکنیم.
پروتکلPPTP
پروتکل Tunneling نقطه به نقطه، بخش توسعه یافتهای از پروتکل PPP است که فریمهای پروتکل PPP را بهصورت
IP برای تبادل آنها از طریق یک شبکه IP مانند اینترنت توسط یک سرایند، کپسوله میکند. این پروتکل میتواند در شبکههای خصوصی از نوع LAN-to-LAN نیز استفاده گردد.
پروتکل PPTP بهوسیله انجمنی از شرکتهای مایکروسافت، Ascend Communications ،۳com ،ESI و US Robotics ساخته شد.
PPTP یک ارتباط TCP را (که یک ارتباط Connection Oriented بوده و پس از ارسال پکت منتظر Acknowledgment آن میماند) برای نگهداری تونل و فریمهای PPP کپسوله شده توسط (GRE (Generic Routing Encapsulation که به معنی کپسوله کردن مسیریابی عمومی است،
برای Tunneling کردن اطلاعات استفاده میکند. ضمناً اطلاعات کپسولهشده PPP قابلیت رمزنگاری و فشرده شدن را نیز دارا هستند.
تونلهای PPTP باید بهوسیله مکانیسم گواهی همان پروتکل PPP که شامل (EAP ،CHAP ،MS-CHAP ،PAP)میشوند، گواهی شوند. در ویندوز ۲۰۰۰ رمزنگاری پروتکل PPP فقط زمانی استفاده میگردد که پروتکل احراز هویت یکی از پروتکلهای EAP ،TLS و یا MS-CHAP باشد.
باید توجه شود که رمزنگاری PPP، محرمانگی اطلاعات را فقط بین دو نقطه نهایی یک تونل تأمین میکند و در صورتیکه به امنیت بیشتری نیاز باشد، باید از پروتکل Ipsec استفاده شود.
پروتکل L2TP
پروتکل L2TP ترکیبی است از پروتکلهای PPTP و (L2F (Layer 2 Forwarding که توسط شرکت سیسکو توسعه یافته است. این پروتکل ترکیبی است از بهترین خصوصیات موجود در L2F و PPTP.
L2TP نوعی پروتکل شبکه است که فریمهای PPP را برای ارسال بر روی شبکههای IP مانند اینترنت و علاوه بر این برای شبکههای مبتنی بر X.25 ،Frame Relay و یا ATM کپسوله میکند.
هنگامیکه اینترنت بهعنوان زیرساخت تبادل اطلاعات استفاده میگردد، L2TP میتواند بهعنوان پروتکل
Tunneling از طریق اینترنت مورد استفاده قرار گیرد.
L2TP برای نگهداری تونل از یک سری پیغامهای L2TP و نیز از پروتکل UDP (پروتکل تبادل اطلاعات بهصورتConnection Less که پس از ارسال اطلاعات منتظر دریافت Acknowledgment نمیشود و اطلاعات را، به مقصد رسیده فرض میکند) استفاده میکند.
در L2TP نیز فریمهای PPP کپسوله شده میتوانند همزمان علاوه بر رمزنگاری شدن، فشرده نیز شوند. البته مایکروسافت پروتکل امنیتی Ipsec (که بهطور مفصل در شماره ۴۷ ماهنامه شبکه تحت عنوان “امنیت اطلاعات در حین انتقال بهوسیله IPsec ” معرفی شده) را بهجای رمزنگاری PPP توصیه می کند. ساخت تونل L2TP نیز باید همانند PPTP توسط مکانیسم (PPP EAP ،CHAP ،MS-CHAP ،PAP) بررسی و تأیید شود.
PPTP در مقابلL2TP
هر دو پروتکل PPTP و L2TP از پروتکل PPP برای ارتباطات WAN استفاده می کنند تا نوعی اطلاعات ابتدایی برای دیتا را فراهم کنند و سپس یک سرایند اضافه برای انتقال اطلاعات از طریق یک شبکه انتقالی به پکت الحاق بنمایند. هرچند این دو پروتکل در برخی موارد نیز با هم تفاوت دارند. برخی از این تفاوتها عبارتند از:
۱- شبکه انتقال که PPTP احتیاج دارد، باید یک شبکه IP باشد. ولی L2TP فقط به یک تونل احتیاج دارد تا بتواند ارتباط Point-to-Point را برقرار کند. حال این تونل می تواند بر روی یک شبکه IP باشد و یا بر روی شبکههای دیگر مانند X.25 و یا ATM ،Frame Relay.
۲- L2TP قابلیت فشردهسازی سرایند را داراست. هنگامیکه فشردهسازی سرایند انجام میگیرد، L2TP با حجم ۴ بایت عمل میکند، در حالیکه PPTP با حجم ۶ بایت عمل مینماید.
۳- L2TP متد احراز هویت را تأمین میکند، در حالیکه PPTP اینگونه عمل نمیکند، هرچند وقتیکه PPTP یا L2TP از طریق پروتکل امنیتی IPsec اجرا میشوند، هر دو، متد احراز هویت را تأمین مینمایند.
۴- PPTP رمزنگاری مربوط به PPP را استفاده میکند، ولی L2TP از پروتکل Ipsec برای رمزنگاری استفاده مینماید.
پروتکل Ipsec
Ipsec یک پروتکل Tunneling لایه سوم است که از متد ESP برای کپسوله کردن و رمزنگاری اطلاعات IP برای تبادل امن اطلاعات از طریق یک شبکه کاری IP عمومی یا خصوصی پشتیبانی میکند. IPsec بهوسیله متد ESP میتواند اطلاعات IP را بهصورت کامل کپسوله کرده و نیز رمزنگاری کند.
به محض دریافت اطلاعات رمزگذاری شده، تونل سرور، سرایند اضافهشده به IP را پردازش کرده و سپس کنار میگذارد و بعد از آن رمزهای ESP و پکت را باز میکند. بعد از این مراحل است که پکت IP بهصورت عادی پردازش میشود. پردازش عادی ممکن است شامل مسیریابی و ارسال پکت به مقصد نهایی آن باشد.