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

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

שלושה דברים שונים נושאים תווית מדינה

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

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

בדקו את הכתובת, לא את הדגל

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

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

קרבה במפה אינה קרבה ברשת

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

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

אשרו בעצמכם את כתובת היציאה

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

curl -sS https://api.ipify.org; echo
curl -sS --interface tun0 https://api.ipify.org; echo
ip route get 1.1.1.1
ip -6 addr show dev tun0

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

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

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