1. ספרייה
  2. DNS
  3. רשומות DNS

עודכן לפני חודש

עדכנת את רשומות ה-DNS שלך כדי להפנות את הדומיין שלך לשרת חדש. אתה בודק מהמחשב שלך — כלום. אתה ממתין חמש דקות ובודק שוב — עדיין השרת הישן. מישהו מעברו השני של הארץ מדווח שהוא רואה את האתר החדש. הקולגה שלך, מאותו משרד, רואה את הישן.

שני אנשים באותו חדר, רואים גרסאות שונות של האתר שלך. זוהי פרופגציית DNS — והבנת הסיבה לכך מחייבת לתפוס אחד המושגים המובנים-לרעה ביותר ב-DNS: Time to Live.

מה פרופגציית DNS היא באמת

הנה מה שמבהיר את רוב הבלבול: פרופגציית DNS לא מפיצה כלום. אין גל עדכונים שמתפשט ברחבי הרשתות. אין מערכת מרכזית שמשדרת את השינויים שלך לשרתי DNS ברחבי העולם.

כשאתה מעדכן רשומת DNS, אתה משנה נתונים בשרת השמות הסמכותי שלך — מקור האמת לגבי הדומיין שלך. אבל מיליוני רזולברים לא בודקים ברציפות את שרת השמות שלך לעדכונים. הם שומרים תגובות במטמון כדי לחסוך רוחב פס ולהפחית חביון.

"פרופגציה" היא פקיעת מטמון פסיבית שמתרחשת במערכות עצמאיות רבות, כל אחת לפי לוח הזמנים שלה. כל רזולבר לומד על העדכון שלך כאשר העותק השמור שלו פג — לא כשאתה מבצע את השינוי.

דמיין מיליוני טיימרים לספירה לאחור, כולם התחילו ברגעים שונים, כולם מוגדרים למשכים שונים. שינוי ה-DNS שלך הופך גלוי לכל רזולבר רק כשהטיימר שלו מגיע לאפס.

Time to Live: בקר המטמון

כל רשומת DNS כוללת ערך TTL (Time to Live) הנמדד בשניות. מספר זה אומר לרזולברים כמה זמן הם יכולים לשמור את הרשומה במטמון לפני שהם פוסלים אותה ומושכים נתונים עדכניים.

ערך TTLמשךמקרה שימוש
3005 דקותרשומות שעשויות להשתנות במהלך העברות
3600שעהאיזון סטנדרטי בין מטמון לגמישות
8640024 שעותרשומות יציבות שאינן משתנות לעיתים קרובות

כשרזולבר שואל את שרת השמות הסמכותי שלך, התגובה כוללת הן את נתוני הרשומה והן את ה-TTL. הרזולבר שומר מידע זה ומתחיל ספירה לאחור. במשך TTL השניות הבאות, כל מי שישאל את אותו רזולבר על הדומיין שלך יקבל את התשובה השמורה מבלי ליצור קשר עם שרת השמות שלך.

ברגע שה-TTL פג, הרזולבר מוחק את הרשומה השמורה. השאילתה הבאה מאלצת חיפוש עדכני — ושם הוא מקבל את הרשומה שקיימת כרגע.

מנגנון המטמון הזה הוא יסודי לסקלביליות DNS. בלעדיו, כל חיפוש היה דורש מספר סבבי הלוך-ושוב לשרתים סמכותיים, ויוצר עומס וחביון עצומים. אבל ליעילות יש מחיר: אתה לא יכול לאלץ רזולברים לפנות את המטמון שלהם מוקדם. הספירה לאחור פועלת לפי השעון שלהם, לא שלך.

מדוע זמני הפרופגציה משתנים

ההערכה של "עד 48 שעות" לפרופגציית DNS היא תרחיש גרוע ביותר שנדיר שהוא מדויק. מספר גורמים יוצרים שונות:

הגדרת TTL היא הגורם העיקרי. אם לרשומה הקודמת שלך היה TTL של 300 שניות, הפרופגציה יכולה להסתיים תוך דקות. אם הייתה 86400 שניות, אתה ממתין יום שלם. ההערכה של 48 שעות מניחה ערכי TTL גבוהים בתוספת חיץ לרזולברים שמתנהגים בצורה לא תקינה.

התנהגות הרזולבר מוסיפה חוסר יכולת לחיזוי. רוב הרזולברים מכבדים ערכי TTL, אבל מערכות אחסון במטמון אגרסיביות מסוימות מאריכות TTLs כדי להפחית שאילתות upstream. רזולברי ISP עשויים לאחסן במטמון יותר זמן ממה שצוין. מטמוני DNS של דפדפנים, מטמוני מערכת ההפעלה, ומטמונים ברמת האפליקציה מוסיפים שכבות שאולי לא ישקפו מיד עדכוני רזולבר.

פיזור גיאוגרפי חשוב כי רזולברים שונים שואלים את שרת השמות שלך בזמנים שונים. רזולבר בטוקיו אולי אחסן את הרשומה שלך לפני שעה, בעוד שרזולבר בלונדון אחסן אותה לפני 23 שעות.

מטמון שלילי מסבך רשומות חדשות. אם מישהו שואל על תת-דומיין שאינו קיים, הרזולברים שומרים גם את התגובה השלילית הזאת במטמון. כשאתה לאחר מכן יוצר את תת-הדומיין הזה, הרזולברים לא יבדקו אותו עד שהמטמון השלילי שלהם יפוג — TTL נפרד המוגדר ברשומת ה-SOA שלך.

