שאלה מדוע אין צורך בהחלפת DNS?


מקריאה, נראה כי אין צורך ב- DNS כושל DNS רק משום ש- DNS לא תוכנן עבורו. אבל אם יש לך שני webservers על subnets שונים אירוח תוכן מיותר, מה שיטות אחרות שם כדי להבטיח כי כל תנועה מקבל מנותב לשרת לחיות אם שרת אחד יורד?

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


166
2017-08-30 17:57




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


תשובות:


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

על ידי עיצוב, כאשר אתה עונה על בקשת DNS אתה גם לספק זמן לחיות (TTL) עבור התגובה לך למסור. במילים אחרות, אתה אומר שרתי DNS אחרים ומאחסנים "אתה יכול לאחסן את התשובה הזו ולהשתמש בה במשך X דקות לפני בדיקה חזרה איתי". החסרונות באים מכך:

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

השיטות הנפוצות יותר של מקבל uptime טוב כרוך:

  • הצבת שרתים יחד באותו LAN.
  • מניחים את ה- LAN במרכז נתונים עם מטוסי כוח ורשת זמינים.
  • השתמש באיזון עומס HTTP כדי להפיץ עומס וכשל על כשלים שרת בודדים.
  • קבל את רמת יתירות / uptime צפוי שאתה צריך עבור חומת האש שלך, balancers לטעון ומתגים.
  • יש אסטרטגיית תקשורת במקום עבור כשלים מרכז נתונים מלא, ואת הכישלון מדי פעם של שרת / בורר / מסד נתונים / משאבים אחרים שלא ניתן בקלות שיקוף.

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


93
2017-08-30 18:39



אני חושב שהוא מנסה במיוחד לנהל כשלון בין שני מרכזי נתונים שונים (שימו לב להערות על רשתות משנה שונות), ולכן הצבת השרתים יחד / שימוש במשאבי עומס / יתירות נוספת לא תעזור לו (מלבד מרכזי נתונים מיותרים. עדיין צריך להגיד לאינטרנט ללכת אחד כי הוא עדיין למעלה). - Cian
הוסף Anycast להתקנה מרובת מרכז הנתונים והוא הופך הוכחה כישלון מרכז הנתונים. - petrus
ויקיפדיה ערך על anycast (en.wikipedia.org/wiki/Anycast) דן בכך ביחס לשמירת שרתי DNS. - dunxd
התקפות DDoS נפוצים כל כך כעת ניתן להביא את מרכזי הנתונים במלואם למצב לא מקוון (במקרה של Linode London ושאר מרכזי הנתונים שלהם בדצמבר 2015). אז באמצעות אותו ספק, באותו מרכז נתונים לא מומלץ. לכן מרכזי נתונים מרובים עם ספקים שונים יהיו אסטרטגיה טובה, מה שמחזיר אותנו ל- DNS כשל, אלא אם כן קיימת חלופה טובה יותר. - Laurence Cope
למה לא קיים כשל, כי אתה צריך לשמור את האתר שלך חי כאשר המכשיר הוא למטה / פגום? מה יהיה היכשל שלך כאשר הוא נמצא באותה רשת שמשתפת את אותם מכשירים, למשל. נתבים? - user2128576


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

DNS לא תוכנן עבור כשל - אבל זה תוכנן עם TTL זה עובד בצורה מדהימה עבור צרכים כשל כאשר משולבים עם מערכת ניטור מוצק. TTLS ניתן להגדיר קצר מאוד. יש לי ביעילות בשימוש TTLs של 5 שניות בייצור עבור הבהרה מהיר DNS פתרונות מבוססי כשל. אתה צריך שרתי DNS מסוגל להתמודד עם העומס הנוסף - ואת שם לא לחתוך אותו. עם זאת, Powerdns מתאים את הצעת החוק כאשר מגובה עם מסדי נתונים משוכפלים MySQL על שרתי שם מיותרים. אתה גם צריך מערכת ניטור מבוזרת מוצק שאתה יכול לסמוך על אינטגרציה אוטומטית כשל. Zabbix עובד בשבילי - אני יכול לאמת הפסקות ממערכות זאביקס מבוזרות כמעט מיד - לעדכן את רשומות MySQL המשמשות את Powerdns במהירות גבוהה - ולספק כשל כמעט מיידי בזמן ההפסקות וקפיצות התנועה.

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


