שאלה מהו "anycast" וכיצד הוא מועיל?


מעולם לא שמעתי על anycast עד לפני כמה שניות, כאשר קראתי "מה הם כמה שרת מגניב או שימושי / טריקים ברשת?".

ויקיפדיה "Anycast"מאמר על זה הוא רשמי למדי ולא באמת לעורר תמונה מנטלית של איך זה היה בשימוש.

האם מישהו יכול להסביר בכמה משפטים לא רשמיים מה "anycast" הוא, איך אתה מגדיר את זה (רק במובן הכללי), ומה היתרונות שלה (מה זה עושה את זה קל יותר)?


78
2018-05-29 18:54






תשובות:


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

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

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

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

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


83
2018-05-29 19:22



האם anycast משתמש ברוחב פס גדול יותר בהשוואה לשידור ליעד בודד? תארו לעצמכם שיש לנו אלף שרתים כולם חולקים את אותה כתובת IP, כאשר אנו שולחים מנות כי כתובת, האם זה לא ייקח רוחב פס גדול יותר מאשר unicasting? - Pacerier
לא - תעבורה שתשלח לכתובת Anycast תגיע רק למיקום אחד שמפרסם את הכתובת. אתה יכול לחשוב על שידור, שבו מנות שנשלחו לכתובת קבוצת שידור לקבוצה נשלחות לכל המארחים המעוניינים בקבוצה זו. - Murali Suriar
האם לא הבעיה של "במקום להגדיר שרתי DNS שונים בהתאם למקום שבו שרת / תחנת עבודה נפרסת"מה הבעיה של anycast כאשר פשוט לשכפל מה שמות תחום כבר עושים? - Pacerier
@Pacerier - אינך יכול להשתמש בשמות דומיין כדי למצוא את שרת ה- DNS שלך - זוהי תלות מעגלית. דוגמה: הגדר את dns.foo.com. כמו שרת ה- DNS שלך. איזו כתובת IP אני שולח בקשות אל dns.foo.com? אני יודע, אני יחפש את זה ב- DNS. וכו ' - Murali Suriar


אחד הדברים שלעתים קרובות בלבול אותי בהבנת "anycast" הוא, כי בעוד הוא ברמה גבוהה, יישום מעשי זה בדרך כלל מסתכם בשתי דוגמאות:

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

  2. פרסום IP שירות זהה מנקודות מרובות בתוך הרשת שלך (דרך ניתוב סטטי, OSPF, EIGRP, או מה שלא יהיה). אם המסלולים משוקללים באופן שונהזה פועל כמנגנון כשל. אם המסלולים משוקללים באופן שווה זה יכול לנצל את כל מנות או לכל לזרום עומס יכולות איזון של רוב שם המותג, נתבים הספק. אתה צריך להיות זהיר כי שכבת היישום פרוטוקול נוח עם זה, בגלל זה אתה כמעט תמיד לשמוע על זה עם DNS שבו הבקשה היא תמיד מנות אחת והכל חסר מדינה. אישית, אני רואה את זה כמו פריצה hacky של בעיות שכבת היישום לתוך שכבת הרשת כאשר שילוב של DNS ובלוננסים לטעון הנכון יהיה כמעט תמיד פתרון טוב יותר.


31
2018-05-30 04:24



+1 להזכיר מנה אחת וחוסר אזרחות - nponeccop
הבעיה עם DNS היא כי ניתן להשתמש ב- Google או אחר פתרון מרחוק ואת השרת הקרוב לפתרון יכול להיות שונה מאשר למשתמש. כמובן שזה תקף רק anycast הוא עבור השימוש ב- DNS (למשל tcp anycast או שימוש אחר). - akostadinov
@cagenut, האם HTTP לשבור במקרה של איזון עומסים לכל מנות (בגלל משקולות או אחרת)? - Pacerier


משמש בעיקר עבור שירותים מבוססי UDP כמו DNS. ביסודו של דבר, אתה מכריז על אותו מסלול מחוץ למרכזי נתונים מרובים ברחבי העולם. בדרך זו, הלקוחות שלך יישלחו למרכז הנתונים "הטוב ביותר" ו "הקרוב ביותר" על בסיס מסלולי BGP. שמתי את "הטוב ביותר" ואת "הקרוב ביותר" במרכאות, כי ספקי הרשת יכול לשחק משחקים תנועה במסלול מרשתות מסוימות אחרת. בדרך כלל, דברים לעבוד על הטוב ביותר עם anycast, אבל זה לא ערובה.

דוגמה לכך תהיה רשימה של שרתי ה- DNS שלך כ- 1.2.3.4 ו- 1.2.3.5. הנתבים שלך יכריזו על נתיב עבור 1.2.3 / 24 מתוך מרכזי נתונים מרובים. אם אתה ביפן ויש לך מרכז נתונים, רוב הסיכויים שאתה תהיה בסופו של דבר שם. אם אתה בארה"ב, תישלח למרכז הנתונים האמריקאי שלך. שוב, זה מבוסס על ניתוב BGP ולא ניתוב גיאוגרפי בפועל, אבל זה בדרך כלל איך דברים להישבר.


16
2018-05-29 19:01



