דחיסה ב-OpenVPN: לסרב, לקבל בלבד או LZO מלא?
comp-lzo no אינו סירוב מוחלט. השוו בין סירוב לדחיסה, קבלה חד-כיוונית בזמן הגירה והשארתה, ואז בדקו מה עושה ה-offload.
שלושה שורות בקובץ פרופיל נראות כאילו כולן מכבות את הדחיסה, ורק אחת מהן באמת עושה זאת. ההבדל חשוב, מפני שהאזהרה שאתם רוצים להשתיק היא תסמין, ואילו המדיניות היא שקובעת אם הצד השני עדיין יכול לדחוס. השוואת האפשרויות על ציר אחד, כלומר מה כל אחת מתירה לאחר השינוי, מסירה את רוב העמימות. איזו מהן תרצו תלוי בשאלה אם אתם נודדים או מתיישבים.
שלוש מדיניות שנראות דומות בקובץ תצורה
כל אפשרות עונה על שאלה אחרת. allow-compression no דוחה מטענים דחוסים לחלוטין, allow-compression asym פותח את מה שמגיע ולעולם אינו דוחס את מה שיוצא, ו-comp-lzo no הישן משאיר מקום ל-push של הצד האחר שיפעיל דחיסה. רק הראשונה היא מדיניות ששרת אינו יכול לעקוף.
כתבו את השלושה בטבלה לפני הבחירה, מפני שהשמות קרובים מספיק כדי להטעות סוקר. שניים מהם עדיין מריצים קוד פירוק דחיסה על מנות נכנסות, וזה בדיוק מה שטיעון האבטחה עוסק בו. השלישי מסיר את היכולת במקום להגביל את כיוונה. אם רשומת השינוי אומרת שהדחיסה מושבתת, שורה אחת בדיוק ממלאת את המשפט הזה.
האזהרה שפתחה את החקירה אינה המטרה. השתקתה תוך השארת מדיניות מתירנית מניבה יומן נקי וחשיפה שלא השתנתה.
| Setting | What it permits | When it is the right answer |
|---|---|---|
allow-compression no | No compressed payloads, and no compression framing under offload | Both ends can be changed now |
allow-compression asym | Decompress inbound only | A dated migration while peers catch up |
comp-lzo no | Off locally, still pushable by a peer | Legacy compatibility you can still justify |
מה משמעות no באפשרות LZO הישנה
באפשרות LZO המיושנת, no מכבה את הדחיסה לצד המקומי בלי לאסור על הצד האחר להפעיל אותה במקום שבו המדיניות מתירה זאת. חוסר הסימטריה הזה הוא הסיבה לכך שהעברת פרופיל לסירוב מוחלט משנה התנהגות בדרכים שבדיקת מעבדה עם שרת אחד אולי לעולם לא תחשוף.
חשש האבטחה מותנה ולא מוחלט. כאשר תוקף יכול להציב טקסט גלוי נבחר לצד סוד ולצפות כיצד הדחיסה משנה את גודל התעבורה המוצפנת, קיים ערוץ מידע. המעבר מ-LZO ל-LZ4 משנה את האלגוריתם ואת המסגור, לא את המנגנון הזה.
לכן המסגור הכנה נוגע למה שאתם מוכנים להתיר, ולא לאיזה אלגוריתם מומלץ כעת. סירוב מוחלט הוא האפשרות היחידה שאינה תלויה בשיתוף הפעולה של הצד האחר.
קבלה בלבד היא מצב הגירה, לא יעד
קבלה לא-סימטרית קיימת כדי שצד אחד יוכל להפסיק לדחוס בעוד השני עדיין מצפה לכך. זהו גשר, ולגשרים דרושים תאריך סיום ובעלים. תעדו אילו עמיתים עדיין שולחים תעבורה דחוסה, מפני שהמדיניות מתירה בדיוק את התעבורה הזו. בלי הרשימה הזו, מצב ההגירה הופך לתצורה קבועה מכוח האינרציה.
לקוח אינו יכול לכפות על שרת לא תואם לוותר על המסגור הישן על ידי עריכת הקובץ שלו. כיוון ה-push נקבע בשרת, ולכן ההגירה מסתיימת למעשה בתצורת השרת ובקבצים שלו לכל לקוח.
מצבי stub משמרים את המסגור אך מדלגים על עבודת הדחיסה עצמה, והם אינם מקבילה ישירה לאפשרות הישנה. בדקו אותם מול העמית הוותיק ביותר שעדיין עליכם לתמוך בו לפני שתבחרו באחד.
היכן ה-offload של ערוץ הנתונים משנה את התשובה
ה-offload של ערוץ הנתונים מעביר את עיבוד המנות לליבה, ופרופיל שעדיין תלוי במסגור דחיסה עשוי שלא להתאים למסלול הזה. הכשל לא תמיד רועש: לקוח מתחבר ואז מתנהג אחרת מהמנהרה שבדקתם.
בדקו איזו מימוש פעיל לפני השינוי ואחריו, ולא רק אם החיבור מצליח. כאשר המסלול עם offload דוחה מסגור דחיסה, מדיניות סירוב מוחלט ופריסה עם offload מסכימות, בעוד מדיניות מתירנית ופריסה עם offload אינן מסכימות.
השילוב הזה ראוי לבדיקה משלו, מפני שדווקא שם קובץ שנראה נכון הוא בשקט לא הקובץ שבשימוש. השוו את המצב המנוהל לכוונה שנרשמה בפרופיל, מפני שרק אחד מהשניים גלוי ביומן.
בחרו מדיניות ואז אמתו את התוצאה המנוהלת
בחרו בסירוב מוחלט כאשר תוכלו לשנות את שני הקצוות, בקבלה לא-סימטרית כאשר עדיין לא, ובדחיסה מלאה רק כאשר תוכלו להסביר מדוע החשיפה מקובלת. אחר כך אמתו מה נוהל ולא מה כתוב בקובץ. יומן שקט יותר הוא ראיה רק כאשר הוא תואם למדיניות שהתכוונתם לפרוס.
שמרו את ההחלטה לצד הפרופיל שאליו היא חלה, עם התאריך והעמיתים שעדיין פטורים. כעבור חצי שנה, אותו רישום הוא ההבדל בין חריגה מכוונת לתקלה שאיש אינו יכול לתארך. כתבו אותו באותו מאגר כמו הפרופיל, כדי שהעורך הבא יראה את הסיבה לפני ההוראה.