השילוש הקדוש: Bonding, Bridging ו-VLANs

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

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

סכימה כללית תראה כך:

|------|                   |-----------|  |-------|  |-----|
| eth0 |--|             |--| bond0.100 |--| br100 |--| vm1 |
|------|  |  |-------|  |  |-----------|  |-------|  |-----|
          |--| bond0 |--|
|------|  |  |-------|  |  |-----------|  |-------|  |-----|
| eth1 |--|             |--| bond0.200 |--| br200 |--| vm2 |
|------|                   |-----------|  |-------|  |-----|

תודו שהשקעתי ב acsii art.

שלב הראשון הוא הגדרת ה-Bonding על 2 כרטיסי הרשת הפעילים. התצורה של כרטיסי הרשת נקבעת ע"י עריכת הקבצים:

/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1

יש להכניס את הקונפיגורציה הבאה, שם ה-Device צריך לתאום את שם הקובץ, למשל עבור ifcfg-eth0, נשתמש בערכים:

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
SLAVE=yes
MASTER=bond0

כדי ליצור את הקונפיגורציה של כרטיס ה-bonding, נערוך את הקובץ

/etc/sysconfig/network-scripts/ifcfg-bond0

ונזין את הערכים הבאים. שימו לב כי אין לכרטיס כתובת IP, זאת משום שהכתובות יהיו על ה-Bridge:

DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes

וכמובן, שאסור לשכוח את התוספות לקובץ

/etc/modprobe.conf

ההגדרות הבאות קובעות כי הכרטיס bond0, הוא כרטיס מסוג bonding, וכי יש להשתמש בתצורה של Active/Standby, עם החלפת כרטיס פעיל בעת זיהוי נפילת Link (בדיקה בכל 100 מילישניות)

alias bond0 bonding
options bonding mode=1 miimon=100

שלב הבא יהיה הגדרת ה-VLAN על כרטיס ה-Bonding. הגדרות אלו יאפשרו לנו לצרף כל כרטיס ל-Bridge אחר, וכך לספק גישה למכונות וירטואליות לרשתות שונות.

כדוגמה, נגדיר VLAN שמספרו 100 ונקשר אותו ל-Bridge ששמו br100. בתור התחלה, נגדיר את ה-VLAN ע"י יצירת הקובץ:

/etc/sysconfig/network-scripts/ifcfg-bond0.100

ובו הערכים הבאים:

DEVICE=bond0.100
BOOTPROTO=static
ONBOOT=yes
BRIDGE=br100
VLAN=yes

כעת ניתן להגדיר את ה-Bridge, ל"כרטיס" זה נגדיר כתובת רשת.  הגדרה זו תאפשר גישה לשרת המארח. אם יש לשרת כרטיס רשת יעודי לניהול, אז גם הגדרת כתובת IP אינה הכרחית.

יש לערוך את הקובץ

/etc/sysconfig/network-scripts/ifcfg-br100

ולהזין את הערכים הבאים:

DEVICE=br100
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.0.0.1
NETMASK=255.255.255.0
GATEWAY=10.0.0.254

בשלב הזה כל שנותר הוא לאתחל את הרשת בעזרת הפקודה

service network restart

ולהתחיל ליצור VM-ים שמקושרים ל-Bridge.
שמקושר ל-VLAN.
שמקושר ל-Bond.
שמקושר לכרטיסי רשת אמיתיים.

מאזין ל: Kaki King

הפוסט הזה פורסם בתאריך כללי. קישור קבוע.

3 תגובות על השילוש הקדוש: Bonding, Bridging ו-VLANs

  1. מאת ik_5:‏

    חשוב להדגיש שההגדרות שהצגת כאן של bonding הם עבור תצורה מבוססת RedHat. כלומר בדביאן זה יראה אחרת.

  2. מאת צפריר כהן:‏

    הערה קטנה: ע"מ להמנע מהודעות מביכות בעתיד, עדיף להשתמש בקובץ תחת modprobe.d במקום modprobe.conf עצמו. לדוגמה: ‎/etc/modprobe.d/vlan.conf

    ר' http://whatsup.org.il/forum/54137

  3. מאת כתריאל:‏

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

כתיבת תגובה

האימייל שלך לא יוצג בבלוג. (*) שדות חובה מסומנים

*

תגי HTML מותרים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>