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

התחילו מהקבוצה ומהיישומון

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

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

גילוי מקומי אמור להיעצר

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

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

שלושה דברים שמולטיקאסט מנותב צריך

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

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

ip maddr show dev tun0
ip mroute show
ss -gnu | grep 239.255.0.10
ip route get 10.20.5.20

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

הוכיחו זאת עם מקור אחד ומקבל אחד

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

tcpdump -ni tun0 -c 10 'ip multicast'
tcpdump -ni eth0 -c 10 'ip multicast and host 239.255.0.10'

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

העדיפו כתובת שירות כשצריך רק את השירות

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

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

מאמרים קשורים