1. ספרייה
  2. DNS
  3. הגדרת DNS

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

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

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

מה זה GeoDNS?

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

כשספק ה-GeoDNS שלך מקבל שאילתה עבור www.example.com, הוא בוחן את כתובת ה-IP של ה-resolver שמבצע את השאילתה, קובע את מיקומו באמצעות מסד נתוני גיאולוקציה, ובודק את מדיניות הניתוב שלך. המדיניות עשויה לומר: שאילתות מאסיה הולכות לכתובת 203.0.113.10, שאילתות מאירופה הולכות לכתובת 198.51.100.20, שאילתות מצפון אמריקה הולכות לכתובת 192.0.2.30.

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

כיצד עובד זיהוי המיקום

GeoDNS משתמש בשתי שיטות כדי לאתר את המיקום שלך, ולשתיהן יש נקודות עיוורון.

גיאולוקציה של כתובת ה-IP של ה-Resolver היא הגישה המסורתית. שרת ה-GeoDNS בוחן את כתובת ה-IP של ה-resolver שמבצע את השאילתה ומשתמש במסד נתונים (כמו MaxMind GeoIP2) כדי לקבוע היכן הוא נמצא.

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

EDNS Client Subnet (ECS) פותר את זה. ECS מאפשר ל-resolvers לכלול חלק מכתובת ה-IP האמיתית שלך בשאילתה. במקום שהשרת הסמכותי יראה רק "שאילתה זו מגיעה מ-8.8.8.8", הוא רואה "שאילתה זו מגיעה מ-8.8.8.8 בשם לקוח ב-203.0.113.0/24". עכשיו הוא יכול לנתב לפי המיקום האמיתי שלך.

Resolvers מרכזיים כמו Google Public DNS תומכים ב-ECS. Resolvers הממוקדים בפרטיות לרוב לא — הם במכוון נמנעים מחשיפת מידע על הלקוח. לפי מחקר משנת 2024 של APNIC Labs, כ-12% ממשתמשי האינטרנט מוגשים על ידי resolvers שמשתמשים ב-ECS1. יישום GeoDNS טוב מטפל בשני התרחישים, ועובר לגיאולוקציה מבוססת-resolver כשה-ECS אינו זמין.

למה GeoDNS חשוב

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

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

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

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

ההנחה הבסיסית (ומתי היא לא מחזיקה)

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

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

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

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

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

להפעיל את GeoDNS כהלכה

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

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

קבע TTL הגיוניים. 300 שניות (5 דקות) מאזן בין היענות לנפח שאילתות. הימנע מ-TTL מתחת ל-60 שניות אלא אם יש דרישות ספציפיות ואפשר להתמודד עם העומס.

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

בדוק מ-resolvers מגוונים. מה שעובד מ-Google Public DNS עשוי לנתב אחרת דרך resolver של ספק אינטרנט או DNS ארגוני. בדוק ממספר resolvers ציבוריים, רשתות ארגוניות וספקי סלולר.

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

אפשרויות ספקים

מספר ספקי DNS מציעים GeoDNS עם יכולות שונות:

  • AWS Route 53 מספק ניתוב גיאוגרפי ברמת יבשת, מדינה ומדינה אמריקאית, עם ניתוב גיאו-קרבה שיכול להטות תנועה לעבר משאבים ספציפיים או ממנהם2
  • Cloudflare כולל ניתוב גיאוגרפי בניהול העומסים שלהם עם בדיקות תקינות פעילות
  • IBM NS1 Connect מציע ניהול תנועה מתוחכם הכולל נתוני ניטור משתמשים אמיתיים כדי לנתב לפי ביצועים בפועל, לא לפי קרבה מניחה3
  • Oracle DNS (לשעבר Dyn) ו-UltraDNS מספקים GeoDNS ברמה ארגונית עם ניתוח מפורט

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

שאלות נפוצות על GeoDNS

עד כמה מדויק זיהוי המיקום של GeoDNS?

הדיוק משתנה לפי אזור ושיטה. עם EDNS Client Subnet, דיוק ברמת המדינה בדרך כלל עולה על 95% בשווקים מפותחים. בלי ECS, הדיוק תלוי לחלוטין במיקום ה-resolver — שיכול להיות שגוי לגמרי כשמשתמשים בוחרים ספקי DNS ציבוריים עם תשתית מבוזרת גלובלית. דיוק ברמת העיר פחות אמין בכל מקום, ורשתות סלולריות אינן צפויות במיוחד.

האם GeoDNS עובד עם VPN?

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

מה קורה אם השרת הקרוב ביותר יורד?

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

כמה מהר יכול GeoDNS לבצע מעבר לגיבוי?

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

מקורות

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

😔
🤨
😃