הקמת מערכת בקרת רוחב הפס (Bandwidth Control)

מחבר המדריך: אבינועם לבקוביץ
ניתן ליצור קשר עם המחבר בדוא"ל
כל הזכויות שמורות ©2004 לאבינועם לבקוביץ

מבוא

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

  1. הגבלת את רוחב הפס בזמן הורדה של אובייקטים מסוימים בלבד ( קבצי סרטים, תמונות, קבצי הפעלה וכ”ו)
  2. הגבלת רוחב הפס רק לאתרים\דומיין מוגדרים מראש.
  3. הגבלת רוחב פס עבור תחנות מסוימות
  4. יצירת מגבלות רוחב פס עבור תתי רשתות
  5. הגבלת רוחב הפס רק בשעות העבודה ושחרור המגבלה בשאר הזמן.
  6. ניתן לתת עדיפות ברוחב הפס לרשימת אתרים\משתמשים .

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

הלוגיקה של המערכת

מערכת חלוקת רוחב הפס של שרת Squid מורכבת ממעגלי השהיה (delay_pools), כל מעגל השהיה מגדיר רוחב פס מסוים אשר משמש את כל האובייקטים המקושרים למעגל השהיה זה, אובייקטים (כגון: כתובות IP, כתובות URL וכ”ו) מקושרים למעגלי השהיה תוך שימוש ברשימות בקרת גישה (ACL). כמו הרבה דברים בחיים גם מערכת חלוקת רוחב הפס מורכבת מ- 3 חלקים:
רשימות בקרת גישה (ACL) :
“רשימות בקרת הגישה” מגדירות אוסף אובייקטים כגון: שמות אתרים, כתובות IP, מילות מפתח וכ”ו (הסבר מפורט על ACL קיים במדריך הקמת שרת פרוקסי ). על מנת להגדיר ACL נשתמש בפורמט הבא :
acl ACL-Name ACL-Type Value
הערכים הקבילים מפורטים להלן -

  • ACL-Name: שם המחלקה, ניתן לבחור כל שם שרוצים. מומלץ לבחור שם בעל משמעות.
  • ACL-Type: פרמטר זה מגדיר את סוג הערך שאותה מחלקה תייצג, סוגי הערכים הפופולאריים הינם :
    • src - מקור הבקשה, כלומר כתובת הלקוח.
    • dst - יעד הבקשה, כלומר כתובת השרת.
    • srcdomain - מקור הבקשה, שם הדומיין של הלקוח.
    • dstdomain - יעד הבקשה, כלומר שם הדומיין של השרת.
    • time - זמן, נתון זה יכול להכיל ימים בשבוע או שעות ביום.
    • url_regex - רשימת ביטויים או מחרוזות.
  • Value: משתנה זה מכיל את האובייקט המקושר ל ACL. ניתן להגדיר רשימה של אובייקטים המקושרים ל ACL על ידי תחזוקת רשימת האובייקטים בקובץ, במקרה כזה יש להגדיר את הפרמטר Value כמסלול לקובץ הנ”ל. השימוש בקובץ מקל על ניהול האובייקטים ב- ACL , במידה ורוצים להוסיף או לגרוע אובייקטים מה- ACL יש לשנות רק את הקובץ .
  • מעגלי השהיה (delay_pools): חלוקת רוחב הפס מתבצעת על ידי הגדרת מעגלי השהיה המוכרים יותר בשם delay_pools. לכל מעגל השהיה כזה מקושרים אובייקטים המוגדרים באמצעות ACL ומגבלת רוחב הפס שאותו מעגל השהיה מייצר תיושם על האובייקטים הנ”ל.
  • רמות מעגלי ההשהיה (delay_class): ניתן להגדיר 3 רמות של מעגלי השהיה (delay_pools), כל רמה מאפשרת חלוקת רוחב הפס בצורה שונה. על ידי שילוב של מעגלי השהיה משלושת הרמות הנ”ל ניתן ליצור מערכות מורכבות.

