अपडेट किया गया 1 माह पहले
אתה משנה רשומת A בשרת השמות הראשי שלך. אבל שרתי שמות משניים ברחבי העולם מחזיקים עותקים של האזור שלך. הם לא יכולים לצפות בשרת שלך בכל רגע — יש להם מיליוני אזורים לעקוב אחריהם. לכן הם זקוקים לכללים: באיזו תדירות לבדוק, מה נחשב "מעודכן," ומתי לוותר אם אינם מצליחים להגיע אליך.
רשומת Start of Authority היא ספר הכללים הזה. לכל אזור DNS יש בדיוק אחת, ממוקמת בראש האזור, ושולטת בשלושה דברים: מי המקור הסמכותי, כיצד העותקים נשארים מסונכרנים, ולכמה זמן האינטרנט צריך לזכור שמשהו לא קיים.
שבעת השדות
רשומת SOA דוחסת לוגיקת תיאום לתוך שבעה שדות:
MNAME (ns1.example.com) מציין את שרת השמות הראשי — מקור האמת. כשמשניים זקוקים לנתונים טריים, כאן הם שולפים אותם.
RNAME (admin.example.com) הוא כתובת הדואר האלקטרוני של המנהל, מקודדת בתחביר DNS. זה admin@example.com — DNS משתמש בנקודה במקום @ כי ל-@ יש משמעות מיוחדת בקבצי אזורים. אם החלק המקומי מכיל נקודות (john.smith@example.com), הן מוחמקות עם לוכסנים.
Serial הוא מספר הגרסה. בכל פעם שאתה משנה את האזור, מספר זה חייב לעלות. שרתים משניים משווים את ה-serial שלהם לזה של הראשי; גבוה יותר פירושו "שלוף נתונים טריים." הפורמט לא משנה — 2024031501 (תאריך ומהדורה) או מספרים שלמים עולים פשוטים שניהם עובדים. הכלל מוחלט: הוא חייב תמיד לעלות.
Refresh (7200 = 2 שעות) אומר לשרתים משניים באיזו תדירות לבדוק עדכונים. מרווחים קצרים יותר פירושם הפצה מהירה יותר, אבל יותר שאילתות פוגעות בשרת הראשי שלך.
Retry (3600 = שעה אחת) הוא הגיבוי כשה-refresh נכשל. אם שרת משני אינו מצליח להגיע לשרת הראשי בזמן המתוכנן, הוא מנסה שוב אחרי מרווח קצר יותר זה, במקום לחכות למחזור ה-refresh הבא המלא.
Expire (1209600 = 14 ימים) הוא מועד אחרון לאמון. כששרת משני אינו מצליח להגיע לשרת הראשי, הוא ממשיך לענות לשאילתות עם נתונים שנהיים מיושנים יותר ויותר. טיימר ה-expire הוא הדרך שבה אתה אומר לו מתי שתיקה כנה יותר מניחוש.
Minimum TTL (86400 = 24 שעות) שולט במטמון השלילי — כמה זמן מפענחים זוכרים שהשם לא קיים. שאל על nonexistent.example.com, קבל NXDOMAIN, ותשובת "אין שם כזה" תישמר במטמון למשך זמן זה.
בעיית מספר ה-Serial
שכחה להגדיל את ה-serial היא טעות ה-DNS הקלאסית. אתה עורך את קובץ האזור, מוסיף רשומות חדשות, שומר אותו, ומטעין מחדש את שרת השמות. הכל נראה תקין בשרת הראשי. אבל כשהשרתים המשניים בודקים, הם משווים serials, רואים שהם תואמים, ומדלגים על ההעברה.
העדכון שלך קיים בשרת אחד ובשום מקום אחר.
זו הסיבה שה-serials המבוססים על תאריך עובדים היטב — 2024031501 ברור שמשמעותו 15 במרץ 2024, מהדורה 01. כשאתה מבצע שינויים ב-16 במרץ, אתה כותב באופן טבעי 2024031601. הפורמט הופך את ההגדלה להרגל טבעי.
העברות אזור מגיעות בשני סוגים: AXFR שולח את כל האזור, IXFR שולח רק שינויים מאז serial נתון. העברות מצטברות עובדות רק משום ש-serials יוצרים ציר זמן אמין.
בחירת ערכים
Refresh: אזורים דינמיים שמשתנים לעתים קרובות רוצים 1800–3600 שניות. אזורים יציבים יכולים להגיע עד 21600–86400 שניות. Refresh מהיר יותר פירושו הפצה מהירה יותר, אבל יותר עומס על הראשי שלך.
Retry: שמור אותו קצר מ-refresh — בדרך כלל רבע עד חצי. אתה רוצה כמה ניסיונות retry לפני ה-refresh המתוכנן הבא.
Expire: 7–14 ימים נותנים לך זמן לתקן תקלת שרת ראשי לפני ששרתים משניים שותקים. לא ארוך מדי, כדי שלא יגישו נתונים מיושנים מדי בזמן תקלות ממושכות.
Minimum TTL: 300–3600 שניות מכסות את רוב המקרים. ערכים קצרים יותר (300–900) עוזרים במהלך העברות או כשאתה מוסיף תת-דומיינים לעתים קרובות. ערכים ארוכים יותר (1800–3600) מפחיתים עומס משאילתות חוזרות עבור שמות שלא קיימים.
DNS מודרני מוסיף הודעות NOTIFY: כשאתה מעדכן את השרת הראשי, הוא שולח התראה לשרתים המשניים לבדוק מיד, במקום לחכות ל-refresh המתוכנן הבא שלהם. ההפצה נהיית כמעט מיידית, עם תזמון SOA כרשת ביטחון אמינה.
מלכודת המטמון השלילי
שדה ה-minimum TTL תופס אנשים במהלך העברות. כשמפענח שואל על שם שלא קיים, הוא שומר במטמון את תגובת ה-NXDOMAIN הזו. אם ה-minimum TTL שלך הוא 86400 שניות, כל מפענח שניסה ונכשל למצוא new-subdomain.example.com לא ינסה שוב למשך 24 שעות — אפילו לאחר שיצרת אותו.
אתה עובר לתשתית חדשה, יוצר תת-דומיינים חדשים. מפענח של מישהו חיפש את השם החדש אתמול, קיבל NXDOMAIN, ושמר אותו במטמון. עכשיו הם לא יכולים להגיע לשירות שלך גם כשהרשומה כבר קיימת. אתה מחכה, מבולבל. הם מחכים, מתוסכלים.
הורד את ה-minimum TTL לפני שינויים גדולים. הרם אותו שוב כשהדברים מתייצבים.
אבחון עם SOA
רשומת SOA משמשת גם ככלי אבחון. השוואת serials בין שרתי שמות מגלה מיד בעיות סנכרון. אם השרת הראשי שלך מציג serial 2024031505 אבל שרת משני מציג 2024031502, העברות האזור אינן עובדות — בעיות רשת, הרשאות, או שהשרת המשני אינו מצליח להגיע לשרת הראשי כלל.
טיימר ה-expire אומר לך כמה זמן יש לך לתקן את זה לפני שאותו שרת משני יפסיק לענות. מרווח ה-refresh אומר לך באיזו תדירות הוא מנסה.
כל שדה ברשומת SOA שולט בסנכרון או עוזר לך לאבחן אותו.
שאלות נפוצות על רשומות SOA
מה קורה אם שכחתי להגדיל את מספר ה-serial?
שרתי שמות משניים משווים את ה-serial שלהם לזה של הראשי. אם הם תואמים, לא מתרחשת העברה. השינויים שלך קיימים רק בשרת הראשי עד שאתה מגדיל את ה-serial והשרתים המשניים מושכים את העדכון.
למה שדה ה-RNAME משתמש בנקודה במקום @?
הסמל @ יש לו משמעות מיוחדת בקבצי אזורים — הוא מייצג את מקור האזור. DNS קדם למוסכמות הדואר האלקטרוני המודרניות, לכן פורמט ה-SOA משתמש בנקודה במקום. admin.example.com פירושו admin@example.com.
כיצד אני יודע אם העברות האזור עובדות?
שאל את רשומת ה-SOA מכל שרת שמות והשווה מספרי serial. הם אמורים להתאים (או להיות קרובים מאוד אם זה עתה ביצעת שינויים). serials שאינם תואמים פירושם שהעברות נכשלות — בדוק קישוריות רשת, כללי חומת אש, והרשאות העברה.
מה ערך expire טוב?
7–14 ימים הוא אופייני. ארוך מספיק להתמודד עם בעיות שרת ראשי מבלי ששרתים משניים ישתקו, קצר מספיק שלא יגישו נתונים מיושנים מדי בזמן הפסקות ממושכות. טיימר ה-expire הוא תקופת החסד שלך לשחזור מאסון.
क्या यह पृष्ठ सहायक था?