310 likes | 490 Views
شبکه های کامپیوتری. مظفر بگ محمدی نام گذاری و DNS. نام گذاری. برای تشخیص منابع به نام گذاری نیازداریم بعد از نامگذاری، لازم است مکان منابع را پیدا کنیم. نحوهی نامگذاری منابع؟ - سلسله مراتب نام گذاری چگونه محل منابع را به طور کارآ تعیین می کنیم؟
E N D
شبکه های کامپیوتری مظفر بگ محمدی نام گذاری و DNS
نام گذاری • برای تشخیص منابع به نام گذاری نیازداریم • بعد از نامگذاری، لازم است مکان منابع را پیدا کنیم. • نحوهی نامگذاری منابع؟ - سلسله مراتب نام گذاری • چگونه محل منابع را به طور کارآ تعیین می کنیم؟ -DNS یک نگاشت از نام ← مکان(آدرس IP) است. • چالش: چگونه این کار را در مقیاس وسیع و در سطح گسترده انجام دهیم؟
/etc/hosts • چرا از /etc/hostsاستفاده نکنیم؟ -نامگذاری اولیه برای نگاشت آدرسها در سیستم یونیکس - فضای نام مسطح - جستجوی نگاشت در /etc/hosts - نگه داری کپی اصلی SRI - بارگیری منظم • تعداد میزبانها مرتب افزایش مییافت: - بارگیری های خیلی بیشتر - بهروز رسانی های خیلی بیشتر
اهداف سیستم نام گذاری حوزه • اساساً یک پایگاه داده توزیع شده از نگاشت های نام به آدرس IP در سطح گسترده است. • اهداف : - قابلیت مقیاس پذیری - عدم وابستگی به یک سرور مرکزی - استحکام
در کلاس IN : Type=A name is hostname value is IP address Type=NS name is domain (e.g. foo.com) value is name of authoritative name server for this domain RR format: (class, name, value, type, ttl) DNS Records DB شامل چندتایهای است به نام رکورد منابع (RRs) است. کلاسها = اینترنت(IN)، Chaosnet(CH)و غیره هر کلاس مقادیر خود را بر اساس type تعریف می کند • Type=CNAME • name is an alias name for some “canonical” (the real) name • value is canonical name • Type=MX • value is hostname of mailserver associated with name
خواص ردیفهای جدول DNS • نگاشت های متفاوتی وجود دارد: - یک حالت ساده: نگاشت 1-1 بین نام حوزه و آدرس IP • Kittyhawk.cmcl.cs.cmu.edu نگاشت می شود به 128.2.194.242 - نگاشت چندین اسم حوزه به یک آدرس IP • Eecs.mit.edu و cs.mit.edu هر دو به 18.62.1.6 نگاشت می شوند. - نگاشت یک نام حوزهی منفرد به چندین آدرس IPگوناگون • aol.com و www.aol.comبه آدرس های IP گوناگونی نگاشت می شوند.
دید برنامه نویس از DNS • از لحاظ مفهومی، برنامه نویسان می توانند پایگاه داده DNS را به صورت مجموعه ایی از میلیون ها ساختار ردیفی از میزبانها ببینند. هر میزبان دارای یک ساختار ردیف میزبان در جدول DNS به شکل زیر است: • in_addr ساختاری متشکل از 4 بایت آدرس IP است. • توابعی برای بازیابی ردیفهای میزبانهای از DNS: • : gethostbynameکلید جستجو نام DNS میزبان است. • gethostbyaddr : کلید جستجو آدرس IP است. /* DNS host entry structure */ struct hostent { char *h_name; /* official domain name of host */ char **h_aliases; /* null-terminated array of domain names */ int h_addrtype; /* host address type (AF_INET) */ int h_length; /* length of an address, in bytes */ char **h_addr_list; /* null-terminated array of in_addr structs */ };
طراحی DNS : تعیین سلسله مراتب • هر نود در این سلسله مراتب فهرستی از اسامی که به پسوند یکسانی منتهی میشوند را نگهداری میکند. • پسوند = یک مسیر از پایین به بالا در درخت • با توج به درخت روبرو، اسامی زیر کجا ذخیره شده اند؟ • Fred.com • Fred.edu • Fred.wisc.edu • Fred.cs.wisc.edu • Fred.cs.cmu.edu root (.) org com uk net edu mit gwu ucb wisc cmu cs ee wail
طراحی DNS : تعریف نواحی • محدوده = قسمت هایی پیوسته از حوزهی نام مثل کل درخت، یک نود یا یک زیر درخت • هر محدوده به مجموعهای از سرورهای نام منتسب میشود: • این سرورها نگاشتهای محدوده را میدانند. root org ca com uk net edu mit gwu ucb cmu bu cs ece زیر درخت cmcl یک نود منفرد کل درخت
طراحی DNS • برای ایجاد یک محدوده جدید، باید صاحب یکی از محدودههای فعلی را متقاعد کنید که یک زیر-محدوده درست کند. • رکوردهای داخل محدوده در چندین خدمتگزار نام ذخیره میشوند. • سرورهای اصلی به طور دستی به روز رسانی میشوند. • سرورهای ثانویه از طریق انتقال محدودهی حوزه ی نام به روز رسانی میشوند. • انتقال محدوده به صورت یکجا و از طریق پیکربندی خدمتگزار DNS انجام می شود و برای اینکار از TCP استفاده می شود تا دادههای دو خدمتگزار مثل هم باشند. • نود صاحب محدوده یک رکورد NS برای زیر-محدوده ایجاد می کند. • این رکورد به خدمتگزار نام زیر-محدوده ی جدید اشاره میکند. • به عنوان مثال • cs.wisc.edu از طریق مدیریتwisc.edu ایجاد می شود .
سرورها یا resolver ها • هر میزبان یک reolver دارد. • معمولاْ یک کتابخانه است که کاربردها آن را لینک می کنند. • Resolver با خدمتگزار نام محلی تماس میگیرد. • خدمتگزار نام محلی به صورت دستی پیکربندی میشود. (مثل /etc/resolv.conf) • خدمتگزار نام: • یا مسؤل یک محدوده است. • نگاشت تمامی نامهای آن محدوده را می داند. • یا خدمتگزارهای نام زیر-محدوده را میشناسد. • این سرورها اسامی داخل زیر-محدوده را بهتر می شناسند. • اگر نگاشت یک نام را ندانیم، مستقیما از ریشه می پرسیم.
مسئول محدوده ی ریشه هستند تقریباًِ 13 خدمتگزار نام ریشه در جهان وجود دارد. اسامی آنها به صورت: {a-m}.root-servers.net است. اگر خدمتگزار نام محلی نتواند یک نام را resolve کند سراغ یکی از خدمتگزارهای نام ریشه می رود. خدمتگزار محلی با اسم خدمتگزارهای ریشهی معروف پیکربندی می شوند. DNS : خدمتگزارهای نام ریشه
TLD و سرور های مسئول • حوزه های سطح بالا(TLD): مسئولcom, org, net, edu و تمام حوزه های سطح بالای کشورها از قبیل uk,fr,ca, و jp هستند. • شرکت راه حل های شبکه از سرورهای TLD مربوط به حوزه com نگهداری می کند. • شرکت Educause از حوزه edu نگهداری میکند. • سرورهای مسئول DNS: سرورهای DNS سازمانها مسئول تدارک نگاشت معتبر بین نام میزبانها و آدرس IP آنها برای سرورهای سازمان (شامل Web , mail) هستند. • می توان از طریق سازمان یا فراهم کردن خدمات از آنها نگهداری کرد.
خدمتگزار نام محلی • هر (ISP محلی ، شرکت ، دانشگاه) یک ISP دارد. - که به آن «خدمتگزار نام پیش فرض» نیز گفته میشود. • زمانی که میزبان یک جستجوی DNS داشته باشد، جستجو را به سرور DNS محلی ارسال می کند. - سرور DNS محلی به صورت یک میانجی، جستجو را به سلسله مراتب میفرستد. - برای جستجوی نام میزبان های متداول (مثل گوگل) سرعت جستجو به میزان قابل ملاحظهای افزایش مییابد.
مثالی از جستجو • قدم های لازم برای پیدا کردن نگاشت www.wisc.edu • کاربرد gethostbyname() (resolver) را فرا می خواند. • resolver با خدمتگزار نام محلی (S1) ارتباط برقرار می کند • S1 از سرور ریشه (S2) در مورد (www.wisc.edu) سوال میکند. • S2 رکورد NS مربوط به wisc.edu(S3) را به عنوان پاسخ برمیگرداند. • رکورد A مربوط به S3 را چگونه پیدا کنیم؟ • این معمولاً بخشی از اطلاعات اضافی است که در جواب برمیگردد و به آن پیش واکشی میگویند. • S1 از S3 راجع به www.wisc.edu میپرسد. • S3 نیز رکورد A مربوط به www.wisc.edu را برمیگرداند. • ممکن است چندین رکورد A در جواب برگردد. معنای این کار چیست؟
قالب پیام DNS Identification Flags • شناسه : • 16 بیت برای جستجو، پاسخ نیز از شناسهی یکسانی استفاده میکند. • پرچمها : • جستجو یا پاسخ • درخواست بازگشت • امکان استفاده از بازگشت • پاسخ معتبر است. 12 bytes No. of Questions No. of Answer RRs No. of Authority RRs No. of Additional RRs Name, type fields for a query Questions Answers (variable number of resource records) RRs in response to query Authority (variable number of resource records) Records for authoritative servers Additional Info (variable number of resource records) Additional “helpful info that may be used
جستجوی بازگشتی : سرور به جای ما دست به کار شده و برای اطلاعات بیشتر جستجو می کند(بازگشتی). فقط جواب پایانی یا «پیدا نشد» را برمی گرداند. جستجوی تکراری: جواب های سرور به اندازه ای است که می داند. (تکراری) «من این اسم را نمی دانم اما از این سرور بپرس» تاثیر حجم کار در انتخاب؟ سرور محلی معمولاً بازگشتی کار میکند. سرور ریشه و راه دور به صورت تکراری کار میکند. خدمتگزار نام محلی dns.eurecom.fr روش های جستجو خدمتگزار نام ریشه 2 جستجوی تکراری 3 خدمتگزار نام میانی dns.umass.edu 4 5 6 7 خدمتگزار نام مسئول dns.cs.umass.edu 1 8 میزبان متقاضی surf.eurecom.fr gaia.cs.umass.edu
حجم کار و حافظه ی نهان • جواب های DNS در حافظه ی نهان ذخیره میشوند. • جواب های سریع برای پرس وجوهای تکراری • دیگر پرس و جوها ممکن است از بخشی از پرس وجوهای قبلی استفاده شوند • مثل رکوردهای NS برای حوزها • پرس و جوهای منفی DNS نیز در حافظه ی نهان ذخیره می شوند. • مجبور نیستیم که اشتباهات قبلی را تکرار کنیم. • از قبیل غلط املایی، جستجوی رشته های داخل resolv.conf • دادههای ذخیره شده در حافظه ی نهان بعد از مدتی حذف میشوند. • طول عمر (ttl) داده ها به وسیله دارنده ی داده تعیین می شود. • هنگام ارسال رکورد ttl آن نیز ارسال میشود. • معمولاً خدمتگزار نام محلی اطلاعات سرورهای TLD را در حافظهی نهان ذخیره میکند. • بنابراین تعداد مراجعات به خدمتگزارهای نام ریشه کمتر میشود.
www.cs.wisc.edu NS ns1.wisc.edu A www=IPaddr مثالی از DNS در عمل root & edu DNS server www.cs.wisc.edu ns1.wisc.edu DNS server NS ns1.cs.wisc.edu resolver مشتری خدمتگزار DNS محلی ns1.cs.wisc.edu DNS server
جستجوهای بعدی root & edu DNS server ftp.cs.wisc.edu wisc.edu DNS server مشتری خدمتگزارDNS محلی ftp.cs.wisc.edu cs.wisc.edu DNS server ftp=IPaddr
درج رکوردها در DNS • مثال: ساختن «networkutopia» • ثبت کردن نام networkutopia.com در یک ثبت کننده (مثل شرکت راه حلهای شبکه) • باید به ثبت کننده نام و آدرس IP خدمتگزارهای نام مسئول (اصلی و کمکی) خودمان را اعلام کنیم. • ثبت کننده دو RRs در خدمتگزار TLD حوزه ی com وارد میکند. (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) • در خدمتگزار مسئول یک رکورد نوع A برای www.networkutopia.com و یک رکورد نوع MX برای networkutopia.com قرار دهید. • چگونه مردم آدرس های IP سایت شما را یاد می گیرند؟
پیش واکشی • خدمتگزارهای نام می توانند داده های اضافی را به جواب ها اضافه کنند. • این کار معمولا در پیش واکشی استفاده می شود. • cname/mx/ns معمولا به نام یک میزبان دیگر دلالت دارند. - پاسخ ها شامل آدرسی از میزبان است که به این بخش اضافی اشاره میکنند.
قابلیت اطمینان • چندین نسخه از یک خدمتگزار DNS ایجاد میکنیم. • اگر بیش از یک خدمتگزار روشن باشد، سرویس DNS برقرار است. • می توان پرس و جوها را بین خدمتگزارها تقسیم کرد. • استفاده از UDP برای پرسش ها • اگر به قابلیت اطمینان نیازمندیم باید روی UDP پیاده سازی شود. • چرا نباید فقط از UDP استفاده کنیم؟ • سعی می شود در سرعت کار نکردن سرور اصلی از سرورهای فرعی استفاده کنیم • سرور های یکسان را به صورت عقب گرد نمایی آزمایش کنیم • شناسه یکسان برای همه پرسش ها • مهم نیست کدام یک جواب دهند.
unnamed root edu arpa in-addr cmu cs 128 2 cmcl 194 kittyhawk 128.2.194.242 242 DNS معکوس • وظیفه • آدرس IP معلوم است، می خواهیم نام را پیدا کنیم. • چه موقع به آن نیاز داریم؟ • روش • یک سلسله مراتب مجزا بر اساس اسامی IP نگهداری کنید. • نوشتن 128.2.194.242 به صورت 242.194.2.128.in-addr.arpa • چرا آدرس معکوس شد؟ • مدیریت • هر مسئول آدرس های IP مربوط به خود را مدیریت میکند. • CMU مسئول حوزهی نام 2.128.in-addr.arpa است.
TLDهای جدید • .info general info • .biz businesses • .aero air-transport industry • .coop business cooperatives • .name individuals • .pro accountants, lawyers, and physicians • .museum museums • تاکنون فقط .info, .biz, .name فعال شده اند.
F روزانه 270,000,000+ سوال را جواب میدهد. دیگرسرورها بار مشابهی دارند TLD serverها در هر روز 5.000.000.000 پرسش را جواب می دهند واضح است DNS بدون موارد زیر از کار میافتد: سلسله مراتب پردازش توزیع شده حافظه ی نهان اگر DNS ناموفق باشد، خدمات اینترنت از کار می افتند! خلاصه