הקמת המערכת

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

# DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)
# -----------------------------------------------------------------------------------------------------

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

הגבלת רוחב הפס

כפי שציינתי ישנן 3 רמות של מעגלי השהיה, כל רמה מאפשרת חלוקת רוחב הפס בצורה שונה הרמה הבסיסית ביותר הינה - delay_class 1 .

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

delay_class 1

זוהי הרמה הראשונה של מעגלי ההשהיה והיא גם הרמה הבסיסית ביותר. להלן דוגמא להגדרת מעגל השהיה ברמה 1, בדוגמא זו אנו נגביל את מהירות ההורדה של קבצי סרטים מסוג AVI :

acl  AVI_File  url_regex  .avi
delay_pools  1
delay_class  1  1
delay_parameters  1  1024/32000
delay_access   1   allow   AVI_File  

השורה הראשונה הינה הגדרת ACL בשם AVI_File, סוג האובייקטים שה-ACL הנ”ל יכיל יהיו מסוג url_regex (כלומר מחרוזות). התוצאה של הגדרה זו הינה רשימה בשם AVI_File המכילה את כל כתובות ה - URL המכילות את המחרוזת “avi.” ( כלומר, כל קבצי הסרטים מסוג avi ). ההגדרה הנ”ל הינה הגדרה סטנדרטית של רשימות בקרת גישה.

השורה השנייה מגדירה את מספר מעגלי השהיה שאנו מעוניינים להגדיר. בדוגמא הנ”ל אנו נגדיר מעגל השהיה אחד .

השורה השלישית יוצרת את מעגל ההשהיה. הפרמטר הראשון מייצג את מספר מעגל ההשהיה החדש ואילו הפרמטר השני מגדיר את הרמה של מעגל ההשהיה החדש. בדוגמא שלנו אנו ניצור את מעגל ההשהיה מספר 1 ברמה ראשונה (delay_class 1). חשוב לשים לב לפורמט של ההגדרה :

delay_class <הרמה של מעגל ההשהיה> <מספר מעגל ההשהיה>

השורה הרביעית מגדירה את מגבלת מהירות הגלישה עבור מעגל ההשהיה. הפרמטר הראשון מייצג את מספר מעגל ההשהיה שאותו מגדירים ואילו הפרמטר השני מגדיר את מגבלת רוחב הפס עבור אותו מעגל השהיה על ידי שימוש בשני פרמטרים בפורמט x/y . הפרמטר x (בדוגמא שלנו - 1024) הינו רוחב הפס המוקצב למעגל ההשהיה מספר 1 (מספר מעגל ההשהיה הינו הפרמטר לפני x/y). הפרמטר y (בדוגמא שלנו - 32000) הינו הנפח ממנו תתחיל הגבלת רוחב הפס. השימוש בשני הפרמטרים הללו מאפשר הורדה של אובייקטים במהירות מקסימאלית עד הגודל הנקבע על ידי הפרמטר y וכך אנו נאפשר הורדה של אובייקטים קטנים במהירות מקסימאלית וליישם את מגבלת רוחב הפס בהורדת אובייקטים מעבר לנפח המצוין על ידי הפרמטר y. חשוב לזכור שהערכים של x ו- y הינם ב- Byte , מכיוון שנהוג להתייחס לגדלים הנ”ל בערכים של ביטים ומכיוון שכל Byte מכיל 8 Bits יש לבצע המרה קטנה, כלומר בדוגמא הנ”ל אנו נאפשר הורדה של אובייקטים עד גודל 256Kbits (חישוב קצר- 32000*8 ) במהירות המרבית, לאחר הורדה של 256KBit המערכת תגביל את רוחב הפס ל- 8Kbit/sec (חישוב קצר- 1024*8 ). הפורמט של ההגדרה :

delay_parameters <מספר מעגל ההשהיה> x/y

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

