אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » רשת האינטרנט » בניית אתרי אינטרנט » DNS Propagation

DNS Propagation

רן בר-זיק ספטמבר 22, 2019 7:07 am 5 תגובות

מקבלים DNS_PROBE_FINISHED_NXDOMAIN כשאתם מנסים להכנס לאתר?

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

לא מאוד קשור לתכנות – אבל כן קשור למבנה הרשת. כל מתכנת שהוא אמור לדעת מה זה DNS – מדובר בראשי תיבות של Domain Name System (לא Servers, באופן מפתיע). אלו השרתים שאחראים לתרגם את הדומיין שלנו לכתובת IP. רובנו מכירים את שרתי ה-DNS מצד הלקוח – השרתים שאני מגדיר בחיבור האינטרנט שלי, כמו 8.8.8.8 או 1.1.1.1 או אלו שמוגדרים אוטומטית על ידי הספק עבורי ודרכם אני מקבל את כתובת האתר שלי.

דוגמה של בקשת DNS

אבל, כמפתחי רשת יש עוד זווית של DNS שאנו אמורים להכיר – העדכון שלהם. כשאנו רוכשים דומיין, אנו אמורים להגדיר את ה-Name Server – השרתים שאמורים להכיל את המידע הסופי על החיבור בין הדומיין שלנו ל-IP של השרת. ה-Name Servers האלו נשמרים יחד עם שם הדומיין והם ה-source of truth של הדומיין שלנו.

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

הגדרה של ns בממשק שם מתחם
הגדרה של ns בממשק שם מתחם

מה קורה מייד אחרי שרכשתי שם דומיין וחיברתי אותו ל-name server של השרת שלי? בגדול, כשאני מבצע את הבקשה הראשונה שלי אל הדומיין החדש, שרת ה-DNS של הספקית שלי לא יודע לאיזה ip להפנות אותי, כיוון שזה דומיין חדש. הוא ניגש לשרתי DNS אחרים, אלו שאחראים על השלב העליון של הדומיין (למשל com.) ואחד מהם יתן לו את ה-ns המתאים והוא זה שיתן לו את כתובת ה-IP המתאימה.

הכל טוב ויפה כשרוכשים דומיין חדש – אבל מה קורה כשרוצים להחליף שרת לדומיין קיים? ומחליפים את ה-name server? למשל להעביר ספק אחסון שרת (כמו מדרימהוסט לסייטגראונד) או יותר גרוע – ה-name server משתנה מסיבה מסוימת – כמו למשל החלפת חבילה בספק האחסון. במקרה הזה, שרת ה-DNS לא יוכל לתת לגולש את התוצאה שהוא רוצה ונקבל את השגיאה הנפלאה בכרום:

DNS_PROBE_FINISHED_NXDOMAIN

מה זה אומר? זה אומר ששרת ה-DNS הגיע אל ה-name server והוא החזיר לו תשובה שהוא לא מכיר את הדומיין. ה-DNS לא יכול להחזיר לך את ה-IP של השרת.

אם טרחתם ועדכנתם בממשק את ה-name server החדש, עדיין, כשתנסו להכנס לאתר שלכם – עדיין תקבלו את ה-DNS_PROBE_FINISHED_NXDOMAIN המעצבן! למה? זה בגלל ה-DNS propagation. שזו מילה גדולה מאוד עבור ה-cache של ה-DNS. לכל שרתי ה-DNS יש cache. יש לכם גם DNS cache במחשב שלכם ובכל ה-cache האלו יש כבר את ה-name server הישן וה-IP הישן. שרתי ה-DNS מרעננים את ה-cache שלהם מדי פעם – יש כאלו שבקצב גבוה, יש כאלו שבקצב נמוך. השרתים הטובים של גוגל 8.8.8.8 וקלאוד פלייר 1.1.1.1 עושים את זה בקצב גבוה. אם אתם משתמשים בשרתי ברירת המחדל של ׳אינטרנט אחלה בחלה בינלאומי׳ אז יש סיכוי שזה יקח זמן.

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

אם אתם צריכים לשנות name server – או בגלל מעבר ספק או בגלל שדרוג חבילה – מומלץ לא לעשות את זה בדקה ה-99 (כמוני) כי אז אתם בסיכון שעבור הלקוחות שלא משתמשים בשרתי DNS נורמליים – אתם פשוט לא תהיו זמינים. אלא להשאיר את שני השרתים חיים ולבצע את המעבר ורק אחרי 48 שעות להוריד את השרת השני.

אם זו לא אופציה, כמו באתרים עם פעולות משתמשים שמכניסים לשם מידע – אז לפני המעבר כדאי מאוד להוריד, באמצעות הממשק, את ה-TTL של הדומיין למינימום האפשרי (עדיף חמש דקות). מה זה ה-TTL? זה ה-Time To Live והמגבלה של הזמן של ה-cache ששרת ה-DNS ישמור את האתר שלכם. ואז לבצע את המעבר. המקסימום של הדאונטיים יהיה חמש דקות. אחר כך מוטב להעלות את ה-TTL כי אם לא תהיה ב-cache במצב רגיל, הביקור אליכם יקח מעט יותר זמן (כי בכל כניסה, שרת ה-DNS יצטרך לבצע בדיקה איפה הדומיין שלכם נמצא, כי הוא לא יהיה ב-cache).

חשוב לוודא גם, אם אתם עושים שינוי ב-name server – לבצע ניקוי DNS cache מקומי אצלכם. רוב האנשים ואפילו המפתחים לא יודעים שיש גם במחשב המקומי DNS cache. אם אתם (או יותר גרוע – הלקוח שלכם) לא מצליחים להגיע לאתר שלכם למרות שאנשים אחרים מדווחים שהם מצליחים להגיע אליו, יש סיכוי שזה בגלל ה-DNS cache המקומי שלכם. ככה מנקים אותו:

בחלונות 10:

ipconfig /flushdns 

במק:

sudo dscacheutil -flushcache

בלינוקס (דביאן) :

sudo /etc/init.d/networking restart

זה יפתור לכם את הבעיה. אם שיניתם name server, אנשים מדווחים לכם שהם מצליחים להכנס לאתר שלכם בלי בעיה ורק אתם מקבלים DNS_PROBE_FINISHED_NXDOMAIN

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

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
אתרי אינטרנט

5 תגובות

  1. נפתלי הגב ספטמבר 22, 2019 בשעה 11:37 am

    יש גם אפשרות לאפס DNS לוקלי במחשב ישירות באמצעות הדפדפן של כרום
    chrome://net-internals/#dns

    במקום להכניס לקוחות/משתמשים למסך שחור ומפחיד שחושבים שבטח אתה מריץ איזה וירוס או מרגל אחריהם

    • דרור אב. הגב ספטמבר 22, 2019 בשעה 11:58 am

      האינטרנלס של כרום בוטל בעדכונים האחרונים, הוא כבר לא פעיל. לחיצה של קונטרול ורענון של הדף "תכריח" את הכרום לעדכן את הדף לא מה-Cache.

  2. רויטל סלומון הגב ספטמבר 22, 2019 בשעה 12:20 pm

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

  3. שניר הגב ספטמבר 22, 2019 בשעה 5:17 pm

    בשביל זה כדאי לכוון רשומות לcloudflare ואז אם אתה עובר שרת, אתה משנה רק a record והמעבר יוצא הרבה יותר מהיר ועדיף..

    • ערן הגב אפריל 7, 2020 בשעה 4:02 pm

      זה עובד בכל שירות שמבצע reverse proxy. גם מתחרים של Cloudflare

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד