Networking

ארכיטקטורת Spine-Leaf: המדריך המלא בעברית לרשת מרכז נתונים מודרנית — מ-Three-Tier ל-Clos Fabric

15 דק׳ קריאהמכללת נטמי
ארכיטקטורת Spine-Leaf: המדריך המלא בעברית לרשת מרכז נתונים מודרנית — מ-Three-Tier ל-Clos Fabric

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

הבעיה: המודל ההיררכי של שלוש השכבות נשבר

במשך שני עשורים תכננו רשתות לפי מודל שלוש השכבות של סיסקו: Access (חיבור השרתים והתחנות), Distribution/Aggregation (גבול L2/L3, מדיניות, ACL, ניתוב בין רשתות) ו-Core (מיתוג מהיר בין אזורים והחוצה ל-WAN). המודל הזה נבנה לעולם שבו רוב התעבורה היא North-South: לקוח פונה לשרת, השרת מחזיר תשובה, וזהו.

מרכז נתונים של היום נראה אחרת לגמרי. שרת אפליקציה מדבר עם שרת בסיס נתונים, מיקרו-שירות קורא למיקרו-שירות אחר, מכונה וירטואלית עוברת בין מארחים ב-vMotion, ומערכת אחסון משכפלת בלוקים בין מדפים. כל אלה הם תעבורת East-West — שרת מול שרת — והיא מהווה היום את רוב התעבורה בפאבריק. במודל שלוש השכבות, שרת בשורה אחת שמדבר עם שרת בשורה אחרת נאלץ לטפס עד ה-Distribution ולעיתים עד ה-Core וחזרה. שלוש קפיצות ויותר, עם עומס שנופל בדיוק על החוליה היקרה ביותר.

  • Spanning Tree חוסם קישורים מיותרים — חצי מרוחב הפס שקניתם פשוט יושב בחוסר מעש במצב Blocking.
  • מספר קפיצות לא אחיד — שני שרתים סמוכים מקבלים השהיה אחת, שני שרתים מרוחקים מקבלים השהיה אחרת. אין דטרמיניזם.
  • צוואר בקבוק בשכבת ה-Aggregation — כל התעבורה בין שורות עוברת דרך אותם שני מתגים.
  • גדילה קשה — הוספת קיבולת דורשת שדרוג של ציוד ליבה יקר (Scale-Up) במקום הוספת מתגים זולים (Scale-Out).
השוואה בין ארכיטקטורת Three-Tier לארכיטקטורת Spine-Leaf
משמאל המודל ההיררכי עם קישור חסום על ידי STP, מימין פאבריק Spine-Leaf עם כל המסלולים פעילים. איור: מכללת נטמי.

הפתרון: טופולוגיית Clos בשם Spine-Leaf

ארכיטקטורת Spine-Leaf מבוססת על עבודתו של צ'ארלס קלוז מ-1953 בתחום רשתות המיתוג הטלפוניות. הרעיון פשוט להפליא: שתי שכבות בלבד. שכבת Leaf היא נקודת הכניסה — כל מתג Leaf יושב בראש המדף (Top of Rack) ומחבר אליו את השרתים, מערכות האחסון וחיבורי ה-WAN. שכבת Spine היא עמוד השדרה — היא לא מחברת שרתים כלל, אלא רק מעבירה תעבורה בין Leaf ל-Leaf.

  • כל Leaf מחובר לכל Spine — Full Mesh בין השכבות.
  • מתגי Leaf אינם מחוברים זה לזה, וגם מתגי Spine אינם מחוברים זה לזה.
  • כל מסלול בין שני שרתים באורך זהה: Leaf ← Spine ← Leaf. תמיד שתי קפיצות. זו התכונה הקריטית ביותר.
  • כל הקישורים פעילים בו-זמנית באמצעות ECMP — אין STP שחוסם.
הערך של Spine-Leaf הוא לא רק ברוחב הפס — הוא בדטרמיניזם. כשכל זוג שרתים מקבל בדיוק את אותה השהיה, אפשר סוף-סוף להבטיח SLA לאפליקציה מבוזרת.