delay_access <מספר מעגל ההשהיה> <allow/deny> <Acl-Name>

לסיכום :
בדוגמא הנ”ל אנו נאפשר להוריד אובייקטים הנכללים בהגדרה של AVI_File במהירות מקסימאלית עד נפח של 256Kbits, מעבר לנפח זה המערכת תיישם את מגבלת רוחב הפס והוא יוגבל ל- 8Kbit/sec , בצורה כזו אנו נגביל את רוחב הפס המשמש להורדת קבצים גדולים מסוג AVI.

delay_class 2

ברמה זו של מעגלי ההשהיה, העניינים מתחילים להתחמם, בעזרת מעגל השהיה ברמה 2 אנו יכולים לחלק את רוחב הפס הכללי שלנו לחלקים שווים ולהקצות לכל כתובת IP (כל תחנה) נתח מוגדר מראש. הדוגמא הבאה מתארת ארגון שבו יש 50 תחנות ורוחב פס 512Kbits/Sec לאינטרנט. נניח שבארגון יש שרת דואר ארגוני, שרת FTP ושרת Apache המארח את אתר הבית של הארגון. יש להקצות לשרתים הנ”ל 112Kbits/Sec ולאפשר לתחנות גישה לאינטרנט עם היתרה, כלומר רוחב הפס המוקצה לשימוש התחנות הינו 400Kbit/Sec, נניח שברצוני לחלק את רוחב הפס בצורה שווה בין התחנות, כלומר לכל תחנה יוקצו 8Kbit/Sec מרוחב הפס הכללי, כפי שציינתי בסעיף הקודם : הערכים שאנו נגדיר הינם ב - Byte (תזכורת: על מנת להמיר את הערך מ- bits ל- Byte יש לחלק את הערך ב- 8) כלומר רוחב הפס המקסימאלי שיוקצה למשתמשים הינו 50KByte לשנייה, מכיוון שיש לי 50 תחנות אני אוכל להקצות לכל משתמש רוחב פס של כ- 1000Byte לשנייה.
טבלת ההמרה הבאה מסכמת את הנתונים :
רוחב הפס המוקצה ב- Kbits/Sec רוחב הפס המוקצה ב- Bytes/Sec
שרתים (FTP, MAIL, APACHE) 112000 14000
50 משתמשים 400000 50000
משתמש 8000 1000

acl    My_Net   src   192.168.1.0/255.255.255.0
delay_pool   1
delay_class  1  2
delay_parameters   1   50000/50000    1000/1000
delay_access   1   allow    My_Net

השורה הראשונה הינה הגדרת ACL בשם My_Net סוג האובייקטים שה-ACL הנ”ל יכיל יהיו מסוג src (כלומר כתובות IP). התוצאה של הגדרה זו הינה רשימה בשם My_Net אשר מכילה את טווח הכתובות 192.168.1.0 → 192.168.1.255

השורה השנייה מגדירה את מספר מעגלי השהיה שאנו מעוניינים להגדיר. בדוגמא הנ”ל אנו נגדיר מעגל השהיה אחד .

השורה השלישית יוצרת את מעגל ההשהיה. הפרמטר הראשון מייצג את מספר מעגל ההשהיה החדש ואילו הפרמטר השני מגדיר את הרמה של מעגל ההשהיה החדש. בדוגמא שלנו אנו ניצור את מעגל ההשהיה מספר 1 ברמה שניה (delay_class 2). חשוב לשים לב לפורמט של ההגדרה :

delay_class <הרמה של מעגל ההשהיה> <מספר מעגל ההשהיה>

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

delay_parameters <מגבלת רוחב הפס עבור כל משתמש> <מגבלת רוחב הפס הכללית> <מספר מעגל ההשהיה >

בדוגמא שלנו אנו נגדיר שבמעגל ההשהיה מספר 1 מגבלת רוחב הפס הכללי הינה 50000Byte/Sec ואילו מגבלת רוחב פס עבור כל משתמש הינה 1000Byte/Sec.

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

