SNMP (פרוטוקול פשוט לניהול רשת) הוא סט כללים לתקשורת (פרוטוקול) לניהול התקני רשת כמו מתגים, נתבים ושרתי מחשב. הפרוטוקול מאפשר לקרוא מידע על מצבו של ההתקן (סטטוס) ולהגדיר חלק מהתצורה שלו (Configuration). ברשת שמנהלים בעזרת SNMP יש תחנות ניהול רשת (NMS - Network Management Station) וסוכנים שמותקנים על ההתקנים ומגיבים לבקשות.
SNMP פועל בשכבת היישום במודל OSI ועובד מעל פרוטוקול UDP באותם פורטים סטנדרטיים: 161 לקריאה ו-162 לקבלת הודעות יזומות. מודל הפעולה הוא שרת, לקוח, כאשר הסוכן הוא השרת ותחנת הניהול היא הלקוח. בפרקטיקה משתמשים בו בעיקר לקריאה ואיסוף מידע, פחות לשינויים תכופים בהגדרות.
במודל הקלאסי יש NMS אחד על הרשת וכל רכיב מנוהל על ידו בעזרת סוכן. בפועל נפוצים כמה NMS כדי לשפר נגישות ונוחות. קיימת גם גרסה מאובטחת של הפרוטוקול שמריצה את השירות בפורטים 10161 ו-10162.
פיתוח SNMP התחיל בשנות ה-80. הגרסה הראשונה הופצה על ידי IETF ב-1988. בשנים הבאות התבצעו תיקונים ושינויים, וב-1990 הוגדרה גרסת הבסיס שנקראה SNMPv1. ב-1993 יצאה SNMPv2 שהוסיפה בקשות כמו GET-BULK ו-INFORM, שיפרה טיפול באבטחה והוסיפה תמיכה במונים בגודל 64 סיביות. ב-1996 נעשה עדכון לגרסה זו. בשנת 1998 פורסמה SNMPv3, שמיקדה מאמצים באבטחת מידע, עם מנגנונים לאימות, בקרת גישה והצפנה.
כדי שכל תחנת ניהול וסוכן יבינו זה את זה משתמשים במודל נתונים משותף שנקרא MIB (Management Information Base, מאגר מידע לניהול). ה-MIB מכיל אוסף אובייקטים מנוהלים, וכל אובייקט מוגדר בצורה פורמלית.
לכל אובייקט יש מזהה יחיד שנקרא OID (Object Identifier). האיידי הוא מחרוזת מספרים מופרדת בנקודות שמציינת נתיב בעץ היררכי. למשל 1.2.4 מראה מסלול משורש העץ אל צומת מסוים.
כאשר תחנת ניהול רוצה ערך מסוכן, היא שולחת בקשה עם ה-OID המבוקש. הסוכן מוציא את הערך מתוך ה-MIB ושולח אותו חזרה. ה-NMS מתרגם את ה-OID לערך קריא בעזרת ההגדרות שב-MIB.
בפעילות רגילה: תחנת הניהול שולחת בקשה לכתובת ה-IP של הסוכן (בפורט 161 דרך UDP). הסוכן מקבל את הבקשה, שולף את המידע המתאים מה-MIB, ומחזיר תשובה ל-NMS.
בקשה שנשלחת לסוכן כוללת שדות שמזהים את סוג הבקשה ואת ה-OIDים המבוקשים.
GET, בקשה של ה-NMS לקבל ערכים לפי OID.
GET-NEXT, בקשה לקבל את האובייקט הבא בעץ ה-MIB. מאפשר לטייל בתתי-עצים (WALK) ולקבל סדר של אובייקטים.
SET, בקשה לשנות ערך של אובייקט במכשיר. משמש לשינוי הגדרות.
GET-RESPONSE, התשובה של הסוכן לבקשות ה-NMS.
TRAP, הודעה שיזם הסוכן ושלח באופן עצמאי ל-NMS ליידע על אירוע חריג. נשלחת לפורט 162.
GET-BULK, נוספה ב-SNMPv2. בקשה לקבל כמות גדולה של נתונים בתשובה אחת, והיא מחליפה מספר בקשות GET-NEXT.
INFORM, נוספה ב-SNMPv2. הודעה שנשלחת על ידי סוכן כדי לדווח על אירוע, ומחייבת אישור קבלה מתקן הניהול. אם לא מתקבל אישור, ניתן לשלוח שוב.
SNMP הוא קוד של כללים לתקשורת. הוא עוזר לנהל ציוד ברשת.
ציוד ברשת הם מכשירים כמו מתגים, נתבים ושרתים. על כל מכשיר יש תוכנה שנקראת סוכן. יש גם מחשב מרכזי שקורא ומבקר. המחשב הזה נקרא תחנת ניהול (NMS).
SNMP עובד באינטרנט על גבי UDP. יש לו פורטים חשובים: 161 לקריאות ו-162 לקבלת הודעות.
מפתחים היצרו גרסאות שונות. הגרסה הראשונה יצאה ב-1988. אחרי זה יצאו עדכונים. ב-1998 יצאה גרסה שמקדמת אבטחה חזק.
כל מידע על המכשיר מאורגן ב-MIB. MIB זה מאגר מידע לניהול. המידע מחולק לאובייקטים.
לכל אובייקט יש מספר מיוחד שנקרא OID. OID הוא נתיב מספרי שמוביל אל המידע הרצוי.
כאשר רוצים מידע, תחנת הניהול שולחת בקשה עם ה-OID. הסוכן מחזיר את הערך מה-MIB.
GET, מבקשים ערך.
GET-NEXT, מקבלים את האובייקט הבא בעץ.
SET, מבקשים לשנות ערך.
TRAP, הסוכן שולח התראה אוטומטית ל-NMS על דבר חשוב.
GET-BULK, בקשה לקבל הרבה נתונים ביחד. נוספה ב-SNMPv2.
INFORM, הודעה שהסוכן שולח וצריך אישור עליה.
תגובות גולשים