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

המיתוס: טווח הוא נתיב

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

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

יישור הוא אריתמטיקה, לא סגנון

גדלי הבלוקים נקבעים לפי אורך הקידומת. /29 יכול להתחיל רק בכתובת שמתחלקת ב-8, /28 בכזו שמתחלקת ב-16, /27 בכזו שמתחלקת ב-32. הזיזו בלוק מהגבול שלו והמסכה תכסה קבוצת כתובות אחרת מזו שהתכוונתם אליה.

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

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

עברו על 200 עד 255

StepStartBlock that fitsLine for the profile
1.200, multiple of 8/29, 8 addresses192.168.0.200 255.255.255.248
2.208, multiple of 16/28, 16 addresses192.168.0.208 255.255.255.240
3.224, multiple of 32/27, 32 addresses192.168.0.224 255.255.255.224

הטווח מתחיל ב-.200, שהוא כפולה של 8, ולכן הבלוק הראשון הוא /29 מ-.200 עד .207. אחרי שמונה הכתובות האלה הערך הפנוי הראשון הוא .208, שמתחלק ב-16, ולכן /28 תופס .208 עד .223. מה שנשאר הוא .224 עד .255, שלושים ושתיים כתובות שמתחילות בכפולה של 32, כלומר /27. שלוש השורות האלה הן כל הפירוק.

כתבו אותן כשורות נתיב ולא כפרוזה. פרופיל שמחזיק רק את השורה הראשונה מכסה שמונה כתובות ומשאיר את השאר מחוץ למנהרה.

route-nopull
route 192.168.0.200 255.255.255.248
route 192.168.0.208 255.255.255.240
route 192.168.0.224 255.255.255.224

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

מה route-nopull עושה לתמונה

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

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

בדיקות שתופסות את הטעויות הרגילות

בדקו שכל מסכה היא רצף רציף אחד של אחדות. הערך 255.255.255.248 עובר ו-255.255.255.200 נכשל, ומסכה שאינה רציפה נדחית או נקראת לא נכון. אחר כך אשרו את המסלול לכתובת אחת בכל בלוק.

ip route get 192.168.0.205
ip route get 192.168.0.220
ip route get 192.168.0.240

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

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

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