ECMP: איך כל הקישורים נשארים פעילים

בפאבריק Spine-Leaf, שכבת הניתוב יורדת עד ל-Leaf. כל קישור בין Leaf ל-Spine הוא קישור L3 מנותב (בדרך כלל /31 או /30), ופרוטוקול ניתוב — OSPF, IS-IS או לרוב eBGP — מפרסם את הרשתות. התוצאה היא שלכל יעד קיימים מספר מסלולים שווי עלות, ומנגנון Equal-Cost Multi-Path מפזר ביניהם את התעבורה.

חשוב להבין איך ECMP מפזר: לא לפי חבילה בודדת, אלא לפי Flow. המתג מריץ פונקציית Hash על שדות הכותרת — כתובת מקור, כתובת יעד, פרוטוקול ופורטים (Five-Tuple) — ובוחר קישור. כך כל החבילות של אותו חיבור TCP עוברות באותו מסלול, ואין הגעה מחוץ לסדר (Out-of-Order) שהיא רעל אמיתי לביצועי TCP.

NetMe College — Leaf Switch Fabric Uplinks
interface Ethernet1/49
 description ** Uplink to SPINE-1 **
 no switchport
 ip address 10.255.1.1/31
!
interface Ethernet1/50
 description ** Uplink to SPINE-2 **
 no switchport
 ip address 10.255.2.1/31
!
router bgp 65101
 router-id 10.0.0.11
 address-family ipv4 unicast
  network 10.0.0.11/32
  maximum-paths 4
 neighbor 10.255.1.0 remote-as 65000
  address-family ipv4 unicast
 neighbor 10.255.2.0 remote-as 65000
  address-family ipv4 unicast
דוגמת תצורה של מתג Leaf עם שני Uplinks ו-eBGP מול ה-Spine. הפקודה maximum-paths היא זו שמפעילה ECMP בפועל.

Oversubscription Ratio — המספר שכל מתכנן חייב לחשב

יחס ה-Oversubscription הוא היחס בין רוחב הפס שהמתג מספק לשרתים לבין רוחב הפס שיש לו כלפי מעלה, אל ה-Spine. לדוגמה: מתג Leaf עם 48 פורטים של 25 ג'יגה-ביט לשרתים מספק 1200 ג'יגה-ביט כלפי מטה. אם יש לו ארבעה Uplinks של 100 ג'יגה-ביט, קרי 400 ג'יגה-ביט כלפי מעלה, היחס הוא 3:1.

  • יחס 1:1 — פאבריק Non-Blocking מלא. יקר מאוד, נדרש בעיקר ב-HPC, במסחר אלגוריתמי ובאשכולות אימון AI.
  • יחס 3:1 — נקודת האיזון המקובלת ברוב מרכזי הנתונים הארגוניים.
  • יחס 10:1 ומעלה — מסוכן. בשעות שיא תקבלו נפילת ביצועים ותורי Buffer שמתמלאים.
  • כלל אצבע: הוספת Spine נוסף משפרת מיידית את היחס בכל ה-Leafs בפאבריק — זהו Scale-Out אמיתי.

Underlay ו-Overlay: איפה VXLAN נכנס לתמונה

הפאבריק הפיזי שתיארנו — כתובות ה-IP בין Leaf ל-Spine ופרוטוקול הניתוב שמחזיק אותן — נקרא Underlay. תפקידו היחיד הוא להעביר חבילות IP מנקודה לנקודה במהירות ובאמינות. אבל אפליקציות עדיין דורשות לפעמים רשת L2 משותפת, ומכונות וירטואליות צריכות לנדוד בין מדפים בלי לשנות כתובת IP.

כאן נכנס ה-Overlay: VXLAN עוטף מסגרת Ethernet מקורית בתוך חבילת UDP (פורט 4789) ומעביר אותה מעל ה-Underlay המנותב. המזהה VNI באורך 24 ביט מאפשר כ-16 מיליון סגמנטים לוגיים במקום 4094 VLANs בלבד. מנגנון הבקרה המודרני הוא EVPN מעל BGP, שמפיץ את טבלאות ה-MAC וה-IP בין מתגי ה-Leaf, ובכך מבטל את הצורך בהצפה עיוורת של תעבורה. לצורך המבחן 200-301 די להכיר את המושגים ואת התפקיד שלהם; בעולם האמיתי זו הליבה של כל פאבריק חדש.

