מיקום שכבת ה-MPLS בתוך חבילת נתונים
**החלפת תוויות מרובות פרוטוקולים** (באנגלית: **Multiprotocol Label Switching או MPLS**) היא טכניקת ניתוב ברשתות טלקומוניקציה אשר מנתבת נתונים מצומת אחד למשנהו על בסיס תוויות נתיב קצרות ולא כתובות רשת ארוכות, דבר החוסך בדיקות מורכבות בטבלת ניתוב ומזרז את תזרימי התנועה. 

תוויות אלה מזהות קישורים וירטואליים (*נתיבים*) בין צמתים ולא נקודות קצה (כגון מחשב, שרת, טלפון ועוד). חבילת MPLS יכולה לעטוף חבילות נתונים של פרוטוקולי רשת שונים ומכאן השם "מרובה-פרוטוקולים". MPLS תומך במגוון טכנולוגיות גישה, כולל T1, E1, ATM, Frame Replay ו-DSL .

תפקיד
-----

ב-MPLS, חבילות נתונים מקבלות תוויות מסוימות, וההחלטות על העברת חבילות הנתונים מתקבלות אך ורק על סמך תוכן תווית זו, ללא צורך בבחינת החבילה עצמה - דבר המאפשר יצירת מעגלים מקצה לקצה בכל סוג של קו תקשורת ובאמצעות כל פרוטוקול. היתרון העיקרי של טכניקה זו הוא ביטול התלות בטכנולוגיה ספציפית של שכבת הקו של מודל ה-OSI, שכבה מספר 2, כגון ATM, Frame Relay, רשת אופטית סינכרונית (SONET) או אתרנט, וביטול הצורך ברשתות מרובות בשכבת הקו בשביל לספק סוגים שונים של תעבורה.

MPLS שייכת למשפחת רשתות העובדות בטכניקת מיתוג מנות (packet-switched networks). MPLS פועלת בשכבה הנחשבת להיות בין ההגדרות המסורתיות של השכבה השנייה של מודל ה-OSI, שהיא שכבת קישור נתונים, ובין השכבה השלישית שהיא שכבת הרשת. בעקבות זאת מכונה לעיתים קרובות פרוטוקול "שכבה 2.5".

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

הפרוטוקול
---------

MPLS עובד על ידי הוספת תקורת MPLS בתחילתה של כל חבילת נתונים, כאשר המידע שנוסף מכיל תווית אחת או יותר. זוהי למעשה מחסנית התוויות (Label Stack). כל רשומה במחסנית התווית (Label Stack) מכילה ארבעה שדות:

* ערך תווית באורך 20 סיביות. תווית עם הערך 1 מייצגת את תווית ההתראה של הנתב (router alert label). אופציה זו מסמנת לנתב שמקבל את החבילה שיש לבדוק אותה לפני העברתה.
* שדה Traffic Class (TC) באורך 3 סיביות עבור QoS (איכות שירות) ו-ECN (בקרת גודש מפורשת).
* דגל S (Bottom of stack) באורך סיבית אחת. אם דגל זה דלוק, המשמעות היא שהתווית הנוכחית היא האחרונה ב-Stack. (תווית ההתראה, router alert label, יכולה להיות מוצגת בכל מקום בתקורה חוץ מאשר במקום זה)
* שדה TTL (Time to Live) באורך 8 סיביות.

כיוון הקריאה הוא מימין לשמאל בתרשים הבא:

תקורת MPLS| 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| תווית | TC (Traffic )Class | Bottom of stack | TTL: Time to Live |

חבילות עם תווית MPLS מנותבות לאחר בדיקה/החלפה של תווית במקום בדיקה בטבלת הניתוב של פרוטוקול ה-IP. היסטורית, כאשר MPLS נוצר לראשונה, בדיקת התוויות והחלפת התוויות היו מהירות יותר משימוש בטבלת ניתוב או מבדיקה במאגר RIB (Routing Information Base), מכיוון שהן יכולות להתרחש ישירות ברמת כרטיס הרשת ולהימנע מהצורך להשתמש במערכת ההפעלה.

