מבוא ל-SDN
רשתות תקשורת מסורתיות
רשתות התקשורת המסורתיות מורכבות מרכיבי רשת אותם לרוב מגדירים בצורה ידנית באמצעות ממשק שורת פקודה (CLI).
לכל רכיב ברשת יש מספר תפקידים אותם עליו לקיים, למשל נתב, חלק מתפקידיו:
1. לבדוק את כתובת היעד של החבילה בטבלת הניתוב כדי לדעת לאן להעבירה.
2. החסרת ערך ה-TTL במעבר בכל "תחנה".
3. שימוש בפרוטוקולי ניתוב כמו BGP, OSPF כדי ללמוד על טופולוגית הרשתות ולדעת איזה ניתובים להכניס לטבלת הניתוב.
4. שימוש בפרוטוקול ARP, כדי לגלות את כתובת ה-MAC של ה-"תחנה הבאה" לצורך העברת החבילה.
אנו יכולים להפריד את התפקידים השונים של "רכיב רשת" לשלושה מישורים שונים:
1. מישור ניהולי(MANAGEMENT PLANE):
מישור זה מייצג את אפשרויות הגישה וניהולו של הרכיב, למשל התחברות אל הרכיב דרך חיבור מרוחק באמצעות פרוטוקול SSH.
2. מישור הבקרה והשליטה(CONTROL PLANE):
מישור זה מייצג תהליכים שקורים בתוך הרכיב, כמו הרצת פרוטוקולי ניתוב ובניית טבלאות ניתוב, למידת כתובות פיזיות ובניית טבלאות MAC, הרצת פרוטוקול עץ פורש (STP).
3. מישור המידע(DATA PLANE):
מישור זה אחראי על העברת התנועה, מישור זה נעזר במישור הבקרה והשליטה (CONTROL PLANE) כדי לקבל החלטות. למשל, כדי להעביר חבילת מידע לעבר יעדה יש צורך לבחון את טבלת הניתוב, זאת כדי לקבוע מהי ה"תחנה הבאה".
מגבלותיהן של רשתות התקשורת המסורתיות
רשתות התקשורת לרוב מורכבות ובנויות מכמות גדולה של רכיבים. הגדרתם ותפעול של רכיבים באופן פרטני הינה תהליך איטי וידני. לעתים שינוי בודד ברשת דורש הגדרה מחדש של רכיבים רבים אחרים ברשת.דוגמא טובה לכך יכולה להיות הוספת שרת חדש לרשת בקמפוס, דבר המצריך הגדרה של VLAN חדש בכל מתג שמחובר לשרת, הגדרה של תתי רשתות חדשות, תתי ממשקים חדשים, לפרסם את תת הרשת על ידי פרוטוקולי הניתוב ועוד. ברור לנו כי התהליך איטי ומסורבל אשר יצריך משאבים רבים, כמוכן, לרוב זהו יהיה תהליך אשר יחזור על עצמו עם שינויים מזעריים.
כניסתן של רשתות מבוססות תוכנה(SDN)
כאמור, הרשתות המסורתיות עושות שימוש במישור השליטה והבקרה(control plane), השימוש נעשה בצורה מפולגת, קרי, כל רכיב רשת מכיל תהליכים פרטניים בתוכו כמו למשל: פרוטוקולי ניתוב, פרוטוקול עץ פורש, פרוטוקול ARP ועוד.
בין רכיבי הרשת ישנה סינרגיה, אך לא קיימת "ישות" אחת מרכזית ששולטת בכל הרכיבים. כאן נכנס לתמונה ה"בקר" - SDN CONTROLLER, הבקר יכול להיות רכיב וירטואלי או רכיב חומרתי.
בקר ה-SDN מרכז בתוכו את התפקידים של מישור הבקרה והשליטה של כל רכיבי הרשת המפולגים. הבקר הוא זה שמספק לרכיבי הרשת המפולגים את המידע הדרוש להם כדי לקבל החלטות במישור המידע.
בקר ה-SDN עושה שימוש בממשקים לוגיים מיוחדים שנקראים- ממשקי תכנות יישומים- Application Programming Interfaces. בקר ה-SDN עושה שימוש בשני סוגים של ממשקים לצורך פעולתו:
1. "ממשק צפוני"- Northbound Interface או NBI:
ממשק זה נועד לאפשר לנו גישה לבקר ה-SDN עצמו, זאת כדי לתפעל אותו, להגדיר אותו ולדלות ממנו מידע. הגישה אל הבקר באמצעות "הממשק הצפוני" יכולה להיות באמצעות יישומים שונים או באמצעות ממשק משתמש גרפי ייעודי (GUI).
באמצעות ה"ממשק הצפוני" ניתן לדלות מידע מכל רכיבי הרשת המפולגים, להגדיר באופן אוטומטי את רכיבי הרשת המפולגים.
2. "ממשק דרומי"- Southbound Interface או SBI:
באמצעות ממשק זה, בקר ה-SDN מתקשר עם רכיבי הרשת המפולגים כדי "להנחות" או "לתכנת" את מישור המידע של הרכיבים המפולגים. למשל נתב ידע לאן לשלוח את החבילה לפי המידע שקיבל מהבקר באמצעות ה"ממשק הדרומי".