NetMe College — VXLAN VNI Mapping
vlan 110
 vn-segment 10110
!
interface nve1
 no shutdown
 source-interface loopback0
 host-reachability protocol bgp
 member vni 10110
  ingress-replication protocol bgp
!
show nve peers
Interface  Peer-IP        State  LearnType  Uptime
nve1       10.0.0.12      Up     CP         04:11:57
nve1       10.0.0.13      Up     CP         04:11:52
מיפוי VLAN ל-VNI והצגת שכני VXLAN. LearnType בערך CP מציין למידה דרך Control Plane של EVPN.

טעויות תכנון נפוצות שראינו בשטח

  • חיבור שרתים ישירות ל-Spine — הרס את הסימטריה של הפאבריק ויוצר מסלולים באורך שונה.
  • חיבור בין שני מתגי Spine — מיותר, ובתקלות עלול ליצור מסלול משני שאינו שווה עלות.
  • MTU לא אחיד — VXLAN מוסיף כ-50 בתים לכל חבילה. אם לא הגדרתם Jumbo Frames בכל הפאבריק תקבלו פיצול חבילות או השמטה שקטה.
  • שכחת Hashing מגוון — כאשר כל התעבורה היא בין שתי כתובות IP בלבד, ה-Hash יבחר תמיד את אותו קישור וה-ECMP יאבד את יתרונו.
  • התעלמות מגדילה עתידית — מספר הפורטים ב-Spine קובע את המספר המרבי של מתגי Leaf שאפשר יהיה לחבר. תכננו קדימה.
מבחנון קצר

מבחנון Spine-Leaf — 8 שאלות בסגנון CCNA 200-301

1. כמה קפיצות (Hops) יעברו נתונים בין שני שרתים המחוברים למתגי Leaf שונים בפאבריק Spine-Leaf תקין?

2. איזו תעבורה גרמה בעיקר למעבר ממודל שלוש השכבות ל-Spine-Leaf?

3. מהו התפקיד של מתג Spine בפאבריק?

4. מתג Leaf עם 48 פורטים של 25Gbps ושני Uplinks של 100Gbps — מהו יחס ה-Oversubscription?

5. על בסיס מה ECMP בוחר את הקישור שדרכו תעבור חבילה?

6. כמה סגמנטים לוגיים מאפשר שדה ה-VNI של VXLAN?

7. באיזה פרוטוקול ופורט משתמש VXLAN לצורך העטיפה (Encapsulation)?

8. מדוע Spanning Tree כמעט ואינו בשימוש בתוך פאבריק Spine-Leaf מודרני?

ענית על 0 מתוך 8

לסיכום — ומה השלב הבא

Spine-Leaf היא לא ארכיטקטורה של ענקיות הענן בלבד. כל ארגון שמפעיל אשכול וירטואליזציה, מערכת אחסון מבוזרת או סביבת קונטיינרים כבר חי בעולם של תעבורת East-West, וכל מתכנן רשת חייב להבין את הכללים שלה: שתי שכבות, מסלולים שווים, ECMP, יחס Oversubscription נשלט והפרדה נקייה בין Underlay ל-Overlay.

בקורס CCNA של מכללת נטמי אנחנו בונים את הבסיס שמאפשר את כל זה — VLANs, ניתוב, OSPF, BGP, ECMP ועקרונות תכנון מרכז נתונים — עם מעבדות מעשיות, הסבר בעברית וליווי עד למבחן 200-301. אם המבחנון למעלה חשף פערים, זה בדיוק המקום לסגור אותם.

רוצים להתמקצע?

הפוסט הזה הוא רק טעימה. הקורס המלא של Cisco CCNA — רשתות תקשורת ילמד אתכם הכל מא׳ עד ת׳.