delay_class 3

רמה זו של מעגלי השהיה מאפשרת חלוקה של רוחב הפס ב- 3 רמות : - קביעת רוחב הפס הכללי שאותו אנו מעוניינים לחלק. - הקצאת רוחב פס לפי טווחי כתובות IP. (האופציה הזו תומכת רק בטווחים מסוג Class-C) - קביעת רוחב הפס עבור כל תחנה בטווחי הכתובות הנ”ל.

לצורך המחשת הרעיון ניקח לדוגמא ארגון שיש בו כ- 200 תחנות המחולקות בין 4 מחלקות כאשר כל מחלקה מוגדרת על טווח כתובות שלה (Class-C) :

  • מחלקת פיתוח - טווח כתובות 192.168.1.0/24
  • מחלקת תמיכה - טווח כתובות 192.168.2.0/24
  • מחלקת שיווק - טווח כתובות 192.168.3.0/24
  • מחלקת הנהלה - טווח כתובות 192.168.4.0/24

לארגון הנ”ל יש רוחב פס של 2MBits/Sec שעלינו לחלק בצורה שווה בין המחלקות. כל שלכל מחלקה יוקצה רבע מרוחב הפס הכללי, כלומר לכל טווח כתובות אנו נקצה כ- 512Kbits/Sec.
מכיוון שיש לי כ- 200 תחנות המחולקות בין המחלקות השונות, לכל תחנה יוקצה רוחב פס של כ- 10Kbits/Sec.

טבלת ההמרה הבאה מסכמת את הנתונים :
רוחב הפס המוקצה ב- bits/Sec רוחב הפס המוקצה ב- Bytes/Sec
רוחב הפס הארגוני 2048K 256K
מחלקה (טווח כתובות Class-C) 512K 64K
משתמש 10.24K 1.28K

להלן דוגמא למערכת בקרת רוחב פס אשר תגדיר את חלוקת רוחב הפס בארגון הנ”ל:

acl    My_Net   src   192.168.0.0/255.255.0.0
delay_pool   1
delay_class  1  3
delay_parameters  1  256000/256000  64000/64000  1280/1280
delay_access   1   allow    My_Net

השורה הראשונה הינה הגדרת ACL בשם My_Net סוג האובייקטים שה-ACL הנ”ל יכיל יהיו מסוג src (כלומר כתובות IP). התוצאה של הגדרה זו הינה רשימה בשם My_Net אשר מכילה את כל טווחי הכתובות של המחלקות השונות.

השורה השנייה מגדירה את מספר מעגלי השהיה שאנו מעוניינים להגדיר. בדוגמא הנ”ל אנו נגדיר מעגל השהיה אחד .

השורה השלישית יוצרת את מעגל ההשהיה. הפרמטר הראשון מייצג את מספר מעגל ההשהיה החדש ואילו הפרמטר השני מגדיר את הרמה של מעגל ההשהיה החדש. בדוגמא שלנו אנו ניצור את מעגל ההשהיה מספר 1 ברמה שלישית (delay_class 3). חשוב לשים לב לפורמט של ההגדרה :

delay_class <הרמה של מעגל ההשהיה> <מספר מעגל ההשהיה>

השורה הרביעית כפי שציינתי מעגלי השהיה ברמה3- מאפשרים להגדיר את רוחב הפס הכללי המוקצה, את רוחב הפס המוקצה כל טווח כתובות IP מסוג Class-C ואת רוחב הפס עבור המוקצה לכל משתמש, בשורה זו אנו מגדירים את מגבלות רוחב הפס הנ”ל, ההגדרה הינה בפורמט

delay_parameters <רוחב הפס עבור כל משתמש> <רוחב הפס עבור כל טווח כתובות> <רוחב הפס הכללי> <מספר מעגל ההשהיה >

