בחלק הקודם הכרנו מה זה bonding ממש בגדול, ובחלק הזה אני אסביר איך בעצם יוצרים אותו בהפצת הלינוקס השונות (כלומר דביאן וRed-Hat/CentOS).
היות והנושא הזה מתקדם מאוד יחסית, אני לוקח בחשבון כי אתם יודעים לבצע פעולות שונות הנדרשות, כלומר איך מריצים apt-get או yum וכו'
Debian
דביאן היא הפצת השרתים האהובה עלי ביותר, ולכן אתחיל דווקא בה, אם כי דווקא בה אין לי ניסיון ממשי, וזה מבוסס על קריאה של מספר מדריכים בנושא.
דבר ראשון צריך להתקין חבילה בשם ifenslave-2.6 במידה והיא לא מותקנת אצלכם. החבילה הזו תעזור לנו בעצם ליצור את ה bonding עצמו.
השלב השני יהיה להסיר את כל הdevice שבהם יש שימוש נוכחי (רמז: ifconfig). לאחר מכן נגיד לinit script של הרשת להסיר את הרשת עצמה.
במידה ואנחנו מחוברים מרחוק, דלגו על השלב השני, אבל יש לאתחל את המכונה לאחר מכן, בשביל להבטיח כי השינויים נכנסו לתוקף כמו שצריך.
עכשיו נערוך את /etc/network/interfaces:
auto bond0
iface bond0 inet static
address 10.1.0.3
netmask 255.255.255.0
network 10.1.0.0
gateway 10.1.0.254
up /sbin/ifenslave bond0 eth0 eth1
down /sbin/ifenslave -d bond0 eth0 eth1
מה שקורה כאן הוא שיצרנו device בשם bond0 והגדרנו הכל רגיל. הגדרנו לdevice בעצם להריץ תסריטים כאשר הוא עולה למעלה ולמטה, כאשר כאן הוא מריץ את הפקודה ifenslave ואמרנו לו באיזה device להשתמש לשם כך.
כמו כן יש לזכור להסיר את כל ההגדרות של eth0 ו eth1.
בקובץ של /etc/modprobe.d/arch/i386 (יכול להיות של64 ביט הוא נקרא שונה) יש לכתוב את השורות הבאות:
alias bond0 bonding options bonding mode=5 miimon=100 downdelay=200 updelay=200
וכמובן יש לוודא כי משתמשים בmode הרצוי לכם וזהו, עכשיו אפשר להרים את הרשת חזרה (או לאתחל את המחשב).
Red-Hat/CentOS
בהגדרות של modprobe.conf יש להכניס את השורות הבאות:
alias bond0 bonding options bond0 miimon=100 mode=5
כמובן שיש לדאוג שהן יצביעו ל mode המתאים.
יש ליצור בספרייה /etc/sysconfig/network-scripts/ קובץ בשם ifcfg-bond0 עם התוכן של:
DEVICE=bond0 IPADDR=10.1.0.3 NETMASK=255.255.255.0 NETWORK=10.1.0.0 BROADCAST=10.1.0.255 GATEWAY=10.1.0.254 ONBOOT=yes BOOTPROTO=none USERCTL=no
ויש לשנות את ההגדרות של ifcfg-eth0 וכן כל device נוסף בשימוש בצורה הבאה:
DEVICE=eth0 ONBOOT=yes BOOTPROTO=none USERCTL=no MASTER=bond0 SLAVE=yes
ואז אפשר לאתחל את הרשת או את המחשב.
בשביל לדעת אם השינויים תפסו ב2 ההפצות, אפשר להשתמש ב:
cat /proc/net/bonding/bond0
ולראות את התוכן.
חמוד בדיוק חפשתי משהו כזה, אבל עדיין לא הצלחתי להשתמש בזה
אני מחפש לנצל את חיבור הרשת שלי eth0 והאלחוטי eth1 ואת המודם הסללורי ppp0 במקביל. תוכל לפרט טיפה יותר ?
נ.ב אני משתמש בפדורה
הבעיה היא שהחיבורים האלו שלך הם לא קבועים,אלא משתנים. למשל ppp0 אם תפעיל vpn יכול להיות ה vpn וזה יהפוך ל ppp1 וכו'…
העיקרון הוא שאתה הופך את הגדרות ה devices לslave שמופנים כלפי ה bonding.
אם תראה מה אתה עושה יהיה קל יותר לעזור לך יותר מזה.
האם יש צורך לבטל את Network-Manager כדי שזה יעבוד ?
מעולם לא השתמשתי ב Network Manager בשרתים שעשיתי את זה.
צריך לבדוק אם יש שם תמיכה לזה.
תמיכה אין, אני רק חושב שהוא אולי מפריע
פינגבק: Ethernet Bonding – חלק ראשון « לראות שונה
זה מה שיש לי כרגע,
$ cat ifcfg-bond0
DEVICE=bond0
NETWORK=10.1.0.0
BROADCAST=10.1.0.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
TYPE=Ethernet
NM_CONTROLLED=no
IPV6INIT=no
IPADDR0=10.1.0.3
PREFIX0=24
GATEWAY0=10.1.0.254
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
NAME="System bond0"
UUID=ad33d8b0-1f7b-cab9-9447-ba07f855b143
IPADDR=10.1.0.3
NETMASK=255.255.255.0
PREFIX=24
GATEWAY=10.1.0.254
================================
$ cat ifcfg-eth0
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
# ---
# Using with bond test
DEVICE=eth0
BOOTPROTO=dhcp
TYPE=Ethernet
ONBOOT=yes
USERCTL=yes
IPV6INIT=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
HWADDR=B8:AC:6F:77:F0:A2
PEERDNS=yes
PEERROUTES=yes
LAST_CONNECT=1299455165
SLAVE=yes
MASTER=bond0
NM_CONTROLLED=yes
====================================
$ cat ifcfg-eth1
# Please read /usr/share/doc/initscripts-*/sysconfig.txt
# for the documentation of these parameters.
DEVICE=eth1
BOOTPROTO=dhcp
TYPE=Wireless
HWADDR=c4:46:19:25:e8:e0
NM_CONTROLLED=yes
ONBOOT=no
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
MODE=Managed
RATE=auto
ESSID=
CHANNEL=
MASTER=bond0
SLAVE=yes