Simple Network Management Protocol
Simple Network Management Protocol (ראשי תיבות: SNMP, בתרגום חופשי: פרוטוקול פשוט לניהול רשת) הוא פרוטוקול תקשורת עשיר לניהול רשתות TCP/IP מבוזרות תוך שימוש בארכיטקטורה מיוחדת של סוכנים ותחנת ניהול מרכזית. הפרוטוקול פועל על גבי מודל שרת–לקוח, שבו בכל מחשב או התקן רשת ישנו סוכן תוכנה המדווח לתחנת הניהול המרכזית.
פרוטוקול SNMP פועל בשכבת היישום במודל ה-TCP/IP, מעל UDP בפורטים 161 ו-162. בעזרת הפרוטוקול ניתן לנטר ולנהל רכיבים שונים ברשת מחשבים, כמו מתגים, נתבים, שרתים, מדפסות ועוד, ולנהל מידע עשיר, כגון נתוני חומרה ותוכנה, סטטיסטיקות של שימוש בתוכנות וביישומים, וכל נתון בעל ערך לניטור וניהול הרשת ורכיביה. בפועל, השימוש בפרוטוקול ברוב המקרים הוא לקבלת נתונים ולא לשינוי הגדרות.
תיאור כללי
בפרוטוקול זה מדברים ביניהם שני צדדים:
- סוכן SNMP - זוהי תוכנה שרצה על הרכיבים המנוהלים ברשת. הסוכן הוא זה שנגיש אל המידע המקומי של הרכיב המנוהל.
- תחנת הניהול הראשית (Network Management System או בקיצור NMS), המשמשת כתחנה מרכזית לניטור ואיסוף מידע. ה-NMS יכול לבקש מסוכן SNMP לקבל/לשנות מידע עבור הרכיב הספציפי עליו הוא יושב.
במודל הקלאסי של הפרוטוקול, ישנו NMS אחד ברשת, ועל כל רכיב מנוהל יושב סוכן. בפועל, במקרים רבים ישנם מספר NMS ברשת, בעיקר לצורכי נוחות ונגישות.
לפרוטוקול קיימת גם גרסה מאובטחת (secure SNMP) הפועלת בפורטים 10161 ו-10162.
מבנה הנתונים
ייצוג המידע על ידי סוכני SNMP על הרכיבים המנוהלים ברשת נעשה על ידי Management Information Base, או בקיצור MIB. מבנה נתונים זה הוא עץ היררכי, בו לכל קודקוד ממופה מספר זהות ייחודי, הנקרא Object Identifier, ובקיצור OID. מספר הזהות הוא מחרוזת המורכבת ממספרים המפורדים על ידי נקודות; המחרוזת מתארת את המסלול שיש לבצע כדי להגיע אל הקודקוד משורש העץ: כל מספר מייצג בתורו לאיזה קודקוד יש לעבור בשלב זה של המסלול. למשל, 1.2.4 הוא ה-OID המתאים לקודקוד אליו מגיעים אם בוחרים במסלול המוביל מהשורש (1) אל הקודקוד השני המחובר ישירות אל השורש (2) ומשם אל הקודקוד הרביעי (4).
על פי הפרוטוקול, לכל קודקוד בעץ ההיררכי יש משמעות קבועה מראש. אם כן, כאשר רוצה NMS לקבל מידע מסוכן כלשהו, הוא שולח אליו בקשה ובא הוא מציין את ה-OID אותו הוא רוצה לקבל. כעת, הסוכן ניגש אל המקום הרלוונטי ב-MIB ושולף משם את המידע הנחוץ, אותו הוא מחזיר אל ה-NMS. ה-NMS יודע גם לבצע את התרגום בין OID לערך קריא וברור, ובכך מאפשר להשתמש בו בצורה מובנת.
אופן פעולת הפרוטוקול
בעת פעילות סטנדרטית של הפרוטוקול, מתבצעים השלבים הבאים:
- ה-NMS שולח בקשה אל סוכן ספציפי (ב-UDP אל פורט 161).
- הסוכן מקבל את הבקשה, שולף את המידע הנחוץ ומחזיר אותו אל ה-NMS.
- ה-NMS מקבל אליו את התשובה של הסוכן.
פרטי בקשה
כדי לבצע בקשה אל סוכן, ה-NMS צריך לציין את הפרטים הבאים:
- כתובת ה-IP או השם של הרכיב.
- סיסמה הגישה אל הרכיב - על כל רכיב מוגדרת סיסמאת גישה, אותה חייב לדעת ה-NMS לפני ביצוע הבקשה. הרכיב מגדיר מספר סוגים של סיסמאות, כמו סיסמה לקריאה בלבד, או סיסמה לקריאה וכתיבה של נתונים.
- סוג הבקשה (ראו בהמשך).
- ה-OID אותו רוצה הרכיב לקבל.
סוגי הבקשות
סוכן SNMP תומך במספר סוגים של בקשות עבור OID נתון:
- GET - הסוכן יישלח את הערך של ה-OID המבוקש.
- GET-NEXT - הסוכן יישלח את ההיררכיה השלמה של אובייקט מסוים, כלומר כל תתי-הצמתים אותם הוא מכיל, על פי סדר.
- WALK - הסוכן יישלח את כל המידע באופן רקורסיבי החל מה-OID המבוקש ועד סוף העץ.
- SET - הסוכן יישנה את ה-OID המבוקש לערך מבוקש. רוב ה-OID אינם תומכים בבקשת SET, והיא אינה נפוצה.
- TRAP - זוהי הודעה על מאורע חריג שהתבצע על הסוכן, שתשלח באופן עצמאי על ידי הסוכן אל ה-NMS בפורט 162. בהודעה זו יישלח הזמן שעבר מאז שהרכיב נדלק לראשונה, OID שמגדיר את ה-trap, ומידע נוסף במידת הצורך.