בדוגמא שלנו מוגדר שבמעגל ההשהיה מספר 1 מגבלת רוחב הפס הכללי הינה 256000Byte/Sec , מגבלת רוחב פס עבור כל טווח כתובות (כלומר עבור כל מחלקה) הינו 64000Byte/Sec ומגבל רוחב הפס עבור כל משתמש הינה 1280Byte/Sec. הערה חשובה : במידה והגבלת רוחב הפס על המחלקה מספקת ניתן לבטל את מגבלת רוחב הפס עבור המשתמשים על ידי הגדרת רוחב הפס עבור כל משתמש כ- -1 .

השורה החמישית מיישמת את מעגל ההשהיה על טווחי הכתובות המוגדרים על ידי My_Net (כפי שהוגדרו בשורה הראשונה ) .

טיפ : מומלץ ליצור רשימות ACL תוך שימוש בקבצים הדבר מקל על הניהול של הרשימות הנ”ל.

דוגמאות מהחיים

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

דוגמא 1

המערכת בדוגמא הבאה תגביל את המשתמשים המוגדרים בקובץ “etc/squid/Slow-Users/” . אנו נקצה רוחב פס כללי של 12.5Kbyte/sec עבור כל המשתמשים שברשימה הנ”ל ונגביל את רוחב הפס עבור כל משתמש ל- 2.5Kbyte/sec , על מנת ליישם את המערכת אנו נשתמש במעגל השהיה ברמה - 2.

1.  acl   Slow-Users   src   "/etc/squid/Slow-Users"
2.  acl   All   src  0.0.0.0/0.0.0.0
3.  delay_pools   1
4.  delay_class   1   2
5.  delay_parameters   1   12500/12500   2500/5000
6.  delay_access   1   allow   Slow-Users
7.  delay_access   1   deny   All

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

שורות 1,2: שורות אלו מגדירות 2 רשימות ACL, רשימת ACL אחת בשם Slow-Users אשר תכיל את כתובות ה-IP ושמות המחשב אשר רשומים בקובץ “etc/squid/Slow-Users/”. ורשימת ACL שנייה אשר מכילה את כל טווח כתובות ה- IP האפשריות (ברוב המקרים כבר קיימת הגדרת הרשימה all כחלק ממנגנון בקרת הגישה המגיע עם שרת ה- Squid, במידה וזה המצב ניתן להשתמש בהגדרה שכבר קיימת ולוותר על ההגדרה הנוכחית של רשימת All). להלן דוגמא לקובץ etc/squid/Slow-Users/ :

User1.mydomain.com
192.168.1.0/255.255.255.0
Manager.mydomain.com
192.168.2.43

כפי שניתן לראות הקובץ יכול להכיל שמות מחשב (FQDN), כתובות של רשתות או כתובות IP של תחנות. בזמן אתחול שרת ה- Squid הקובץ נפתח והתוכן שלו נכתב לזיכרון כחלק מקובץ ההגדרות squid.conf. אחד היתרונות הבולטים של שימוש בקבצים מסוג זה הינו קלות הניהול והתפעול של רשימות ה- ACL, הרבה יותר קל ובטוח להוסיף או לגרוע אובייקטים מקובץ מאשר לחפש הגדרה מסוימת בקובץ ההגדרות squid.conf.

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

שורה 4: שורה זו מגדירה שמעגל ההשהיה מספר 1 הינו מעגל השהיה ברמה - 2,

שורה 5: שורה זו מגדירה עבור מעגל ההשהיה מספר 1 את מגבלת רוחב הפס הכללית (12500/12500) ואת מגבלת רוחב הפס האישית עבור כל משתמש (2500/2500).

שורה 6: שורה זו מיישמת את מעגל ההשהיה מספר 1 על Slow-Users.

שורה 7: שורה זו מונעת את השימוש במעגל ההשהיה מספר 1 עבור כל “שאר העולם” כלומר לכל האובייקטים שלא נמצאו מתאימים לחוק בשורה 6.

