فرمت فایل : word(قابل ویرایش)
تعداد صفحات:24
چکیده:
مفهوم DNS
DNS
DNS مسئولیت حل مشکل اسامی کامپیوترها ( ترجمه نام به آدرس ) در یک شبکه و مسائل مرتبط با برنامه های Winsock را بر عهده دارد. بمنظور شناخت برخی از مفاهیم کلیدی و اساسی DNS ، لازم است که سیستم فوق را با سیستم دیگر نامگذاری در شبکه های مایکروسافت(NetBIOS ) مقایسه نمائیم .
قبل از عرضه ویندوز ۲۰۰۰ تمامی شبکه های مایکروسافت از مدل NetBIOS برای نامگذاری ماشین ها و سرویس ها ی موجود بر روی شبکه استفاده می کردند. NetBIOS در سال ۱۹۸۳ به سفارش شرکت IBM طراحی گردید. پروتکل فوق در ابتدا بعنوان پروتکلی در سطح لایه ” حمل ” ایفای وظیفه می کرد.در ادامه مجموعه دستورات NetBIOS بعنوان یک اینترفیس مربوط به لایه Session نیز مطرح تا از این طریق امکان ارتباط با سایر پروتکل ها نیز فراهم گردد. NetBEUI
مهمترین و رایج ترین نسخه پیاده سازی شده در این زمینه است . NetBIOS برای شیکه های کوچک محلی با یک سگمنت طراحی شده است . پروتکل فوق بصورت Broadcast Base است . سرویس گیرندگان NetBIOS می توانند سایر سرویس گیرندگان موجود در شبکه را از طریق ارسال پیامهای Broadcast بمنظور شناخت و آگاهی از آدرس سخت افزاری کامپیوترهای مقصد پیدا نمایند. شکل زیر نحوه عملکرد پروتکل فوق در یک شبکه و آگاهی از آدرس سخت افزاری یک کامپیوتر ر
ا نشان می دهد. کامپیوتر ds2000 قصد ارسال اطلاعات به کامپیوتری با نام Exeter را دارد. یک پیام Broadcast برای تمامی کامپیوترهای موجود در سگمنت ارسال خواهد شد. تمامی کامپیوترهای موجود در سگمنت مکلف به بررسی پیام می باشند. کامپیوتر Exeter پس از دریافت پیام ،آدرس MAC خود را برای کامپیوتر ds2000 ارسال می نماید.
همانگونه که اشاره گردید استفاده از پروتکل فوق برای برطرف مشکل اسامی ( ترجمه نام یک کامپیوتر به آدرس فیزیکی و سخت افزاری ) صرفا” برای شبکه های محلی با ابعاد کوچک توصیه شده و در شبکه های بزرگ نظیر شبکه های اترنت با ماهیت Broadcast Based با مشکلات عدیده ای مواجه خواهیم شد.در ادامه به برخی از این مشکلات اشاره شده است .
● بموازات افزایش تعداد کامپیوترهای موجود در شبکه ترافیک انتشار بسته های اطلاعاتی بشدت افزایش خواهد یافت .
● پروتکل های مبتنی بر NetBIOS ( نظیر NetBEUI) دارای مکانیزمهای لازم برای روتینگ نبوده و دستورالعمل های مربوط به روتینگ در مشخصه فریم بسته های اطلاعاتی NetBIOS تعریف نشده است .
● در صورتیکه امکانی فراهم گردد که قابلیت روتینگ به پیامهای NetBIOS داده شود ( نظیر Overlay نمودن NetBIOS بر روی پروتکل دیگر با قابلیت روتینگ ، روترها بصورت پیش فرض بسته های NetBIOS را منتشر نخواهند کرد.
ماهیت BroadCast بودن پروتکل NetBIOS یکی از دو فاکتور مهم در رابطه با محدودیت های پروتکل فوق خصوصا” در شبکه های بزرگ است . فاکتور دوم ، ساختار در نظر گرفته شده برای نحوه نامگذاری است . ساختار نامگذاری در پروتکل فوق بصورت مسطح (Flat) است .
Flat NetBios NameSpace
بمنظور شناخت و درک ملموس مشکل نامگذاری مسطح در NetBIOS لازم است که در ابتدا مثال هائی در این زمینه ذکر گردد. فرض کنید هر شخص در دنیا دارای یک نام بوده و صرفا” از طریق همان نام شناخته گردد. در چنین وضعیتی اداره راهنمائی و رانندگی اقدام به صدور گواهینمامه رانندگی می نماید. هر راننده دارای یک شماره سریال خواهد شد. در صورتیکه از اداره فوق سوالاتی نظیر سوالات ذیل مطرح گردد قطعا” پاسخگوئی به آنها بسادگی میسر نخواهد شد.
– چند نفر با نام احمد دارای گواهینامه هستند؟
– چند نفر با نام رضا دارای گواهینامه هستند؟
در چنین حالی اگر افسر اداره راهنمائی و رانندگی راننده ای را بخاطر تخلف متوقف نموده و از مرکز و بر اساس نام وی استعلام نماید که آیا ” راننده ای با نام احمد قبلا” نیز مرتکب تخلف شده است یا خیر ؟” در صورتیکه از طرف مرکز به وی پاسخ مثبت داده شود افسر مربوطه هیچگونه اطمینانی نخواهد داشت که راننده در مقابل آن همان احمد متخلف است که قبلا” نیز تخلف داشته است .
یکی از روش های حل مشکل فوق، ایجاد سیستمی است که مسئولیت آن ارائه نام بصورت انحصاری و غیرتکراری برای تمامی افراد در سطح دنیا باشد. در چنین وضعیتی افسر اداره راهنمائی و رانندگی در برخورد با افراد متخلف دچار مشکل نشده و همواره این اطمینان وجود خواهد داشت که اسامی بصورت منحصر بفرد استفاده شده است . در چنین سیستمی چه افراد و یامسئله عدم تکرار اسامی را کنترل و این اطمینان را بوجود خواهند آورند که اسامی بصورت تکراری در سطح دنیا وجود نخواهد داشت؟. بهرحال ساختار سیستم نامگذاری می بایست بگونه ای باشد که این اطمینان را بوجود آورد که نام انتخاب شده قبلا” در اختیار دیگری قرار داده نشده است . در عمل پیاده سازی اینچنین سیستم هائی غیر ممکن است.مثال فوق محدودیت نامگذاری بصورت مسطح را نشان می دهد.
سیستم نامگذاری بر اساس NetBIOS بصورت مسطح بوده و این بدان معنی است که هر کامپیوتر بر روی شبکه می بایست دارای یک نام متمایز از دیگران باشد. در صورتیکه دو کامپیوتر موجود بر روی شبکه های مبتنی بر NetBIOS دارای اسامی یکسانی باشند پیامهای ارسالی از یک کامپیوتر به کامپیوتر دیگر که دارای چندین نمونه ( نام تکراری ) در شبکه است، می تواند باعث بروز مشکلات در شبکه و عدم رسیدن پیام ارسال شده به مقصد درست خود باشد.
اینترفیس های NetBIOS و WinSock
DNS مسائل فوق را بسادگی برطرف نموده است . سیستم فوق از یک مدل سلسله مراتبی برای نامگذاری استفاده کرده است . قبل از پرداختن به نحوه عملکرد و جزئیات سیستم DNS لازم است در ابتدا با نحوه دستیابی برنامه ها به پروتکل های شبکه و خصوصا” نحوه ارتباط آنها با پروتکل TCP/IP آشنا شویم .
برنامه های با قابلیت اجراء بر روی شبکه هائی با سیستم های عامل مایکروسافت، با استفاده از دو روش متفاوت با پروتکل TCP/IP مرتبط می گردنند.
● اینترفیس سوکت های ویندوز (WinSock)● اینترفیس NetBIOS
اینترفیس های فوق یکی از مسائل اساسی در نامگذاری و ترجمه اسامی در شبکه های مبتنی بر TCP/IP را به چالش می کشانند.برنامه های نوشته شده که از اینترفیس NetBIOS استفاده می نمایند از نام کامپیوتر مقصد بعنوان ” نقطه آخر” برای ارتباطات استفاده می نمایند در چنین مواردی برنامه های NetBIOS صرفا” مراقبت های لازم را در خصوص نام کامپیوتر مقصد بمنظور ایجاد یک session انجام خواهند داد. در حالیکه پروتکل های TCP/IP )IP,TCP) هیچگونه آگاهی از اسامی کامپیوترهای NetBIOS نداشته و در تمامی موارد مراقبت های لازم را انجام نخواهند داد.
بمنظور حل مشکل فوق( برنامه هائی که از NetBIOS بکمک اینترفیس NetBIOS با پروتکل TCP/IP مرتبط خواهند شد) از اینترفیس netBT و یا NetBIOS over TCP/IP استفاده می نمایند. زمانیکه درخواستی برای دستیابی به یک منبع در شبکه از طریق یک برنامه با اینترفیس NetBIOS ارائه می گردد و به لایه Application می رسد از طریق اینترفیس NetBT با آن مرتبط خواهد شد.در این مرحله نام NetBIOS ترجمه و به یک IP تبدیل خواهد شد. زمانیکه نام NetBIOS کامپیوتر به یک آدرس فیزیکی ترجمه می گردد درخواست مربوطه می تواند لایه های زیرین پروتکل TCP/IP را طی تا وظایف محوله دنبال گردد. شکل زیر نحوه انجام عملیات فوق را نشان می دهد.
اینترفیس Winsock
اغلب برنامه هائی که براساس پروتکل TCP/IP نوشته می گردنند، از اینترفیس Winsock استفاده می نمایند. این نوع برنامه ها نیازمند آگاهی از نام کامپیوتر مقصد برای ارتباط نبوده و با آگاهی از آدرس IP کامپیوتر مقصد قادر به ایجاد یک ارتباط خواهند بود.
کامپیوترها جهت کار با اعداد ( خصوصا” IP ) دارای مسائل و مشکلات بسیار ناچیزی می باشند.در صورتیکه انسان در این رابطه دارای مشکلات خاص خود است . قطعا” بخاطر سپردن اعداد بزرگ و طولانی برای هر شخص کار مشکلی خواهد بود. هر یک از ما طی روز به وب سایت های متعددی مراجعه و صرفا” با تایپ آدرس مربوطه که بصورت یک نام خاص است (www.test.com) از امکانات سایت مربوطه بهره مند می گردیم. آیا طی این نوع ملاقات ها ما نیازمند آگاهی از آدرس IP سایت مربوطه بوده ایم؟ بهرحال بخاطر سپردن اسامی کامپیوترها بمراتب راحت تر از بخاطر سپردن اعداد ( کد ) است . از آنجائیکه برنامه های Winsock نیازمند آگاهی از نام کامپیوتر و یا Host Name نمی باشند می توان با رعایت تمامی مسائل جانبی از روش فوق برای ترجمه اسامی استفاده کرد. فرآیند فوق را ترجمه اسامی (Host Name Resoulation) می گویند.
موارد اختلاف بین NetBIOS و WinSock
برنامه های مبتنی بر NetBIOS می بایست قبل از ایجاد ارتباط با یک کامپیوتر، نام NetBIOS را به یک IP ترجمه نمایند.( قبل از ایجاد ارتباط نام NetBIOS به IP تبدیل خواهد شد.) در برنامه های مبتنی بر WinSock می توان از نام کامپیوتر (Host name) در مقابل IP استفاده کرد. قبل از عرضه ویندوز ۲۰۰۰ تمامی شبکه های کامپیوتری که توسط سیستم های عامل ویندوز پیاده سازی می شدند از NetBIOS استفاده می کردند. بهمین دلیل در گذشته زمان زیادی صرف ترجمه اسامی می گردید. ویندوز وابستگی به NetBIOS نداشته و در مقابل از سیستم DNS استفاده می نماید.
DNS NameSpace
همانگونه که اشاره گردید DNS از یک ساختار سلسله مراتبی برای سیستم نامگذاری خود استفاده می نماید. با توجه به ماهیت سلسله مراتبی بودن ساختار فوق، چندین کامپیوتر می توانند دارای اسامی یکسان بر روی یک شبکه بوده و هیچگونه نگرانی از عدم ارسال پیام ها وجود نخواهد داشت. ویژگی فوق درست نقطه مخالف سیستم نامگذاری NetBIOS است . در مدل فوق قادر به انتخاب دو نام یکسان برای دو کامپیوتر موجود بر روی یک شبکه یکسان نخواهیم نبود.بالاترین سطح در DNS با نام Root Domain نامیده شده و اغلب بصورت یک “.” و یا یک فضای خالی “” نشان داده می شود. بلافاصله پس از ریشه با اسامی موجود در دامنه بالاترین سطح (Top Level) برخورد خواهیم کرد. دامنه های .Com , .net , .org , .edu نمونه هائی از این نوع می باشند. سازمانهائی که تمایل به داشتن یک وب سایت بر روی اینترنت دارند، می بایست یک دامنه را که بعنوان عضوی از اسامی حوزه Top Level می باشد را برای خود اختیار نماید. هر یک از حوزه های سطح بالا دارای کاربردهای خاصی می باشند. مثلا” سازمان های اقتصادی در حوزه .com و موسسات آموزشی در حوزه .edu و … domain خود را ثبت خواهند نمود.شکل زیر ساختار سلسله مراتبی DNS را نشان می دهد.
در هر سطح از ساختار سلسله مراتبی فوق می بایست اسامی با یکدیگر متفاوت باشد. مثلا” نمی توان دو حوزه .com و یا دو حوزه .net را تعریف و یا دو حوزه Microsoft.com در سطح دوم را داشته باشیم .استفاده از اسامی تکراری در سطوح متفاوت مجاز بوده و بهمین دلیل است که اغلب وب سایت ها دارای نام www می باشند.
حوزه های Top Level و Second level تنها بخش هائی از سیستم DNS می باشند که می بایست بصورت مرکزی مدیریت و کنترل گردنند. بمنظور ریجستر نمودن دامنه مورد نظر خود می بایست با سازمان و یا شرکتی که مسئولیت ریجستر نمودن را برعهده دارد ارتباط برقرار نموده و از آنها درخواست نمود که عملیات مربوط به ریجستر نمودن دامنه مورد نظر ما را انجام دهند. در گذشته تنها سازمانی که دارای مجوز لازم برای ریجستر نمودن حوزه های سطح دوم را در اختیار داشت شرکت NSI)Network Solutions Intcorporated) بود. امروزه امتیاز فوق صرفا” در اختیار شرکت فوق نبوده و شرکت های متعددی اقدام به ریجستر نمودن حوزه ها می نمایند.
مشخصات دامنه و اسم Host
هر کامپیوتر در DNS بعنوان عضوی از یک دامنه در نظر گرفته می شود. بمنظور شناخت و ضرورت استفاده از ساختار سلسله مراتبی بهمراه DNS لازم است در ابتدا با FQDN آشنا شویم .
معرفی FQDN)Fully Qualified Domain Names)
یک FQDN محل یک کامپیوتر خاص را در DNS مشخص خواهد نمود. با استفاده از FQDN می توان بسادگی محل کامپیوتر در دامنه مربوطه را مشخص و به آن دستیابی نمود. FQDN یک نام ترکیبی است که در آن نام ماشین (Host) و نام دامنه مربوطه قرار خواهد گرفت . مثلا” اگر شرکتی با نام TestCorp در حوزه سطح دوم دامنه خود را ثبت نماید (TestCorp.com) در صورتیکه سرویس دهنده وب بر روی TestCorp.com اجراء گردد می توان آن را www نامید و کاربران با استفاده از www.testCorp.com به آن دستیابی پیدا نمایند.
دقت داشته باشید که www از نام FQDN مثال فوق نشاندهنده یک شناسه خدماتی نبوده و صرفا” نام host مربوط به ماشین مربوطه را مشخص خواهد کرد. یک نام FQDN از دو عنصر اساسی تشکیل شده است :
● Label : شامل نام حوزه و یا نام یک host است .
●Dots : نقطه ها که باعت جداسازی بخش های متفاوت خواهد شد.
هر lable توسط نقطه از یکدیگر جدا خواهند شد. هر lable می تواند حداکثر دارای ۶۳ بایت باشد. دقت داشته باشید که طول ( اندازه ) هر lable بر حسب بایت مشخص شده است نه بر حسب طول رشته . علت این است که DNS در ویندوز ۲۰۰۰ از کاراکترهای UTF-8 استفاده می نماید. بر خلاف کاراکترهای اسکی که قبلا” از آنان استفاده می گردید. بهرحال FQDN می بایست دارای طولی به اندازه حداکثر ۲۵۵ بایت باشد.
طراحی نام حوزه برای یک سازمان
قبل از پیاده سازی سیستم ( مدل ) DNS برای یک سازمان ، می بایست به نمونه سوالات ذیل بدرستی پاسخ داد:
– آیا سازمان مربوطه در حال حاضر برای ارتباط اینترانتی خود از DNS استفاده می نماید؟
– آیا سازمان مربوطه دارای یک سایت اینترنتی است ؟
– آیا سازمان مربوطه دارای یک حوزه( دامنه ) ثبت شده ( ریجستر شده ) است ؟
– آیا سازمان مربوطه از اسامی حوزه یکسان برای منابع مربوطه موجود بر روی اینترنت / اینترانت استفاده می نماید؟
استفاده از نام یکسان دامنه برای منابع اینترنت و اینترانت
استفاده از اسامی یکسان برای نامگذاری دامنه بمنظور استفاده از منابع موجود داخلی و منابع اینترنتی در مرحله اول بسیار قابل توجه و جذاب خواهد بود. تمامی ماشین ها بعنوان عضو یک دامنه یکسان محسوب و کاربران نیاز به بخاطر سپردن دامنه های متفاوت بر اساس نوع منبع که
ممکن است داخلی و یا خارجی باشد نخواهند داشت ..با توجه به وجود مزایای فوق، بکارگیری این روش می تواند باعث بروز برخی مشکلات نیز گردد. بمنظور حفاظت از ناحیه (Zone) های DNS از دستیابی غیر مجاز نمی بایست هیچگونه اطلاعاتی در رابطه با منابع داخلی بر روی سرویس دهنده DNS نگهداری نمود. بنابراین می بایست برای یک دامنه از دو Zone متفاوت استفاده نمود. یکی از Zone ها منابع داخلی را دنبال و Zone دیگر مسئولیت پاسخگوئی به منابعی است که بر روی اینترنت قرار دارند. عملیات فوق قطعا” حجم وظایف مدیریت سایت را افزایش خواهد داد.
پیاده سازی نام یکسان برای منابع داخلی و خارجی
یکی دیگر از عملیاتی که می بایست در زمان پیاده سازی دامنه های یکسان برای منابع داخلی و خارجی مورد توجه قرار دارد Mirror نمودن منابع خارجی بصورت داخلی است . مثلا” فرض نمائید که Test.com نام انتخاب شده برای دستیابی به منابع داخلی ( اینترانت) و منابع خارجی ( اینترنت ) است.درچنین وضعیتی دارای سرویس دهنده وب برا یاینترانت باشیم که پرسنل سازمان از آن
بمنظور دستیابی به اطلاعات اختصاصی و سایر اطلاعات داخلی سازمان استفاده می نمایند.در این مدل دارای سرویس دهندگانی خواهیم بود که بمنظور دستیابی به منابع اینترنت مورد استفاده قرار خواهند گرفت . ما می خواهیم از اسامی یکسان برای سرویس دهندگان استفاده نمائیم . در مدل فوق اگر درخواستی برای www.test.com صورت پذیرد مسئله به کامپیوتری ختم خواهد شد که قصد داریم برای کاربران اینترنت قابل دستیابی باشد. در چنین وضعیتی ما نمی خواهیم کاربران اینترنت
قادر به دستیابی به اطلاعات شخصی و داخلی سازمان باشند. جهت حل مشکل فوق Mirror نمودن منابع اینترنت بصورت داخلی است و ایجاد یک zone در DNS برای دستیابی کاربران به منابع داخلی ضروری خواهد بود. زمانیکه کاربری درخواست www.test.com را صادر نمائید در ابتدا مسئله نام از طریق سرویس دهنده داخلی DNS برطرف خواهد شد که شامل zone داخلی مربوطه است . زمانی که یک کاربر اینترنت قصد دستیابی به www.test.com را داشته باشد درخواست وی به سرویس دهنده اینترنت DNS ارسال خواهدشد که در چنین حالتی آدرس IP سرویس دهنده خارجی DNS برگردانده خواهد شد.
استفاده از اسامی متفاوت برای دامنه ها ی اینترنت و اینترانت
در صورتیکه سازمانی به اینترنت متصل و یا در حال برنامه ریزی جهت اتصال به اینترنت است می توان از دو نام متفاوت برای دستیابی به منابع اینترانتی و اینترنتی استفاده نمود. پیاده سازی مدل فوق بمراتب از مدل قبل ساده تر است . در مدل فوق نیازی به نگهداری Zone های متفاوت برای هر یک از آنها نبوده و هریک از آنها دارای یک نام مجزا و اختصاصی مربوط به خود خواهند بود. مثلا” می توان نام اینترنتی حوزه را Test.com و نام اینترانتی آن را TestCorp.com قرار داد.
برای نامگذاری هر یک از زیر دامنه ها می توان اسامی انتخابی را براساس نوع فعالیت و یا حوزه جفرافیائی انتخاب نمود.
Zones of Authority
DNS دارای ساختاری است که از آن برای گروه بندی و دنبال نمودن ماشین مربوطه براساس نام host در شبکه استفاده خواهد شد. بمنظور فعال نمودن DNS در جهت تامین خواسته ای مورد نظر می بایست روشی جهت ذخیره نمودن اطلاعات در DNS وجود داشته باشد.اطلاعات واقعی در رابطه با دامنه ها در فایلی با نام Zone database ذخیره می گردد. این نوع فایل ها، فایل های فیزیکی بوده که بر روی سرویس دهنده DNS ذخیره خواهند شد. آدرس محل قرار گیری فایل های فوق %systemroot%\system32\dns خواهد بود. در این بخش هدف بررسی Zone های استاندارد بوده که به دو نوع عمده تقسیم خواهند شد.