วันอาทิตย์ที่ 22 พฤศจิกายน พ.ศ. 2563

SNMP - Simple Network Management Protocol


ในปัจจุบันนี้เราปฎิเสธไม่ได้ว่าระบบเครือข่ายและอินเทอร์เน็ตมีส่วนสำคัญในการดำเนินชีวิตของเรา ไม่องค์กรหรือธุรกิจไหนต่างก็ต้องมีระบบเครือข่ายเป็นตัวเอง แต่ว่าสิ่งเรามักละเลยกับมันนั้นก็คือ การดูแลรักษาระบบเครือข่ายของเราให้ใช้ได้อยู่อย่างสม่ำเสมอ บริษัทหรือองค์กรขนาดใหญ๋มักจะมีการว่าจ้างผู้ดูแลระบบเพื่อมาดูแลในส่วนระบบเครือข่ายนี้ แต่ว่าหากอุปกรณ์เหล่านั้นมีจำนวนมาก ก็เป็นเรื่องยากที่คนหนึ่งคนจะตามไปซ่อมบำรุงรักษาให้ทั้งหมดดังนั้นจึงมีการคิดค้นโปรโตคอลตัวหนึ่ง เพื่อใช้ในการเฝ้าระวังและติดตามผลการทำงานของอุปกรณ์ เพื่อให้เราสามารถทราบตำแหน่งของอุปกรณ์ที่มีปัญหาเหล่านั้น และเข้าไปซ่อมบำรุงแก้ไขได้ทันที และในวันนี้เราจะพาทุกท่านไปรู้จักโปรโตคอลตัวนั้น เพื่อให้เข้าใจหลักการทำงานและเพื่อเป็นประโยชน์ต่อการดูแลระบบ ซึ่งโปรโตคอลนั้นก็คือ SNMP

SNMP คืออะไร
SNMP เป็นคำย่อมาจาก Simple Network Management Protocol เป็นโปรโตคอลที่ใช้รวบรวมจัดเรียงข้อมูลเกี่ยวกับอุปกรณ์เครือข่าย เมื่อมีการเปลี่ยนแปลงข้อมูลไปจากเดิมโดยผ่าน IP Address ขอซึ่ง อาทิเช่น Router, Modems, Switch, Server, Workstations, Printer ฯลฯSNMP มีการใช้งานกันอย่างแพร่หลายสำหรับทำ network management หรือระบบการ monitoring โดน SNMP จะเก็บข้อมูลในรูปแบบตัวแปรและจัดการโดย management information base (MIB) ซึ่งเป็นที่เก็บข้อมูลหรือ database สำหรับการจัดการหรือเปลี่ยนแปลงค่าต่างๆบนอุปกรณ์ใน networkณ

ในปัจจุบัน SNMP ได้มีการพัฒนาเพื่อเพิ่มขีดความสามารถ และความยืดหยุ่นในการใช้งานแบ่งออกได้เป็น 3 เวอร์ชั่น คือ SNMPv1, SNMPv2, SNMPv3 ตามลำดับ

หลักการทำงานของ SNMP
เมื่อทราบแล้วว่า SNMP คืออะไร มาดูกันต่อว่าแล้ว SNMP ทำงานอย่างไร โดยส่วนมากแล้วเราใช้ SNMP สำหรับการบริหารจัดการระบบ computer จำนวนมาก ซึ่งมีความสามารถในการ monitor หรือจัดการกลุ่ม host หรือ อุปกรณ์ใน network โดยอุปกรณ์ในระบบจะ agent ที่คอยทำงานเพื่อตรวจสอบตอดลเวลา และก็จะส่ง report กลับไปหาตัว manger ที่เป็นฝั่ง server