כיצד מתנגשים אז קונפליקטים? - Pacerier
אני לא בטוח למה אתה מתכוון על ידי קונפליקטים. BGP לא באמת מאפשר קונפליקטים. זה פשוט בוחרת מסלול. בעיה אחת (לעיתים קרובות התעלמו) עם anycast היא חוקית. מבחינה טכנית, anycasting מכוסה על ידי פטנטים שונים. אף אחד לא אוכף את זה, אבל סוגים שונים של תנועה (CDN, DNS, TCP לעומת UDP) מכוסים על ידי פטנטים שונים. סעיף זה צריך להיות מכוסה IANAL. - diq
אז אתה מתכוון כי שירותי ip2location אלה אינם מדויקים? כי אין מיקום רשמי עבור ה- IP וזה יכול להיות בכל מקום תלוי באיזה מחשב BGP אתה מדבר? - Pacerier


בהתאם לתגובה המקורית שלי, יש לי רק פירסם שני מאמרים נוספים בבלוג שלי זכאי: Anycast DNS - חלק 3, באמצעות RIP ו Anycast DNS - חלק 3, באמצעות RIP (המשך). האחרון נכנס לפרטים נוספים, אבל ב www.netlinxinc.com/netlinx-blog.html תמצאו מתכונים בפועל על איך להגדיר נתבים סיסקו קוד פתוח Quagga מארח מבוסס ניתוב תוכנה עבור Anycast DNS באמצעות RIP.

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

Anycast DNS - חלק 1, סקירה כללית

Anycast DNS - חלק 2, באמצעות נתיבים סטטיים

Anycast DNS - חלק 3, באמצעות RIP 

Anycast DNS - חלק 3, באמצעות RIP (המשך) 


8
2018-05-31 16:32



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


בהתחשב בכך הוא בעיקר DNS כרגע ...

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

מנקודת מבט של שרת:

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


4
2018-05-29 19:19





שימוש מעניין באמת של anycast הוא DNS. ניתן למקם 5 שרתי DNS שונים במיקומים פיזיים ורשתות שונים, אך לשתף כתובות בודדות (או של כתובות DNS ראשוניות ומשניות). תלוי איפה המקור, הם מקבלים מנותב הצומת הקרובה ביותר שלהם. זה עושה כמה איזון התנועה בתוספת זה מספק יתירות אם שרת DNS מת.


3
2018-05-29 19:03



אבל לא יתירות כבר מסופק על ידי מערכת ה- DNS? - Pacerier


לדברי אחד העמיתים שלי, זה גם שימושי כמו התקפה DoS התערבות טכניקה, כמו אנשים יכולים רק לתקוף את "הקרוב ביותר" Anycast כתובת ה- IP, אז אם יש הרבה zombines ב, לומר, ארה"ב, אתר היורו שלך יהיה בעיקר לא מושפעים, כי הם לא יכולים לשלוח מנות אליו.

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


2
2018-05-31 17:16



ובכן, אפילו במקרה הפשוט זה היה רק ​​לעצור את האנשים אשר כמו נתיב הולך לשרת זה --- למשל. אתה יכול לעצור אנשים שמגיעים אליך מקומקסט, אבל לא AT & T. אם יש לך את זה ההתקנה "כראוי" עבור כשל (לעקוב אחר שירות L7, להפסיק להכריז כאשר זה הולך למטה), אז זה בעצם הרבה יותר קשה להתמודד עם התקפות DoS מאז זה יהיה Nuke שרת אחד ואז לעבור אל הבא כאשר זה ההודעות נלקחות למטה ... - James Cape
@JamesCape, מעניין, אבל כאשר הם עוברים לשלב הבא, דוס נכשל מאז אנשים אינם מסוגלים להתחבר נכון? - Pacerier
@ Pacerier במקרה הפשוט ביותר, שבו אתה פשוט לפרסם את אותו IP בכל מקום ללא אינטליגנציה על זה, כן. עם זאת, אם אתה מנסה לקבל חכם ולסגת את הפרסומת בארה"ב כי השירות אינו מגיב, אז פרסומת שמאל רק יהיה אחד באירופה. אז כל זומבים בארה"ב יפגע לאחר מכן את השרת הזמין הבא, ולהרוג את זה יותר מדי. - James Cape


זה גם טוב לציין כי Anycast אינו טוב או אמין עבור כמה חיבורים TCP כי לא יכול לשרוד איפוס או כל שיחה ארוכה.

Anycast IPs, באמצעות BGP, לספר לאינטרנט שיש 2, 3 או יותר נתיבים ל- HOST מסוים, אולם בפועל הם אלה לא אותו מארח, הם העתקים מדויקים של המארחים שפורסמו על פני מרכזי נתונים מרובים כדי להשיג חיבורים חביון נמוכה יותר.

לדוגמה, יש לי 3 שרתים שעושים 301 ללא ניתוב מחדש של www עבור 198.251.86.133, אם אתה מבצע פינג במארח זה, ייתכן שתקבל תגובות DUPLICATE בזמנים, או אפילו טיפות בהתאם למקום שבו אתה נמצא, שכן השרתים שלי הם US-East, US -West, ו EUR. עבור חיבורים קצרי זמן (כמו 301 של מטמון הדפדפן) זה לתת תגובה מהירה על ידי שרת מקומי במרכז הנתונים הקרוב ביותר.

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


2
2017-10-13 12:58



Re "פינג"; לא ping חיבור UDP? - Pacerier
Re "כמו IP זה יהיה (בתרחישים אופייניים) תמיד להצביע על מרכזי נתונים אלה"; האם אתה בטוח? אם השרת מפסיק לפעול, הם יתחילו להצביע על השרת הקרוב הקרוב ביותר, לא? - Pacerier