אחד התקלות הנפוצות ביותר ב-DevOps הוא אובדן גישה לשרת מרוחק לאחר עריכת הגדרות רשת. ב-90% מהמקרים, הסיבה היא קונפליקט בין עריכה ידנית של /etc/network/interfaces לבין תצורת Netplan שנוצרה אוטומטית. לדוגמה, מהנדס מוסיף כתובת IP סטטית באמצעות כלים legacy, ולאחר netplan apply התצורה מתאפסת—SSH נופל. נראה כיצד להימנע מכך ונספק תצורות עובדות לתרחישים מרכזיים: IP סטטי, bonding, VLAN, Jumbo Frames. הניסיון שלנו כולל למעלה מ-80 פרויקטים של הגדרת תשתית רשת לקמעונאות, פינטק ולוגיסטיקה, מה שהפחית תקלות ב-30% וחסך עד $450–650 לשרת בשנה.
אילו בעיות אנחנו פותרים?
נפרק שלוש בעיות אופייניות שנתקלים בהן בעת הגדרת רשת בלינוקס.
קונפליקט בין Netplan ל-NetworkManager
באובונטו, Netplan מנהל את התצורה כברירת מחדל, אבל אם עורכים ידנית קבצים ב-/etc/network/interfaces או /etc/NetworkManager/system-connections/, שינויים עלולים ללכת לאיבוד ב-netplan apply הבא. זו הסיבה הנפוצה ביותר לניתוקי SSH פתאומיים—כ-60% מהתקלות בניסיון שלנו.
MTU שגוי
הגדרת Jumbo Frames ללא תיאום עם ציוד הרשת מובילה לפיצול מנות ולירידת ביצועים של עד 40%. ראינו מקרים שבהם חוסר התאמת MTU בין צמתים גרם לכשל בתעבורת NFS ו-iSCSI.
מורכבות עם bonding ו-VLAN
הגדרת איגוד ערוצים (bonding) דורשת בחירה מדויקת של מצב (active-backup, LACP, balance-xor) והתחשבות בתמיכת המתג. מצב שגוי יוצר חוסר יציבות במקום failover. מעבר מ-ifupdown ל-Netplan חוסך עד 30% מזמן תחזוקת הרשת.
כיצד אנו מגדירים ממשקי רשת
Netplan: YAML על גבי NetworkManager או systemd-networkd
Netplan הוא שכבת הפשטה שמייצרת תצורה עבור NetworkManager או systemd-networkd. בשרתים אנו משתמשים בדרך כלל ב-systemd-networkd כ-backend; במחשבים שולחניים, ב-NetworkManager. תיעוד Netplan מסביר: "Netplan משתמש ב-YAML כדי להגדיר ממשקי רשת ומייצר את התצורה הנדרשת עבור ה-backend הנבחר."
IP סטטי באובונטו:
---
# /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 10.0.1.100/24
routes:
- to: default
via: 10.0.1.1
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
search: [company.internal]
dhcp4: false
# Проверить синтаксис netplan generate # Применить с откатом (120 секунд) netplan try # Без отката netplan apply Bonding (איגוד קישורים) באמצעות Netplan:
---
network:
version: 2
renderer: networkd
ethernets:
eth0: {}
eth1: {}
bonds:
bond0:
interfaces: [eth0, eth1]
addresses: [10.0.1.100/24]
routes:
- to: default
via: 10.0.1.1
parameters:
mode: active-backup # или 802.3ad для LACP
mii-monitor-interval: 100
NetworkManager: nmcli למשימות שרת
ב-RHEL/Rocky/CentOS, NetworkManager הוא הכלי הראשי. # /etc/netplan/00-installer-config.yaml network: version: 2 renderer: networkd ethernets: eth0: addresses: - 10.0.1.100/24 routes: - to: default via: 10.0.1.1 nameservers: addresses: [1.1.1.1, 8.8.8.8] search: [company.internal] dhcp4: false נוח יותר מעריכה ידנית של קבצים:
# Список интерфейсов
nmcli device status
# Статический IP
nmcli connection modify "Wired connection 1" \
ipv4.method manual \
ipv4.addresses "10.0.1.100/24" \
ipv4.gateway "10.0.1.1" \
ipv4.dns "1.1.1.1,8.8.8.8"
nmcli connection up "Wired connection 1"
# VLAN
nmcli connection add type vlan \
con-name vlan100 \
dev eth0 \
id 100 \
ipv4.method manual \
ipv4.addresses "192.168.100.10/24" systemd-networkd: לשרתים ללא NetworkManager
אפשרות מינימליסטית—systemd-networkd ללא NetworkManager. בשימוש בהפצות קונטיינרים ושרתים:
# /etc/systemd/network/20-wired.network
[Match]
Name=eth0
[Network]
Address=10.0.1.100/24
Gateway=10.0.1.1
DNS=1.1.1.1
DNS=8.8.8.8
Domains=company.internal
[Link]
MTUBytes=9000 systemctl enable systemd-networkd systemctl start systemd-networkd networkctl status eth0 MTU 9000 (Jumbo Frames) יעיל רק כאשר הוא מופעל במתגים. MTU סטנדרטי הוא 1500; הגדלה ל-9000 מפחיתה עומס CPU בעד 20% להעברות קבצים גדולות.
השוואת כלי ניהול רשת
| כלי | תחום שימוש | תכונות |
|---|---|---|
| Netplan | Ubuntu, Debian (תיאור YAML) | מייצר תצורות עבור NetworkManager או systemd-networkd |
| NetworkManager | RHEL/CentOS/Rocky, מחשבים שולחניים | תומך בממשקים דינמיים, VPN, רשתות סלולריות |
| systemd-networkd | שרתים, קונטיינרים | קל משקל, מינימליסטי, ללא תלות מיותרת |
מצבי bonding: השוואה
| מצב | סובלנות לתקלות | תפוקה | דרישות מתג |
|---|---|---|---|
| active-backup | ✅ | קישור יחיד | כל מתג |
| 802.3ad (LACP) | ✅ | מצטבר | תמיכת LACP |
| balance-xor | ✅ | מצטבר ללא LACP | כל מתג, אך ללא הבטחת איזון |
למה Netplan עדיף על ifupdown
# Проверить синтаксис netplan generate # Применить с откатом (120 секунд) netplan try # Без отката netplan apply (כלי network: version: 2 renderer: networkd ethernets: eth0: {} eth1: {} bonds: bond0: interfaces: [eth0, eth1] addresses: [10.0.1.100/24] routes: - to: default via: 10.0.1.1 parameters: mode: active-backup # или 802.3ad для LACP mii-monitor-interval: 100 /nmcli) מיושן ואינו תומך בתרחישים מודרניים: bonding, VLAN, גשרים. Netplan מתאר הכל בקובץ YAML אחד, קל לקריאה ולניהול גרסאות. יתרה מכך, # Список интерфейсов nmcli device status # Статический IP nmcli connection modify "Wired connection 1" \ ipv4.method manual \ ipv4.addresses "10.0.1.100/24" \ ipv4.gateway "10.0.1.1" \ ipv4.dns "1.1.1.1,8.8.8.8" nmcli connection up "Wired connection 1" # VLAN nmcli connection add type vlan \ con-name vlan100 \ dev eth0 \ id 100 \ ipv4.method manual \ ipv4.addresses "192.168.100.10/24" מונע אובדן גישה לשרתים מרוחקים—תכונה ש-ifupdown חסרה. עלות המעבר מ-ifupdown ל-Netplan מתחילה ב-$45–65 לשרת ומחזירה את עצמה דרך הפחתת תקלות.
כיצד להימנע מקונפליקטים בין NetworkManager ל-systemd-networkd?
הרצת שני הדמונים בו-זמנית עלולה לגרום לנתיבים כפולים ולתקלות. אנו ממליצים לבחור backend אחד: לשרתים—systemd-networkd (השבתת NetworkManager), לתחנות עבודה—NetworkManager (השבתת systemd-networkd). ב-Netplan, הגדר # /etc/systemd/network/20-wired.network [Match] Name=eth0 [Network] Address=10.0.1.100/24 Gateway=10.0.1.1 DNS=1.1.1.1 DNS=8.8.8.8 Domains=company.internal [Link] MTUBytes=9000 או systemctl enable systemd-networkd systemctl start systemd-networkd networkctl status eth0 בהתאם.
הגדרת IP סטטי שלב אחר שלב באמצעות Netplan
- ערוך את הקובץ
ifupdown. - הגדר את הפרמטרים הרצויים (דוגמה למעלה).
- הרץ
ifupכדי לאמת את התחביר. - החל עם
ifdown—אם מתרחשת שגיאה, החיבור מתגלגל לאחור אוטומטית לאחר 120 שניות. - אם הכל עובד, אשר עם
netplan try.
מה כלול בעבודה?
הגדרת ממשקי רשת היא חלק ממשימות גדולות יותר. החבילה הסטנדרטית כוללת:
- ביקורת תצורה נוכחית: בדיקת MTU, מצבי bonding, DNS, ניתוב.
- תכנון סכמה חדשה: התחשבות בטופולוגיה, דרישות סובלנות לתקלות וביצועים.
-
יישום: כתיבת תצורות, החלתן באמצעות
renderer: networkdאוrenderer: NetworkManager, בדיקות. - תיעוד: תיעוד התצורה הסופית, הוראות לצוות הכוננות (runbook).
- תמיכה: ניטור רשת 24/7 (אופציונלי) ותגובה לתקלות.
אימות לאחר הגדרת התצורה
לאחר החלת התצורה, הרץ /etc/netplan/00-installer-config.yaml, netplan generate ו-netplan try. אם ping נכשל, בדוק MTU ושער. זמן ממוצע להגדרת ממשק אחד הוא 30 דקות, כולל בדיקות.
לוחות זמנים ועלות
לוחות זמנים: משעתיים ל-IP סטטי פשוט ועד 1-2 ימים ל-bonding + VLAN + jumbo frames עם בדיקות עומס. העלות מחושבת באופן אישי—צור קשר להערכת פרויקט. למהנדסים שלנו יש הסמכות לינוקס (RHCE, LPIC) וניסיון של למעלה מ-10 שנים. בשנים האחרונות השלמנו למעלה מ-80 פרויקטים של תשתית רשת.
קבל ייעוץ: נעזור לך לבחור את המחסנית האופטימלית ולהגדיר את הרשת שלך ללא תקלות. הזמן הגדרת רשת turnkey.







