עודכן לפני חודש
כשאתה מקליד שם דומיין בדפדפן שלך, קורה משהו מוזר. המחשב שלך שואל שרת שלא יודע את התשובה. אותו שרת שואל שרת אחר שגם הוא לא יודע. זה ממשיך עד שלבסוף, איזה שרת איפשהו אומר: "כן, אני יודע. הנה כתובת ה-IP."
זה העיצוב. DNS הוא מערכת של הפניות, לא תשובות.
השורש לא יודע היכן נמצא google.com. הוא רק יודע מי מטפל ב-.com. וזה מספיק. כך מתרחשים מיליארדי חיפושי DNS מדי יום מבלי שהמערכת תקרוס תחת משקלה שלה.
העץ ההפוך
DNS פועל כעץ הפוך. בראשו יושב השורש, המיוצג על ידי נקודה אחת. מתחתיו מתפצלים דומייני הרמה העליונה—.com, .org, .uk. מתחתם, הדומיינים שאתה מקליד בפועל: example.com, connected.app. ומתחתם, תתי-דומיינים כמו www או blog או api.
כשאתה מחפש את www.example.com, ה-DNS קורא אותו מימין לשמאל: שורש ← .com ← example.com ← www. כל רמה מאצילה לרמה הבאה. הנקודה הסופית שאתה אף פעם לא מקליד—www.example.com.—מייצגת את השורש שממנו מתחילה כל בדיקה.
מבנה זה פותר בעיה יסודית: אף גורם יחיד לא צריך לתחזק מסד נתונים של כל דומיין בעולם. השורש יודע על TLDs. ה-TLD של .com יודע על דומיינים שמסתיימים ב-.com. ו-example.com יודע על תתי-הדומיינים שלו עצמו. כל רמה מתחזקת רק את החלק שלה.
שרתי שורש: שלוש עשרה כתובות, כמעט אלפיים מכונות
בראש יושבים שרתי השמות של השורש—שלושה עשר שרתים לוגיים המזוהים באותיות A עד M. אבל "שלושה עשר" הוא מטעה. כל אות מייצגת כתובת IP, וכל כתובת IP מוגשת על ידי מכונות פיזיות רבות המפוזרות ברחבי העולם באמצעות anycast. כשאתה שולח שאילתה ל-a.root-servers.net, אתה מגיע לאחד משרתי ה-"A" הקרוב אליך ביותר.
נכון לשנת 2024, כמעט 2,000 מופעי שרתי שורש פועלים ברחבי הגלובוס1. הם מנוהלים על ידי שתים עשרה ארגונים עצמאיים: Verisign מפעילה את A ו-J, NASA מפעילה את E, מעבדת מחקר הצבא האמריקאי מפעילה את H, וארגונים בינלאומיים כמו RIPE NCC, Netnod ופרויקט WIDE היפני מפעילים אחרים. הגיוון הזה הוא מכוון—אף גורם יחיד לא שולט ביסודות ה-DNS.
לשרתי השורש יש בדיוק תפקיד אחד: לספר לך אילו שרתי TLD מטפלים בסיומת נתונה. שאל שרת שורש על example.com והוא מגיב: "אני לא יודע, אבל הנה השרתים שמטפלים ב-.com." שאל על example.jp ותקבל את השרתים עבור .jp.
היקף מוגבל זה שומר על שרתי השורש מהירים. כל אזור השורש—כל האצלת TLD שקיימת—נכנסת לקובץ קטן מ-2 מגה-בייט2. הקובץ הזה מפרט מעל 1,500 דומייני רמה עליונה, וקטן מספיק כך שכל מופע שרת שורש יכול להחזיק אותו כולו בזיכרון.
שרתי TLD: השכבה האמצעית
שרתי דומיין הרמה העליונה מנהלים את כל מה שתחת הסיומת שלהם. שרתי .com יודעים על כל דומיין .com. שרתי .uk יודעים על כל דומיין .uk.
ל-TLDs יש כמה סוגים:
- TLDs גנריים (gTLDs):
.com,.org,.net, וחדשים יותר כמו.app,.dev,.blog - TLDs של קודי מדינה (ccTLDs):
.us,.uk,.de,.jp—כל מדינה מנהלת את שלה - TLDs ממומנים:
.edu,.gov,.mil—מוגבלים לארגונים ספציפיים
Verisign מפעילה את .com ו-.net, שיחד מהווים מעל 169 מיליון רישומי דומיין3. כששרתי ה-TLD שלהם מקבלים שאילתה עבור example.com, הם לא מחזירים את כתובת ה-IP. הם מחזירים הפניה נוספת: "הנה שרתי השמות האחראים על example.com."
עוד מסירה. עוד האצלה.
שרתים סמכותיים: שם שהתשובות גרות
שרתי שמות סמכותיים הם המקום שבו השרשרת מסתיימת. שרתים אלה מחזיקים את רשומות ה-DNS בפועל—רשומות A הממפות שמות לכתובות IP, רשומות MX המפנות דואר אלקטרוני, רשומות CNAME שיוצרות כינויים.
כשאתה רושם דומיין, אתה מציין אילו שרתי שמות מדברים בשמו. אלה עשויים להיות מנוהלים על ידי רשם הדומיינים שלך, ספק אחסון כמו Cloudflare או AWS Route 53, או התשתית שלך עצמה.
השרת הסמכותי הוא מקור האמת. אם ns1.example.com אומר ש-www.example.com מצביע על 192.0.2.1, זו התשובה. אף שרת מעליו לא יכול לעקוף זאת. הם יכולים רק להפנות שאילתות לכיוונו.
לרוב הדומיינים יש מספר שרתי שמות סמכותיים—ns1 ו-ns2, לעתים קרובות במרכזי נתונים שונים. אם אחד נכשל, שאילתות מנותבות לשני. יתירות בכל רמה.
שאילתה מתחילתה ועד סופה
אתה מקליד www.example.com. הדפדפן שלך שואל את מערכת ההפעלה שלך. מערכת ההפעלה שואלת את הרזולבר המוגדר שלה—בדרך כלל זה של ספק האינטרנט שלך, או אולי 8.8.8.8 של Google, או 1.1.1.1 של Cloudflare.
הרזולבר בודק את המטמון שלו. אין שם כלום. הגיע הזמן לטפס על העץ.
שלב 1: שאל את השורש. "היכן אוכל למצוא מידע על .com?" השורש מגיב עם רשימה של שרתי TLD של .com.
שלב 2: שאל את ה-TLD. הרזולבר בוחר אחד ושואל: "היכן אוכל למצוא מידע על example.com?" ה-TLD מגיב עם שרתי השמות הסמכותיים עבור example.com—בתוספת כתובות ה-IP שלהם.
החלק האחרון חשוב. זה נקרא רשומת דבק (glue record), והוא פותר בעיית תרנגולת וביצה: אתה צריך DNS כדי לחפש את ns1.example.com, אבל אתה צריך את ns1.example.com כדי לעשות DNS עבור example.com. ה-TLD מטמיע את כתובת ה-IP בהפניה, ושובר את הלולאה.
שלב 3: שאל את השרת הסמכותי. "מה כתובת ה-IP של www.example.com?" לבסוף, תשובה אמיתית: 192.0.2.1.
הרזולבר שומר תשובה זו במטמון על פי ה-TTL שלה, מחזיר אותה לדפדפן שלך, והדפדפן מתחבר. כל המסע—שורש ל-TLD ל-שרת סמכותי—בדרך כלל מסתיים בעשרות מילישניות. עם מטמון, חיפושים עוקבים מסתיימים תוך ספרות בודדות של מילישניות.
מדוע האצלה עובדת
כל רמה לא מנסה לדעת הכל. כל רמה יודעת רק למי לשאול הלאה.
השורש מאציל את .com ל-Verisign. Verisign מאצילה את example.com למי שרשם אותו. בעל הדומיין יכול להאציל עוד יותר—blog.example.com עשוי להצביע על שרתי שמות שונים לחלוטין מ-api.example.com.
אין מסד נתונים מרכזי. הוספת דומיין חדש לא מחייבת עדכון השורש. זה רק מחייב עדכון ה-TLD, ואפילו זה הוא רק הוספת מצביע.
כשלים מבודדים. אם שרתי השמות הסמכותיים שלך נופלים, זה הבעיה שלך. שרתי השורש לא שמים לב. שרתי ה-TLD לא אכפת להם. ההפסקה שלך לא מתפשטת כלפי מעלה.
שליטה מבוזרת. ארגונים שונים שולטים בחלקים שונים. אזור השורש מנוהל דרך תיאום בינלאומי, TLDs על ידי המפעילים שלהם, דומיינים בודדים על ידי בעליהם. אף גורם יחיד לא יכול לשלוט ב-DNS באופן חד-צדדי.
צמיחה בלתי מוגבלת. העץ יכול לצמוח לנצח. TLDs חדשים, דומיינים חדשים, תתי-דומיינים חדשים—כל אחד הוא רק ענף נוסף, המנוהל על ידי מי שבבעלותו אותו ענף.
כך מערכת שתוכננה בשנות ה-80 מטפלת במיליארדי שאילתות ביום. לא בכוח גס, אלא דרך האצלה אלגנטית. כולם יודעים רק מספיק כדי להצביע לרמה הבאה למטה.
שאלות נפוצות על היררכיית ה-DNS
מה קורה אם שרת שורש נופל?
שום דבר בולט. עם כמעט 2,000 מופעים פיזיים מאחורי שלוש עשרה כתובות anycast, בתוספת מטמון אגרסיבי בכל רמה, כשלי שרת בודדים עוברים מבלי שמישהו יבחין. רזולברי DNS מנסים אוטומטית שרתי שורש אחרים, ורוב השאילתות לא מגיעות לשורש בכלל—מידע TLD נשמר במטמון שעות או ימים.
האם אני יכול להפעיל שרת שמות סמכותי משלי?
כן. אתה מגדיר את הרשם של הדומיין שלך לרשום את כתובות ה-IP של שרת השמות שלך, ואלה הופכים למקור הסמכותי עבור הדומיין שלך. אתה אחראי להשאיר אותם פועלים ומגיבים כראוי. ארגונים רבים עושים זאת לצורך שליטה על תשתית ה-DNS שלהם.
מדוע יש רק שלוש עשרה כתובות שרתי שורש?
מגבלה היסטורית. חבילות DNS מוקדמות היו צריכות להיכנס ל-512 בייט, מה שהגביל את מספר הכתובות שניתן לרשום בתגובה. Anycast פתרה את המגבלה הפיזית—שלוש עשרה הכתובות האלה כיום מייצגות כמעט 2,000 שרתים ברחבי העולם—אבל מספר הכתובות הלוגיות נשאר קבוע.
מה ההבדל בין רשם דומיין לשרת שמות סמכותי?
רשם דומיין הוא המקום שבו אתה קונה את הדומיין שלך. הם מטפלים בקשר העסקי ומעדכנים את רשומות ה-TLD כדי להצביע על שרתי השמות שלך. שרת שמות סמכותי הוא המקום שבו רשומות ה-DNS שלך גרות בפועל—הוא עונה לשאילתות על הדומיין שלך. רשמים רבים מספקים גם שירות שרתי שמות, אבל הם תפקידים נפרדים. אתה יכול לקנות מרשם אחד ולארח DNS במקום אחר.
מקורות
האם דף זה היה מועיל?