44
2017-10-20 17:17



התשובה של קיאן serverfault.com/a/60562/87017 ישירות סותר אחד שלך ..... אז מי צודק? - Pacerier
זה הצרות שלי כי TTLs קצר לא עובד ברחבי האינטרנט. ייתכן שאתה מפעיל שרתי DNS המכבדים את RFCs - אבל יש הרבה שרתים שם בחוץ אשר לא. אנא אל תניחו שזה טיעון נגד סיבוב רובין DNS - לראות גם את התשובה של vmiazzo להלן - הפעלתי אתרים עסוקים באמצעות RR DNS נבדק זה - זה עובד. הבעיות היחידות שפגשתי היו עם כמה לקוחות מבוססי Java (לא דפדפנים), אשר אפילו לא מנסה להתחבר מחדש על כישלון, שלא לדבר על מחזור רשימת המארחים על RST - symcbean
אני מתערב שהאנשים שאומרים שהמעקב של DNS נכשל, והאנשים שאומרים שזה מסריח הם בעלי חוויות דומות, אבל עם ציפיות שונות. DNS כשל אינו חד, אבל זה מונע זמן השבתה משמעותי. אם אתה צריך גישה חלקה לחלוטין (אף פעם לא לאבד בקשה אחת, גם במהלך כישלון השרת), אתה כנראה צריך הרבה יותר מתוחכם - ו יקר אדריכלות. זה לא דרישה עבור יישומים רבים. - Tom Wilson


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

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


31
2017-08-30 18:27



1+ איטי ובלתי מהימן - Chris S
ראה גם serverfault.com/q/315199/87017 - Pacerier


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

בכל מקרה,

http://crypto.stanford.edu/dns/dns-rebinding.pdf מסביר שזה לא נכון עבור רוב דפדפני HTML הנוכחי. הם ינסו את ה- IP הבא בשניות.

http://www.tenereillo.com/GSLBPageOfShame.htm נראה חזק עוד יותר:

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

אולי מומחה כלשהו יכול להגיב ולתת הסבר ברור יותר מדוע DNS RR אינו טוב זמינות גבוהה.

תודה,

ולנטינו

נ.ב .: מצטער על הקישור שבור אבל, בתור משתמש חדש, אני לא יכול לכתוב יותר מ 1


19
2017-09-29 10:06



רשומות A מרובות מתוכננות, אבל עבור איזון עומסים, ולא להיכשל. הלקוחות יקבלו את התוצאות במטמון, וימשיכו להשתמש בבריכה המלאה (כולל ה- IP השבור) למשך מספר דקות לאחר שתשנה את הרשומה. - Cian
אז, זה מה שכתב crypto.stanford.edu/dns/dns-rebinding.pdf פרק 3.1 שווא? << סיכות של Internet Explorer 7 סיכות DNS למשך 30 דקות. למרבה הצער, אם לדומיין של התוקף יש רשומות A מרובות והשרת הנוכחי הופך ללא זמין, הדפדפן ינסה כתובת IP אחרת תוך שנייה. - Valentino Miazzo
העבירו אותי לכאן serverfault.com/questions/69870/... - Valentino Miazzo


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

זה עובד בסדר, אבל יש לפחות שלושה דקויות למדתי בדרך הקשה.

1) דפדפנים ייכשלו מהכתובת IP שאינה עובדת ל- IP עובד לאחר 30 שניות (בפעם האחרונה שבדקתי), אם שניהם נחשבים פעילים בכל מה שנשמר ב- DNS עבור הלקוחות שלך. זה בעצם דבר טוב.

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

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

3) אם אתה מפרסם אינטרנט APIs, שירותי REST, וכו ', אלה בדרך כלל לא נקראים על ידי דפדפנים, ולכן לדעתי DNS כשל מתחיל להראות פגמים אמיתיים. זו אולי הסיבה שחלק אומרים, כפי שאתה שם את זה "זה לא מומלץ". הנה הסיבה שאני אומר את זה. ראשית, היישומים שצורכים כתובות אתר אלה בדרך כלל אינם דפדפנים, ולכן הם חסרים את מאפייני הסיסמאות של 30 שניות / לוגיקה של דפדפנים נפוצים. שנית, האם או לא ערך DNS השני נקרא או אפילו DNS מחדש סקרים תלוי מאוד על פרטים ברמה נמוכה תכנות של ספריות רשת בשפות תכנות בשימוש על ידי אלה API / REST לקוחות, ובדיוק איך הם נקראים על ידי אפליקציית ה- API / REST של הלקוח. (תחת הם מכסה, האם לקרוא את הספרייה get_addr, ומתי? אם שקעים לתלות או לסגור, האם App לפתוח מחדש את ארובות חדשות? האם יש איזשהו לוגיקה timeout וכו 'וכו')

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


11
2018-04-12 01:21



ספרייה שאינה מנסה שוב על RRs אחרים עבור כתובת שבור. הצבע על היזמים בעמודים הידניים עבור getaddrinfo () וכו ' - Jasen


יש חבורה של אנשים המשתמשים בנו (Dyn) עבור כשל. זה מאותה סיבה אתרים יכולים לעשות את דף המצב כאשר יש להם זמן השבתה (לחשוב על דברים כמו לוויתן Fail של טוויטר) ... או פשוט רק לנתב את התנועה על בסיס TTLs. יש אנשים שחושבים כי DNS Failover הוא הגטו ... אבל אנחנו ברצינות תוכנן הרשת שלנו עם כשל מהרגע הראשון ... כך שזה יעבוד כמו גם חומרה. אני לא בטוח איך DME עושה את זה, אבל יש לנו 3 מתוך 17 הקרוב ביותר שלנו Anycasted PoPs לפקח על השרת שלך מן המיקום הקרוב ביותר. כאשר הוא מזהה שניים מתוך שלושה כי זה למטה, אנחנו פשוט לנתב את התנועה אל ה- IP אחרים. זמן ההשבתה היחיד הוא עבור אלה שהיו באותו ביקוש עבור שאר מרווח TTL.

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

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


9
2018-05-25 19:38



למה אתה מתכוון "יכול להיות יעיל בדיוק כמו חומרה"? איזה סוג של חומרה עושה ניתוב DNS? - mpen
@ ריאן, למה אתה מתכוון כשאתה אומר "גטו"? - Pacerier
במילה זו, המילון העירוני לא נותן הגדרות עם משמעות חיובית, אני מניח ש"פתרון קבצן "יכול להיות תרגום מתאים. - Jasen


אפשרות אחרת היא להגדיר את שרת שם 1 במיקום A ושרת שם 2 במיקום B, אבל להגדיר כל אחד כך כל הרשומות על התנועה N1 נקודה לנקודות IP עבור מיקום A, ועל NS2 כל רשומות נקודת IP עבור מיקום B. ואז להגדיר את TTLs עבור מספר נמוך מאוד, ולוודא הרשומה התחום שלך על הרשם כבר ההתקנה עבור NS1 ו NS2. בדרך זו, זה יהיה לטעון באופן אוטומטי את האיזון, ולהיכשל מעל אחד צריך לשרת או קישור אחד למיקום הולך למטה.

השתמשתי בגישה זו בצורה שונה במקצת. יש לי מיקום אחד עם שני ספקי שירותי אינטרנט ושימוש בשיטה זו כדי לכוון את התנועה מעל כל קישור. עכשיו, זה עשוי להיות קצת יותר תחזוקה ממה שאתה מוכן לעשות ... אבל הייתי מסוגל ליצור חתיכה פשוטה של ​​תוכנה באופן אוטומטי מושך רשומות NS1, עדכונים כתובת IP הרשומה עבור אזורים לבחור, ודוחף אותם אזורים כדי NS2.


5
2017-08-07 05:13



האם השמות לא לוקחים יותר מדי כדי להפיץ? אם תשנה רשומת DNS עם TTL נמוך זה יעבוד באופן מיידי, אבל כאשר אתה משנה servererver ייקח 24 horus או יותר כדי להפיץ, ומכאן אני לא רואה איך זה יכול להיות פתרון כשל. - Marco Demaio