אסטרטגיות למזעור זמן השבתה

הבנת מכניקת הפרופגציה מאפשרת לך לתכנן שינויי DNS באופן אסטרטגי.

הורד TTL מראש. זוהי הטכניקה החשובה ביותר. אם אתה מתכנן להעביר שרתים, הפחת את ה-TTL שלך ל-300 שניות לפחות 48 שעות לפני השינוי. הדבר מבטיח שכאשר תבצע את העדכון בפועל, רוב הרזולברים יתרעננו תוך דקות ולא שעות. לאחר השלמת הפרופגציה, החזר את ה-TTL לערכו הגבוה לצורך יעילות.

התובנה המרכזית: עליך להוריד TTL לפני השינוי. ברגע שעדכנת את הרשומות שלך, לוח הזמנים נקבע על פי ערכי ה-TTL הקודמים שכבר נשמרו במטמון ברחבי האינטרנט. הקוביות כבר הוטלו.

הפעל תשתית מקבילה. כשאפשר, שמור על הפעלה מקבילה של המערכות הישנות והחדשות במהלך המעבר. הפנה את השרת החדש שלך לאותו תוכן כמו הישן לפני שתשנה את ה-DNS. משתמשים שמגיעים לרשומה הישנה השמורה או לרשומה החדשה רואים תוכן זהה — וזמן ההשבתה מתבטל לחלוטין.

עקוב ממיקומים מרובים. רק בגלל שהשינוי נראה מוכן מהמיקום שלך, זה לא אומר שהוא הושלם ברחבי העולם. השתמש בכלים לבדיקת DNS שמבצעים שאילתות ממיקומים גיאוגרפיים שונים ורשתות רזולברים שונות.

תזמן בתקופות של תנועה נמוכה. אם אי-עקביות מסוימת בלתי נמנעת, בצע שינויי DNS בשעות שבהן התנועה באתר שלך נמוכה ביותר — כך תמזער את מספר המשתמשים שנפגעו.

אי-הבנות נפוצות

"הפרופגציה לוקחת 48 שעות." עם ניהול TTL נכון, רוב שינויי DNS מסתיימים בפחות משעה. ההערכה של 48 שעות מכסה תרחישי גרוע ביותר עם ערכי TTL גבוהים ומטמונים שמתנהגים בצורה לא תקינה.

"אני יכול להאיץ את הפרופגציה לאחר ביצוע השינוי." לא ניתן. לוח הזמנים נקבע על פי ערכי TTL שכבר נשמרו במטמון לפני ביצוע השינוי. הדרך היחידה להשפיע על מהירות הפרופגציה היא להוריד ערכי TTL לפני ביצוע השינויים.

"ניקוי מטמון ה-DNS שלי מאיץ פרופגציה." ניקוי המטמון מנקה רק את המטמון של המכשיר שלך, ומאלץ אותו לשאול שוב את הרזולבר שלך. אבל המטמון של הרזולבר עצמו עשוי עדיין להחזיק את הרשומה הישנה. הפרופגציה הגלובלית עצמאית לחלוטין מניקויי מטמון אינדיווידואליים.

שאלות נפוצות על פרופגציית DNS

מדוע הקולגה שלי רואה תוצאות DNS שונות ממני?

סביר להניח שאתם משתמשים ברזולברי DNS שונים — ספקי אינטרנט שונים, או שרתי DNS שונים שהוגדרו ידנית כמו Google או Cloudflare. כל רזולבר אחסן את הרשומות של הדומיין שלך בזמנים שונים, וכל מטמון פג באופן עצמאי.

איזה TTL כדאי להשתמש עבור רשומות ה-DNS שלי?

עבור רשומות שבדרך כלל אינן משתנות (כמו רשומות MX לאימייל), 3600–86400 שניות (שעה עד 24 שעות) מפחית עומס על הרזולברים. עבור רשומות שעשויות להשתנות במהלך העברות או אירועים, 300–600 שניות (5–10 דקות) מעניק לך פרופגציה מהירה יותר כשתזדקק לה. מנהלים רבים שומרים TTL נמוך על רשומות A לצורך גמישות.

האם ספק ה-DNS שלי יכול להאיץ את הפרופגציה?

שום ספק אינו יכול לעקוף אחסון TTL במטמון על רזולברים עצמאיים. לחלק משירותי ה-DNS המנוהלים יש תשתית מהירה יותר שהופכת עדכונים גלויים מהר יותר ברגע שרזולברים שואלים — ולחלקם יש קשרים עם מפעילי רזולברים מרכזיים שעוזרים בתרחישים ספציפיים — אך התנהגות האחסון במטמון הבסיסית אינה בשליטת אף אחד.

כיצד אבדוק אם פרופגציית DNS הושלמה?

השתמש בכלים מקוונים שמבצעים שאילתות DNS ממיקומים גיאוגרפיים מרובים ורשתות רזולברים. בדוק ממכשירים שונים על רשתות שונות. "הושלמה" היא בגדר אסימפטוטה — תמיד יהיה רזולבר כלשהו ברשת עם מטמון מיושן — אבל לצרכים מעשיים, הפרופגציה הושלמה כשרזולברים מרכזיים משקפים את השינוי שלך.

האם דף זה היה מועיל?

😔
🤨
😃