דוגמא 2

בדוגמא זו אנו ניצור שני מעגלי השהיה, האחד עבור משתמשים שאינם זקוקים לרוחב פס גדול במהלך עבודתם, משתמשים אלו יוגדרו בקובץ : etc/squid/Slow-Users/ , ואילו המעגל השני יאפשר רוחב פס גדול יותר עבור המשתמשים המוגדרים בקובץ : etc/squid/Fast-Users/ , על מנת ליישם את המערכת אנו נשתמש במעגל השהיה ברמה - 2.

1.     acl   Slow-Users   src    "/etc/squid/Slow-Users"
2.     acl   Fast-Users   src     "/etc/squid/Fast-Users"
3.     acl   All    src   0.0.0.0/0.0.0.0
4.     delay_pools   2
5.     delay_class   1   2
6.     delay_class   2   2
7.     delay_parameters   1   12500/12500   500/2500
8.     delay_parameters   2   112500/12500   5000/7500
9.     delay_access   1   allow   Slow-Users
10.   delay_access   1   deny    All
11.   delay_access   2   allow   Fast-Users
12.   delay_access  2   deny   All

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

שורות 1,2,3: שורות אלו מגדירות 3 רשימות ACL עליהם נממש את מעגלי ההשהיה : Slow-Users : רשימת ACL זו תכיל את כתובות ה-IP ושמות המחשב אשר רשומים בקובץ “etc/squid/Slow-Users/”. כפי שהשם מרמז מי שנכלל ברשימה זו ייהנה מאינטרנט איטי. Fast-Users : רשימת ACL זו תכיל את כתובות ה-IP ושמות המחשב אשר רשומים בקובץ “etc/squid/Fast-Users/”. ניתן להבין שאילו ברי המזל שבחבורה. All : רשימת ACL זו תכיל את כל טווח כתובות ה- IP האפשריות (ברוב המקרים כבר קיימת הגדרת הרשימה all כחלק ממנגנון בקרת הגישה המגיע עם שרת ה- Squid, במידה וזה המצב ניתן להשתמש בהגדרה שכבר קיימת ולוותר על ההגדרה הנוכחית של רשימת All).

שורה 4: שורה זו מגדירה שמערכת הגבלת רוחב הפס שלנו תהיה מורכבת מ- 2 מעגלי השהיה.

שורה 5: שורה זו מגדירה שמעגל ההשהיה מספר 1 הינו מעגל השהיה ברמה - 2,

שורה 6: שורה זו מגדירה שמעגל ההשהיה מספר 2 הינו מעגל השהיה ברמה - 2,

שורה 7: שורה זו מגדירה עבור מעגל ההשהיה מספר 1 את מגבלת רוחב הפס הכללית (12500/12500) ואת מגבלת רוחב הפס האישית עבור כל משתמש (500/2500). כלומר המשתמשים שיוגדרו תחת מעגל השהיה זה יוכלו להוריד במהירות מקסימאלית אובייקטים עד נפח של 2500Byte מעבר לנפח זה המערכת תגביל את רוחב הפס של אותם משתמשים ל - 500Byte/sec

שורה 8: שורה זו מגדירה עבור מעגל ההשהיה מספר 2 את מגבלת רוחב הפס הכללית (112500/12500) ואת מגבלת רוחב הפס האישית עבור כל משתמש (5000/7500).

שורה 9,10,11,12: שורות אלו מגדירות את מעגלי ההשהיה לרשימות ה- ACL: שורה 9 : שורה זו מיישמת את מעגל ההשהיה מספר 1 על Slow-Users. שורה 10 : שורה זו מונעת את השימוש במעגל ההשהיה מספר 1 עבור כל “שאר העולם” כלומר לכל האובייקטים שלא נמצאו מתאימים לחוק בשורה 9. שורה 11 : שורה זו מיישמת את מעגל ההשהיה מספר 2 על Fast-Users. שורה 12 : שורה זו מונעת את השימוש במעגל ההשהיה מספר 2 עבור כל “שאר העולם” כלומר לכל האובייקטים שלא נמצאו מתאימים לחוק בשורה 11.