עם זאת, על מנת שנתבים יזהו את תקורת ה-MPLS יש לציין את הנוכחות של תווית כזו לנתב/מתג. במקרה של חבילות Ethernet זה נעשה באמצעות שימוש בשדה ה-EtherType עם הערכים 0x8847 או 0x8848 ל-unicast או ל-multicast בהתאמה.

### נתב מחליף תוויות (Label switch router)

נתב שמבצע את פעולת הניתוב בהתבסס על תווית MPLS בלבד נקרא label switch router, או בקיצור LSR. זהו סוג של נתב הממוקם באמצע רשת ה-MPLS, והוא אחראי על החלפת התוויות על מנת לנתב את חבילות הנתונים.

כאשר נתב LSR מקבל חבילה, הוא משתמש בתוויות שכלולה בה כאינדקס לתוך טבלה כדי להסיק את הצומת הבא (next hop) ואת התווית הבאה לחבילה. התווית הישנה לאחר מכן מוסרת מהתקורה ומוחלפת עם התווית החדשה לפני שהחבילה מועברת הלאה.

### נתב קצה (Label edge router)

נתב קצה (LER או edge LSR) הוא נתב שפועל בקצה רשת MPLS ומתפקד כנקודת הכניסה והיציאה לרשת. נתבי LER *מוסיפים* (push) תווית MPLS לחבילת נתונים נכנסת ו*מסירים (pop)* תווית כזו מחבילת נתונים יוצאת.

כאשר נתב LER מעביר חבילת IP לתוך רשת MPLS, הוא משתמש במידע ניתובי כדי להחליט על התווית המתאימה לחבילה, מוסיף לה את תווית זו כנדרש, ומעביר את החבילה עם התווית הלאה אל תוך רשת ה-MPLS. בצורה דומה, כאשר LER מקבל חבילת נתונים בעלת תווית שמיועדת לצאת מרשת ה-MPLS, הוא מוריד ממנה את התווית ומעביר את התוצאה בעזרת חוקי ניתוב IP רגילים.

### פרוטוקול הפצת תוויות (LDP)

נתבי LSR ברשתות MPLS מחליפים תוויות ומידע נוסף אחד עם השני בעזרת שיטות מוסכמות כדי לבנות תמונה שלמה של הרשת, כך שיוכלו להשתמש במידע הזה כדי להעביר חבילות נתונים.

תוויות יכולות להיות מופצות בין נתבי LER ונתבי LSR בעזרת פרוטוקול ה-Label Distribution Protocol, או בקיצור LDP. לחלופין, תוויות יכולות להיות מופצות גם בעזרת ה-Resource Reservation Protocol, או RSVP.

VPN מבוסס MPLS
--------------

תרשים סכמטי של רשת פרטית וירטואלית מבוססת MPLS בשכבה 2 (שכבת הקו)
שימוש נפוץ ב-MPLS הוא בניתוב של חבילות מידע IP על מנת ליצור רשתות וירטואליות פרטיות (VPNs) בין אזורים מרוחקים גאוגרפית. ישנם מספר אפשרויות לשימוש ב-MPLS לצורך זה, שנמצאות בשימוש כיום:

* Point-to-point (פסאודו-כבל). נקרא גם VPWS (virtual private wire service) או EoMPLS (Ethernet over MPLS)
* MPLS VPN בשכבת הקו. נקרא גם virtual private LAN service, או VPLS. סוג זה של VPN מהווה שירות של "נתב בענן" ומאפשר המשכיות של VLANs בין אתרים שונים
* MPLS בשכבת הרשת

קישורים חיצוניים
----------------

מאמרים:

* סיסקו - מבוא ל-MPLS, (אנגלית) 2003 Steve Smith
* Routeralley - MPLS (אנגלית) 2007 Aaron Balchunas

דפי אינטרנט:

* הבנת אופן הפעולה של MPLS בנתב IOS של סיסקו, אתר flatfeefsbo
* מושגים בתקשורת - NCR