SNMP จะมีส่วนประกอบด้วยกัน 3 ตัวหลักคือ
- ตัวอุปกรณ์ที่อยู่ใน network
- Agent — เป็น software ที่ต้องติดตั้งอยุ่บนอุปกรณ์เพื่อทำการตรวจสอบและ report สิ่งผิดปกติ
- Network management station (NMS) — เป็น software ของฝั่ง SNMP server หรือที่เรียกว่า manger คอยรับและเก็บรวบรวมข้อมูลจาก agent
โครงสร้างของ Protocol SNMP
SNMP ทำงานในระดับ Application Layer ในรูปแบบ Internet Protocol Suit ซึ่ง SNMP agent จะรับคำสั่งผ่านทาง UDP port 161 โดยตัว manager จะส่งคำสั่งไปยัง port 161 บนอุปกรณ์ฝั่ง agent จากนั้น agent จะส่งข้อมูลกลับไปยัง manager ตามที่ร้องขอมา ส่วนฝั่ง manager จะมีการรับ notification หรือที่เรียกกันว่า Traps (SNMP Traps) ที่ port 162 โดยฝั่ง agent จะเป็นคนส่ง notification เมื่อพบสิ่งผิดปกติตามที่ตั้ง rule เอาไว้ เพื่อส่งข้อมูลดังกล่าวไปยัง manager port 162 แต่ถ้าใช้เป็น secure port หรือ Transport Layer Security (TLS) สำหรับ agent จะเป็น port 10161 และ ฝั่ง manager trap จะเป็น port 10162

PDU 8 ชนิด

1. GetRequest (manager to agent)
เป็นการที่ฝั่ง manger ส่งคำขอดูข้อมูลไปยัง agent โดยจะกำหนดข้อมูลที่ต้องการไปใน object ภายใน message หรือที่เรียกว่า object identifier เช่น 1.3.6.1.2.1.1.1.0 หมายถึงต้องการทราบข้อมูล sysDescr หรือ ข้อมูลรายละเอียดของอุปกรณ์ที่ agent ติดตั้งอยู่ ซึ่งทาง agent เองก็จะตอบข้อมูลรายละเอียดดังกล่าวกลับไป

2. GetNextRequest (manager to agent)
เป็น PDU ที่ทาง manager ส่งไปหา agent เพื่อเอาข้อมูลตัวแปร โดยค่าของ object ตัวต่อจาก object ID ที่กำหนดใน MIB ส่วนใหญ่จะใช้ในการเอาค่าเข้าสู่ตาราง เพราะถ้า Manager ไม่ทราบ index ที่จะดึงก็จะไม่สามารถดึงค่าออกมาได้ แต่สำหรับ GetNextRequest จะกำหนด Object ID ในตารางของตัวถัดไปเรื่อยๆเอง

3. SetRequest (manager to agent)
เป็นฝั่ง manager ส่งคำสังไปยัง agent เพื่อกำหนด set ค่าของตัวแปร หรือเปลี่ยนแปลงค่าที่ configure ไว้ใน MIB ของอุปรณ์นั้นๆ

4. Response (agent to manager)
เป็นฝั่ง agent ส่งหา manager เพื่อตอบกลับข้อมูลจากคำสั่ง PDU GetRequest หรือ GetNextRequest โดยจะส่งข้อมูลของตัวแปรที่ร้องขอกลับไปหา manager

5. Trap (agent to manager)
เป็นฝั่ง agent ส่งหา manager เพื่อแจ้งหรือ notify เหตุการณ์ที่เกิดขึ้นบนฝั่ง agent เอง เช่นเกิดการ reboot server หรือมีค่าบางอย่างที่สูงถึง trigger ที่กำหนด

6. GetbulkRequest (manager to agent)
ถูกเพิ่มเข้ามาหลังจากพัฒนา Version 2 เป็นการที่ manager ส่งคำสั่งไปหา agent เพื่อเอาชุดข้อมูลขนาดใหญ่ แทนการ GetRequest หรือ GetNextRequest หลายๆครั้ง

7. InFormRequest (manager to manager)
ถูกเพิ่มเข้ามาหลังจากพัฒนา Version 2 เช่นเดียวกันเป็นฝั่ง manager ส่งหา manager กันเอง เพื่อรับค่าตัวแปรบางอย่างจาก agent ที่อยู่ภายใต้การควบคุมของ manger อีกตัวซึ่งจะต้องต้อบกลับด้วย Response PDU เช่นกัน

8. Report (manager to manager)
เป็นการส่งรายงานข้อผิดพลาดในระบบระหว่าง manager ด้วยกันเอง เป็นส่วนที่เพิ่มขึ้นมาเมื่อพัฒนาเป็น Version 3

ไม่มีความคิดเห็น:

แสดงความคิดเห็น