דוגמא 3

בדוגמא זו אנו ניצור מערכת אשר תגביל את רוחב הפס אך ורק בימים ראשון עד שישי בשעות המוגדרות כשעות העבודה (8:00 עד 17:00). בשעות העבודה המערכת תגביל את רוחב הפס לטווח כתובות ה IP המוגדר ב- ACL בשם MY_NET. אנו נקצה רוחב פס כללי של 12.5Kbyte/sec עבור כל המשתמשים שברשימה הנ”ל ונגביל את רוחב הפס עבור כל משתמש ל- 2.5Kbyte/sec , על מנת ליישם את המערכת אנו נשתמש במעגל השהיה ברמה - 2.

1. acl     My_Net     src      192.168.1.0/24
2. acl     All              src      0.0.0.0/0.0.0.0
3. acl     BC_time     time    S M T W H F 9:00-17:00
4. delay_pools 1
5. delay_class 1 2
6. delay_parameters    1     12500/12500 2500/5000
7. delay_access   1    allow   My_Net   BC_time
8. delay_access   1   deny    All

הערה : מספור השורות נועד לצרכי ההסבר בלבד, ואינו חלק מהגדרת מערכת ההשהיה (יש למחוק את מספרי השורות לפני השימוש בדוגמא זו). שורה 1 : הינה הגדרת ACL בשם My_Net סוג האובייקטים שה-ACL הנ”ל יכיל יהיו מסוג src (כלומר כתובות IP). התוצאה של הגדרה זו הינה רשימה בשם My_Net אשר מכילה את טווח הכתובות 192.168.1.0 → 192.168.1.255 שורה 2 : בשורה זו אנו נגדירACL בשם All, רשימת ACL זו תכיל את כל טווח כתובות ה- IP האפשריות (ברוב המקרים כבר קיימת הגדרת הרשימה all כחלק ממנגנון בקרת הגישה המגיע עם שרת ה- Squid, במידה וזה המצב ניתן להשתמש בהגדרה שכבר קיימת ולוותר על ההגדרה הנוכחית של רשימת All). שורה 3: בשורה זו אנו נגדיר ACL בשם BC_time, רשימת ACL זו תגדיר את השעות 9:00-17:00 בימי השבוע ראשון עד שישי. האותיות “M T W H F” מייצגות את ימי השבוע ואילו השעות 9:00-17:00 מגדירות את השעות בכל יום מראשון עד שישי. שורה 4: שורה זו מגדירה שמערכת הגבלת רוחב הפס שלנו תהיה מורכבת ממעגל השהיה אחד. שורה 5: שורה זו מגדירה שמעגל ההשהיה מספר 1 הינו מעגל השהיה ברמה - 2, שורה 6: שורה זו מגדירה עבור מעגל ההשהיה מספר 1 את מגבלת רוחב הפס הכללית (12500/12500) ואת מגבלת רוחב הפס האישית עבור כל משתמש (2500/2500). שורה 7: בשורה זו אנו מיישמים את מגבלות רוחב הפס שהגדרנו במעגל השהיה 1 על כתובות ה- IP שהוגדרו כ- My_Net בזמנים שהוגדרו כ- BC_time. שורה 8 : שורה זו מונעת את השימוש במעגל ההשהיה מספר 1 עבור כל “שאר העולם” כלומר לכל האובייקטים שלא נמצאו מתאימים לחוק בשורה 7.

בהצלחה !!

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

מדריכים/הקמת_מערכת_בקרת_רוחב_הפס_bandwidth_control.txt · שונה לאחרונה ב: 2008/06/19 18:34 (עריכה חיצונית)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0