DNS Aging and Scavenging
מאמר מעניין בנושא DNS.
המאמר יהיה על DNS, timestamp, aging ו scavenging.
DNS זהו מנגנון שם-IP, הוא זה שמאפשר לנו לגשת למחשבים שרתים וכל מני אובייקטים לפי שם במקום לזכור את הIP שלהם.
כאשר נכניס מחשב לדומיין שלנו, תיווצר אוטומטית רשומת DNS עם השם של המחשב שמקושר לIP שלו.
עד כאן הכל טוב.
מה קורה כאשר המחשב הפסיק לתקשר? ועכשיו הIP שלו מקושר לשם אחר ככה שיש שתי רשומות DNS עם IP אחד שמקושר לשתי שמות. דבר זה יכול ליצור עומס מיותר ולפעמים תקלות או טעויות.
ישנו מנגנון הנקרא Scavenging בעברית טיהור.
מנגנון זה עובר על הDNS פעם בכמה זמן שאנחנו נחליט ומוחק את כל הרשומות שלא תקשרו זמן מסוים. את המנגנון אפשר להחליט גם לא לאפשר.
על מנת להבין מה הזמן שרשומה אמורה לא לתקשר על מנת שהמנגנון ימחק אותה צריך להכיר 4 מושגים ואיך את מתקשרים אחד לשני וביחד יוצרים עולם מושלם של אוטומציה. (הגזמתי?)
הראשון הוא refresh עצמי של רשומות
כאשר הכנסתי מחשב windows לרשת והגרסה שלו היא מעל windows XP/2003 תיווצר רשומה בDNS והיא תעבור refresh פעם ב24 שעות. אפשר לשנות את הזמן הזה בערך בregistry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DefaultRegistrationRefreshInterval
בwindows 2000 professional אין את הערך בregistry ולכן לא נוכל לשנות את הזמן הדיפולטי שהוא 24 שעות.
***בDomain Controllers הזמן הוא 60 דקות.
השני הוא no-refresh interval
הזמן הזה הוא הזמן הראשוני שעובר לאחר שהרשומה מתעדכנת או נוצרת.
נגיד עכשיו הגדרתי את הזמן הזה ל7 ימים ונוצרה לי רשומה של המחשב, מעכשיו המנגנון סופר 7 ימים עד שהוא עובר את הזמן הזה, אותו דבר לגבי שינוי IP או כל שינוי שהוא אשר משנה את הרשומה.
בזמן הזה מנגנון הScavenging לא יגע ברשומה, למרות שרקע הוא ירוץ כנראה.
בזמן זה גם הרשומה לא תעבור refresh ע”י מחשב עצמו שמקושרת אליו הרשומה (24 שעות או 60 דקות).
השלישי הוא refresh interval
כאשר עובר ה no-refresh interval האינטרוול הזה מתחיל.
בזמן האינטרוול הזה מנגנון הScavenging לא יכול לגעת ולמחוק את הרשומה גם אם היא לא עברה refresh.
מטרת האינטרוול הזה הוא לתת טווח זמן לרשומה לעבור refresh עצמי. לכן אם הרשומה מתעדכנת כל 24 שעות נרצה שהאינטרוול הזה יהיה מעל 24 שעות כדי לתת לרשומה זמן להתעדכן.
לאחר שזמן זה עובר ולא היה עדכון של הרשומה תהליך הScavenging “רשאי” למחוק את הרשומה.
הרביעי והאחרון הוא Timestamp
זהו זמן העדכון היצירה או הריענון של הרשומה.
כאשר נוצרה רשומה מסוימת ה Timestampשלה יאותחל לאותו הרגע.
כאשר עודכנה רשומה מסוימת עם IP אחר או שם אחר ה Timestampשלה יאותחל לאותו הרגע.
כאשר עבר ה no-refresh interval והרשומה הגיעה ל refresh interval והרשומה עברה refresh
ה Timestamp שלה יאותחל לאותו הרגע.
סיכום קצר,
- רשומה לא יכול להימחק עד שה no-refresh & refresh intervalsעברו.
- כשרשומה מתעדכנת או עוברת refresh הTimestamp מתאפס לאותו הרגע לכן כל עוד רשומה עוברת refresh על בסיס קבוע היא לא תימחק.
- גם אחרי שה no-refresh & refresh intervalsעברו כנראה שהרשומה לא תימחק ישר בגלל שהמנגנון של הScavenging רץ כל כמה זמן ורק כשהוא ירוץ הרשומה תימחק.
- הזמן המקסימלי שרשומה יכולה להישאר מבלי לתקשר הוא הזמן של שלושת האינטרוולים יחד no-refresh + refresh intervals + scavenging period.
- ישנם רשומות שנוצרו ידנית ולא מתעדכנות, כברירת מחדל הן לא ימחקו אף פעם.
נושא טיפה מורכב מקווה שהייתי מובן 😊
שבוע טוב!