240 likes | 553 Views
DNS – Domain Name System. מבוא. מה זה בכלל DNS ?. ברשתות TCP/IP מקצים לכל מחשב ברשת (Host) כתובת IP . המשתמש יכול לפנות לשרת אם הוא יודע את כתובת IP שלו. שיטה זו נוחה (אולי?) למחשבים, אך וודאי לא לאנשים.
E N D
מה זה בכלל DNS ? • ברשתות TCP/IP מקצים לכל מחשב ברשת (Host) כתובת IP. המשתמש יכול לפנות לשרת אם הוא יודע את כתובת IP שלו. שיטה זו נוחה (אולי?) למחשבים, אך וודאי לא לאנשים. • מערכת DNS מאפשרת למשתמש לאתר מחשב ברשת TCP/IP באמצעות שם במקום באמצעות כתובת IP שלו. • המערכת מתבססת על שרתים ייעודיים – תפקידם לנהל טבלה של שמות וכתובות, ולספק מידע זה ללקוחות לפי דרישה.
קובץ Hosts • שורשיה של מערכת DNS של האינטרנט בקובץ טקסט צנוע בשם Hosts. קובץ זה הכיל רשימה של כתובות IP ושמות עבור כתובות אלו. את הקובץ היו מאחסנים בתחנה, וכך בכל פעם שמשתמש היה פונה לשם מחשב, התחנה הייתה מאתרת את הכתובת המתאימה בקובץ זה. • כאשר נוספו מחשבים חדשים לרשת, היה צורך לעדכן את קובץ Hosts בכל המחשבים ברשת. בשלב מסוים שיטה זו הפכה לבלתי מעשית. מערכת DNS פותחה כמענה לבעיות הגידול של האינטרנט.
מאפיינים עיקריים • מתוכננת כך שתתאים לרשתות מכל גודל שהוא • מכילה מנגנונים להגדלת הביצועים בהתאם לדרישות של כל רשת • מאפשרת יצירת תצורה עמידה בפני תקלות • מאפשרת חלוקת האחריות הניהולית והאצלת סמכויות • מערכת מבוזרת - כל שרת מכיל רק חלק מהרשימה כולה. • תקן פתוח של האינטרנט • מערכת DNS היא מערכת התשתית של האינטרנט לאיתור כתובות ושמות. זהו תקן רשמי. • שמות ברשת האינטרנט העולמית מוסדרים על ידי גוף מתאים בשת ICANN. • שמות ברשת פרטית אינם מוסדרים.
איך זה עובד ? • שרתי DNS מנהלים טבלאות המכילות שמות וכתובות. • לכל תחנה מוגדר שרת DNS אחד לפחות. התחנה פונה לשרת זה עבור כל בקשות DNS שלה. • שרת DNS מבצע שני תפקידים עקרוניים: • ניהול רשימת הכתובות ברשת שלו – הרשת שעליה הוא אחראי. השרת יענה ללקוחות המבקשים מידע אודות מחשבים שרשומים ברשימה זו. • איתור כתובות של מחשבים ברשתות אחרות – כאשר לקוח שואל אודות שם שאינו מנוהל על ידי השרת עצמו (שם ב Domain אחר), השרת ינסה לאתר את התשובה עבור הלקוח – השרת יפנה לשרתי DNS אחרים ברשת ויאתר את הנתונים הדרושים.
Domains - תחומים • Domain הוא היחידה הבסיסית של DNS. Domain הוא יחידה שיש לה מנהל, ובתוכה ניתן להגדיר מחשבים (Hosts),תת-תחומים (Sub Domains), מחשבים ומשאבים נוספים. • במערכת DNS של האינטרנט העולמי, נקבעו מספר תחומים ראשיים. אלו מכוניםTop Level Domains - TLD בקיצור. • השמות העיקריים שמוגדרים כיום: • COM – חברה מסחרית • ORG – ארגון ללא מטרות רווח • MIL – צבא • GOV - ממשל • EDU – מוסד חינוכי • NET – ספק גישה לאינטרנט • XX – קוד מדינה, למשל .il • בין תחומים יכול להתקיים יחס הירארכי (אב-בן). למשל, אפשר ליצור תחום בשם shtut.com. התו "." (נקודה) מפריד בין רמות הירארכיות. Shtut הוא תת תחום של com. • שם התחום חייב להיות ייחודי ברמה שמעליו – למרות שאין אפשרות ליצור שני תחומים בשם Shtut.com, מותר בהחלט ליצור בנוסף את Shtut.netץ ברשת האינטרנט, עליך לרכוש (לשכור) שם תחום, כדי להבטיח שאיש אינו רשאי להשתמש בשם זה מלבדך. • מנהל של תחום כלשהו, רשאי לחלק אותו לתת תחומים נוספים ללא מגבלות. ברשת האינטרנט, מרגע ששכרת שם תחום, תוכל ליצור תת-תחומים כראות עיניך.
מבנה שם DNS • שם DNS נבנה מהפרטי אל הכללי, כאשר התו "." (נקודה) מפריד בין רמות הירארכיות. למשל: • www.support.shtut.comכלומר המחשב www בתת-התחום support, שתחת התחום shtut, שתחת TLDcom. • בכל רמה, על השם להיות ייחודי. • שם מלא של DNS מכונה FQDN - Fully Qualified Domain Name
כיצד מאתרים שם ב DNS ? • כאשר שרת DNS מקבל שאילתה מלקוח, הוא בודק האם הוא השרת האחראי על התחום המבוקש – האם כתובת IP שהלקוח מחפש רשומה בבסיס הנתונים של שרת DNS עצמו. למשל, אם לקוח ברשת של חברת Microsoft פונה לכתובת www.microsoft.com, כתובת IP הדרושה רשומה בתוך שרת DNS של חברת Microsoft. השרת מאתר את הכתובת, ומחזיר אותה ללקוח. • אם הכתובת הדרושה אינה שמורה בבסיס הנתונים המקומי, שרת DNSפונה עבור הלקוח אל שרת DNS הדרוש. • שרת DNS של הלקוח מאתר את TLD הדרוש. למשל, COM.כעת, שרת DNS של הלקוח צריך לפנות לשרת DNS של COM ולאתר שם את ה Domain המבוקש.למשל, אם אנו מנסים לאתר את השרת www.google.com, שרת DNS שלנו מנסה לאתר את שרת DNS של Google. לצורך זה, הוא אמור לפנות לשרת DNS המכיל את רשומות התחום העליון COM.
Root • כאמור, אין אף שרת במערכת שמכיל את כל בסיס הנתונים – שמות כל המחשבים וכתובתם. מידע זה מבוזר (מפוזר)במערכת על גבי שרתים שונים. כל שרת אחראי על התחום שלו. • ברשת האינטרנט, שרתי TLD מנהלים את רשימת המחשבים והכתובות של domains. למשל, שרת המחזיק את בסיס הנתונים של COM מכיל, עבור כל שם Domain, את כתובת שרתי DNS של אותו domain. • עבור Microsoft.com רשומה כתובת IP של שרתי DNS של Microsoft.com • עותק של בסיס הנתונים של כל TLD (למשל, של COM) מאוחסן על מספר רב של שרתים ברחבי העולם. למשל, על ידי ממשלות, אוניברסיטאות, ספקי שרות וכדומה. • רשימת הגופים שמנהלים שרת TLD כזה משתנה מפעם לפעם. למשל אם ממשלה כלשהי מחליטה להוסיף עוד שרת כזה. • על מנת לאפשר גמישות מרבית במערכת, משתמשים ברמה אחת נוספת של שרתים – שרתי ROOT. • המטרה: להקל על הוספה והסרה של שרתים המאחסנים TLD כלשהו. • שיטת הפעולה: • רשימת שרתי Root אינה משתנה, או משתנה אחת לכמה שנים בלבד. • כל שרת DNS באינטרנט מכיר אותם לפי כתובות IP שלהם, שהינן קבועות. • במהלך התקנת שרת DNS, מגדירים את הרשימה הזאת באופן אוטומטי לשרת. • שרת ROOT מכיל תמיד רשימה מעודכנת של כל שרתי TLD. • כאשר שרת DNS מנסה לאתר שרת DNS אחר כלשהו, הוא פונה ראשית כל ל Root. תהליך זה מוצג בשקף הבא.
איתור כתובת לפי שם – ההתחלה נתונים: www.cool.com: 200.1.8.101 Root servers: 62.5.10.3 78.15.0.52 … Cool.com IP: 200.1.8.X Internet לשרת Rootכלשהו www.magniv.com המתן...אני מברר... WWW DNS IP: 200.1.8.4 DNS: 200.1.8.30 IP: 200.1.8.30 IP: 200.1.8.101
איתור כתובת לפי שם – המשך נתונים: Com:196.12.0.8, 62.68.53.120 … נתונים: dns.magniv.com: 120.18.3.80 … ROOT ROOT Com Com Net Internet IP: 78.15.0.52 IP: 62.5.10.3 IP: 196.12.0.8 IP: 62.68.53.120 2 Cool.com IP: 200.1.8.X Magniv.com IP: 120.18.3.X 3 DNS WWW 1 4 5 נתונים: www.magniv.com: 120.18.3.15 … DNS WWW IP: 120.18.3.80 IP: 120.18.3.15
חלוקת האחריות לאיתור שם • מערכת DNS היא בסיס נתונים מבוזר. לפני שאפשר לאתר את הכתובת של מחשב לפי שמו, ראשית יש לאתר היכן הנתונים מאוחסנים במערכת כולה. • לקוח רשאי לבצע סדרה של שאילתות, החל מ Root ועד לשרת DNS האחראי על רשומה מסוימת. כל שאילתה כזו מכונה או “Iterative Query”. הכוונה שהלקוח יצטרך שוב ושוב לשלוח שאילתות, כשהוא מועבר משרת לשרת בדרך לשרת הנכון. • לקוח רשאי גם להורות לשרת DNS שיאתר את השם בשבילו – השרת ישאל את שרתי DNS האחרים עד לקבלת תשובה. כאשר הלקוח מבקש פעולה זו משרת, מכנים זאת “Recursive Query” – שאילתה רקורסיבית. • שאילתה רקורסיבית יחידה תגרור בד"כ סדרה של שאילתות איטרטיביות. את התהליך שבו שרת מבצע סדרה של איטרציות בתגובה לשאילתה יחידה מכנים Recursion – רקורסיה.
דומה: Recursion and Iteration נתונים: Com:196.12.0.8, 62.68.53.120 … נתונים: dns.magniv.com: 120.18.3.80 … ROOT ROOT Com Com Net Internet IP: 78.15.0.52 IP: 62.5.10.3 IP: 196.12.0.8 IP: 62.68.53.120 Iterative Queries Recursive Query Cool.com IP: 200.1.8.X Magniv.com IP: 120.18.3.X DNS WWW נתונים: www.magniv.com: 120.18.3.15 … DNS WWW IP: 120.18.3.80 IP: 120.18.3.15 Recursion
אחסון פיזי ב DNS • על מנת לאפשר גמישות מרבית בניהול המערכת, ישנה הפרדה בין החלוקה הלוגית של המערכת – חלוקה ל domains, לבן החלוקה הפיזית והאדמיניסטרטיבית של המערכת. לשם כך משתמשים ב zones – אזורים. • מה זה Zone ? • כינוי ליחידה האדמיניסטרטיבית של DNS. ZONE הוא קובץ בסיס הנתונים המכיל נתונים אודות Domain אחד או יותר. • כאשר יוצרים Domain הוא נוצר ב Zone אחד בלבד. • כאשר יוצרים Sub Domain, מותר לאחסן אותו באותו zone כמו ה domain האב, או במיקום פיזי שונה, כלומר ב zone שונה. • אפשר לאחסן מספר Sub Domains ב Zone יחיד. • מתי משתמשים ב Zone ? • נניח שאנחנו מנהלים את מערכת DNS עבור חברה לייצור גופי תאורה בשם shemesh. החברה משתמשת בשם shemseh.com כשם התחום שלה. אפשר ליצור Sub domain בשם usa.Shemesh.com, כדי לייצג את כל המחשבים בסניפים בארה"ב. • כאשר ניצור את usa, נוכל להחליט האם לנהל את domain בעצמנו, או לאפשר למנהל רשת אחר בארגון לנהל את ה Domain. במידה ו usa יווצר באותו zone כמו shemesh.com, הניהול יהיה מקומי, וכן האחסון. במידה וניצור את usa כ zone חדש, נוכל לבחור היכן לאחסן אותו (מקומית, או על שרת DNS אחר) ובהתאם, לקבוע מי מנהל ה zone.
תפקידי שרתים • ב DNS ישנם שני תפקידים עקרוניים לשרתים: • Primary הוא שרת המנהל zone אחד או יותר. • Secondary הוא שרת המהווה גיבוי ל zone אחד או יותר (מכיל העתק לקריאה בלבד של קובץ zone). • בנוסף, שרת יכול לפנות לשרתים אחרים במערכת: • ליצור קשר עם Root ולבצע את החיפוש כפי שתואר בשקף הקודם • להפנות שאילתות ישירות לשרת אחר כלשהו, ולצפות לתשובה ממנו. ("הפלת תיקים...) • (non) Forwardingהוא שרת שמפנה שאילתות לטיפולם של שרתים אחרים. ב DNS כל בקשה שטופלה נשמרת בזיכרון המחשב, ולכן יעילותו של שרת כזה גבוהה מאוד. • Forwarderהוא שרת ששרתים אחרים מפנים אליו שאילתות, ומצפים ממנו לתשובה. • מותר לשרת אחד לתפקד במספר תפקידים: להוות שרת Primary עבור zone אחד, ו Secondary עבור zone שני ו- forwarding עבור כל zone אחר. • כאשר (non) Forwarding server אינו מכיל אף zone, הוא מכונה Slave או Caching only.
תקשורת במערכת DNS • ישנם שני סוגים עקרוניים של תעבורה ב DNS: • תעבורה בין לקוחות ושרתים לצורך איתור שמות • תעבורה בין שרתי Primary ו Secondary כדי לעדכן את קובץ zone (תעבורת סנכרון) • DNS משתמש ב port 53 כדי לשלוח ולקבל נתונים • לרוב, התקשורת מתבצעת באמצעות UDP – כדי לצמצם את תעבורת הרשת. ניתן גם להשתמש ב TCP לפי הצורך. • תקשורת בין לקוחות לשרתים אינה מוצפנת. תקשורת בין שרתים (סנכרון) יכולה להיות מוצפנת, בהתאם להגדרות השרת. • כל תחנה מכירה את שרתי DNS שלה לפי כתובתם, לא לפי שמם. לכן, אין מניעה ששרת DNS ימצא ברשת פיזית אחרת מאשר התחנה.
סוגי Zone • Primary • העותק הראשי של Zone • מאפשר ביצוע שינויים • Secondary • עותק משני, מסונכרן, של Primary Zone. • מהווה גיבוי למקרה של כשל בשרת Primary . • משפר את זמני התגובה של המערכת – חלק מהלקוחות פונים ל Primary וחלק ל secondary. • עותק לקריאה בלבד. • מסונכרן אחת לפרק זמן. פעולת הסנכרון עלולה לפגוע בביצועי הרשת . • Stub • מכיל רק את שמות שרתי DNS של Domain אחר. • המטרה לשפר את מהירות הפנייה ל Domain – השרת אינו צריך לשוחח עם Root כדי להפנות שאילתות לשרתי DNS של Domain כזה. הוא פונה אליהם ישירות.
צעד קדימה, שניים אחורה (סקובידו) • המערכת מאפשרת תרגום דו סיטרי: שמות לכתובות, וכן כתובות לשמות. • כדי לאפשר זאת, יש שני סוגים של zones: • Forward lookup zone מתרגם שמות לכתובות • Reverse lookup zone מתרגם כתובות לשמות. • מאוחסן תמיד תחת השם השמור <ip>.in-addr.arpa • לא הכרחי לתפקוד המערכת • מאפשר אימות הזהות של לקוח או שרת שמבקש לשוחח עם מחשב אחר.
ניהול בסיס הנתונים • עד היום, מנהלי הרשת היו מעדכנים את DNS באופן ידני – יוצרים רשומות ומעדכנים אותן לפי הצורך. הדבר חייב שימוש בכתובות IP קבועות עבור שרתים. • בגלל העומס הרב בעדכון המערכת, לא מקובל לרשום תחנות ב DNS אלא שרתים בלבד. הדבר גם אינו דרוש משום שתחנה, מעצם הגדרתה, אינה משתפת נתונים ברשת ולכן אין לאף אחד סיבה לפנות אליה מיוזמתו. • כיום, קיימת שיטה לעדכון אוטומטי של רישומי DNS – מחשב כלשהו מופעל, ואז מדווח ל DNS כי הוא קיים – מה שמו, ומה כתובת IP הנוכחית שלו. • מאפשר שימוש בכתובות IP דינאמיות • כך אפשר לרשום כל תחנה ב DNS – אז קל לאתר תחנות ולעקוב אחר התצורה שלהן, וכן לנהל אותן מרחוק. • שיטה זו מכונה DDNS – Dynamic DNS • כעת כמות השינויים בבסיס הנתונים של DNS גדולה בהרבה והדבר מצריך התאמות מיוחדות.
סוגי רשומות ב DNS • SOA - Start Of Authority (נקודת ההתחלה של סמכות) • מייצג Domain ומפרט את שם ה Domain וכמה תכונות שלו. • NS – Name server (שרת DNS) • מייצג שרת אחראי על Domain כלשהו (כלומר מכיל עותק ראשי או עותק משני של ה Zone). • A (host) – מחשב • מייצג מחשב רגיל כלשהו ב domain. במובן הקלאסי, רק לשרתים (קבצים, דואר...) נוצרו רשומות A. כיום, באמצעות "עדכון אוטומטי" נוצרות רשומות לכל השרתים ולכל המחשבים ברשת. • Cname (Canonical Name, Alias) – שם נרדף • שם נוסף לרשומת A. מאפשר להקצות מספר שמות לאותה כתובת IP. • SRV (Service Record) – רשומה של תפקיד (שירות) • מייצג תפקיד ברשת. למשל שרת DC או Global Catalog. מערכת AD מתבססת על סוג זה של רשומות. • זמין רק בגרסאות אחרונות של DNS. • PTR (Pointer) – מצביע • מייצג רשומת שם לכתובת (Reverse). • מאוחסן רק ב .in-addr.arpa • MX (Mail eXchanger) – שרת דואר • מייצג שרתי SMTP בלבד • כך ניתן לאתר את שרת הדואר של Domain כלשהו, כדי להעביר אליו הודעות המיועדות למשתמשים ב Domain הזה.
שימוש במטמון ב DNS • במערכת DNS מתבצע שימוש מאסיבי באחסון מקומי של רשומות: • כל שרת יכול לאחסן באופן מקומי רשומות שקיבל בתגובה לשאילתות. השרת יענה על שאילתות מתוך המטמון במידת האפשר. לאורך הזמן, המטמון הופך אפקטיבי יותר ויותר. • כל לקוח יכול לאחסן באופן מקומי רשומות שקיבל בתגובה לשאילתות. הלקוח יענה על שאילתות מתוך המטמון המקומי במידת האפשר. • עבור כל רשומה ב DNS, מוגדר כמה זמן מותר למחשבים אחרים לאחסן את הרשומה במטמון שלהם. ערך זה מכונה TTL (Time To Live). • ככל שזמן זה ארוך יותר, תעבורת DNS אל השרת האחראי על ה Domain תהיה מצומצמת יותר. • ככל שזמן זה קצר יותר, שינויים בכתובות IP יופצו לשרתים אחרים וללקוחות במהירות גבוהה יותר. • בעת יצירת רשומת SOA (כלומר יצירת Domain חדש) מוגדר TTL ברירת המחדל. אם לרשומה כלשהי מוגדר ערך אחר, הגדרות הרשומה עוקפות.