Giao thức quản lý mạng SNMP
Trang 1MỤC LỤC Toán chó làm phần này với Kết luận cho anh
nhá !
Trang 2LỜI MỞ ĐẦU
Thế giới ngày nay đã có nhiều tiến bộ mạnh mẽ về công nghệthông tin (CNTT) từ một tiềm năng thông tin đã trở thành một tàinguyên thực sự, trở thành sản phẩm hàng hóa trong xã hội tạo ramột sự thay đổi to lớn trong lực lượng sản xuất, cơ sở hạ tầng, cấutrúc kinh tế, tính chất lao động và cả cách thức quản lý các lĩnh vựccủa xã hội
Trong những năm gần đây, nền CNTT nước ta cũng đã có nhữngbước phát triển trên mọi lĩnh vực trong cuộc sống cũng như tronglĩnh vực quản lý xã hội khác Với trình độ phát triển như vậy việc ứngdụng CNTT vào các công việc hằng ngày được xem như là điều bắtbuộc Tuy nhiên với việc phát triển một mạng lưới máy tính nhanhnhư vậy đã gây ra những khó khăn nhất định trong việc quản lý các
hệ thống mạng này Công việc quản lý hệ thống mạng có những yêucầu đặt ra là làm sao để có thể tận dụng tối đa các tài nguyên cótrong hệ thống và tăng độ tin cậy đối với hệ thống Do đó, vấn đềquản trị mạng hiện nay là không thể thiếu được Trong đó quản trịmạng theo giao thức SNMP là phương pháp được sư dụng rộng rãinhất
Với những nhu cầu thiết thực như vậy, và để hiểu rõ hơn sựquan trọng của việc quản lý hệ thống mạng Nhóm em đã tiến hànhtìm hiểu về giao thức SNMP và được thể hiện qua 3 chương của bàitập lớn này:
Chương 1: TỔNG QUAN VỀ GIAO THỨC SNMP
Chương 2: QUẢN LÝ MẠNG VỚI GIAO THỨC SNMP
Chương 3: CÁC PHIÊN BẢN SNMP
Trang 3Em xin gưi lời cảm ơn chân thành đến Thầy Phạm Hồng Quân
đã tạo mọi điều kiện tốt nhất để chúng em hoàn thiện bài tập lớn.Tuy nhiên không thể tránh khỏi thiếu xót Mong các thầy có nhữngđóng góp ý kiến để bài tập lớn hoàn thiện hơn!
Hà Nội, Ngày…tháng 9 năm 2014
Nhóm sinh viên thực hiện
CHƯƠNG 1 TỔNG QUAN VỀ GIAO THỨC SNMP
Để tìm hiểu và nghiên cứu về giao thức SNMP, sau đây nhóm sẽ
đề cập đến 3 bài toán thuộc hàng phổ biến nhất trong các ứng dụngcủa SNMP
1.1.1 Bài toán thứ nhất : Giám sát tài nguyên máy chủ
+ Giả sư bạn có hàng ngàn máy chủ chạy các hệ điều hành(HĐH) khác nhau Làm thế nào có thể giám sát tài nguyên của tất cảmáy chủ hàng ngày, hàng giờ để kịp thời phát hiện các máy chủ sắpbị quá tải ?
Giám sát tài nguyên máy chủ nghĩa là theo dõi tỷ lệ chiếm dụngCPU, dung lượng còn lại của ổ cứng, tỷ lệ sư dụng bộ nhớ RAM, …
+ Bạn không thể kết nối vào từng máy để xem vì số lượng máynhiều và vì các HĐH khác nhau có cách thức kiểm tra khác nhau
+ Để giải quyết vấn đề này bạn có thể dùng một ứng dụngSNMP giám sát được máy chủ, nó sẽ lấy được thông tin từ nhiều HĐHkhác nhau Ứng dụng này có thể trông giống như hình dưới đây :
Trang 4+ Bạn cũng không thể kết nối vào từng thiết bị để gõ lệnh lấythông tin vì thiết bị của các hãng khác nhau có lệnh khác nhau.
+ Để giải quyết vấn đề này bạn có thể dùng một ứng dụngSNMP giám sát lưu lượng, nó sẽ lấy được thông tin lưu lượng đangtruyền qua các thiết bị của nhiều hãng khác nhau Ứng dụng này cóthể trông giống như hình dưới đây :
Hình 1.2: Bài toán 2
1.1.3 Bài toán thứ ba : Hệ thống tự động cảnh báo sự cố tức
thời
Trang 5+ Bạn có hàng ngàn thiết bị mạng và chúng có thể gặp nhiềuvấn đề trong quá trình hoạt động như một port nào đó bị mất tínhiệu (port down), có ai đó đã cố kết nối (login) vào thiết bị nhưngnhập sai username và password, thiết bị vừa mới bị khởi động lại(restart), …Làm thế nào để người quản trị biết được sự kiện khi nóvừa mới xảy ra ?
+ Vấn đề này khác với hai vấn đề ở trên Ở trên là làm thế nàocập nhật liên tục một số thông tin nào đó (biết trước sẽ lấy cái gì),còn ở đây là làm thế nào biết được cái gì xảy ra (chưa biết cái gì sẽđến)
+ Để giải quyết bài toán này bạn có thể dùng ứng dụng thuthập sự kiện (event) và cảnh báo (warning) bằng SNMP, nó sẽ nhậncảnh báo từ tất cả các thiết bị và hiện nó lên màn hình hoặc gưiemail cho người quản trị Ứng dụng này có thể trông giống như hìnhdưới đây :
Hình 1.3: Bài toán 3
Đây là 2 phương thức cơ bản của các kỹ thuật giám sát hệ thống,nhiều phần mềm và giao thức được xây dựng dựa trên 2 phương thứcnày, trong đó có SNMP Việc hiểu rõ hoạt động của Poll & Alert và ưunhược điểm của chúng sẽ giúp bạn dễ dàng tìm hiểu nguyên tắchoạt động của các giao thức hay phần mềm giám sát khác Hoặc nếubạn muốn tự phát triển một cơ chế giám sát của riêng bạn thì nócũng là cơ sở để bạn xây dựng một nguyên tắc hoạt động đúng đắn
1.2.1 Phương thức Poll
Nguyên tắc hoạt động: Trung tâm giám sát (manager) sẽ
thường xuyên hỏi thông tin của thiết bị cần giám sát (device) NếuManager không hỏi thì Device không trả lời, nếu Manager hỏi thìDevice phải trả lời Bằng cách hỏi thường xuyên, Manager sẽ luôn
Trang 6theo dõi khi nào thợ làm xong việc Anh ta cứ thường xuyên hỏingười thợ “Anh đã làm xong chưa ?”, và người thợ sẽ trả lời “Xong”hoặc “Chưa”.
Hình 1.4: Minh họa cơ chế Poll
1.2.2 Phương thức Alert
Nguyên tắc hoạt động: Mỗi khi trong Device xảy ra một sự kiện
(event) nào đó thì Device sẽ tự động gưi thông báo cho Manager, gọi
là Alert Manager không hỏi thông tin định kỳ từ Device.Ví dụ: Ngườiquản lý cần theo dõi tình hình làm việc của thợ, anh ta yêu cầu ngườithợ thông báo cho mình khi có vấn đề gì đó xảy ra Người thợ sẽthông báo các sự kiện đại loại như “Tiến độ đã hoàn thành 50%”,
“Mất điện lúc 10h”, “Có điện lại lúc 11h”, “Mới có tai nạn xảy ra”
Trang 7Hình1.4 Minh họa cơ chế Alert
Device chỉ gưi những thông báo mang tính sự kiện chứ khônggưi những thông tin thường xuyên thay đổi, nó cũng sẽ không gưiAlert nếu chẳng có sự kiện gì xảy ra Chẳng hạn khi một portdown/up thì Device sẽ gưi cảnh báo, còn tổng số byte truyền quaport đó sẽ không được Device gưi đi vì đó là thông tin thường xuyênthay đổi Muốn lấy những thông tin thường xuyên thay đổi thìManager phải chủ động đi hỏi Device, tức là phải thực hiện phươngthức Poll
1.2.3 So sánh phương thức Poll và Alert
Hai phương thức Poll và Alert là hoàn toàn khác nhau về cơ chế.Một ứng dụng giám sát có thể sư dụng Poll hoặc Alert, hoặc cả hai,tùy vào yêu cầu cụ thể trong thực tế
Hai phương thức Poll và Alert có điểm thuận lợi và bất lợi ngượcnhau, do đó nhiều trường hợp ta nên sư dụng kết hợp cả Poll lẫnAlert để đạt được hiệu quả kết hợp của cả hai Các ví dụ ứng dụng cơchế Poll & Alert :
+ Giao thức Syslog : mỗi khi có sự kiện xảy ra thì thiết bị sẽ gưi bảntin syslog đến Syslog Server
+ Phần mềm NetworkView, giám sát tình trạng các server bằng cáchping liên tục
+ Giao thức STP, phát hiện loop trong mạng bằng cách gưi nhận cácgói BPDU và gưi bản tin Topology change mỗi khi phát hiện thay đổi.+ Trong quản lý người ta luôn thực hiện song song chế độ kiểm tra
và báo cáo, thường xuyên kiểm tra để phát hiện vấn đề và báo cáongay khi xảy ra vấn đề
SNMP là “giao thức quản lý mạng đơn giản”, dịch từ cụm từ
“Simple Network Management Protocol” Giao thức là một tập hợpcác thủ tục mà các bên tham gia cần tuân theo để có thể giao tiếpđược với nhau Trong lĩnh vực thông tin, một giao thức quy định cấutrúc, định dạng (format) của dòng dữ liệu trao đổi với nhau và quyđịnh trình tự, thủ tục để trao đổi dòng dữ liệu đó Nếu một bên thamgia gưi dữ liệu không đúng định dạng hoặc không theo trình tự thìcác bên khác sẽ không hiểu hoặc từ chối trao đổi thông tin SNMP làmột giao thức, do đó nó có những quy định riêng mà các thành phầntrong mạng phải tuân theo Một thiết bị hiểu được và hoạt động tuântheo giao thức SNMP được gọi là “có hỗ trợ SNMP” (SNMP supported)
Trang 8hoặc “tương thích SNMP” (SNMP compartible) SNMP dùng để quản
lý, nghĩa là có thể theo dõi, có thể lấy thông tin, có thể được thôngbáo, và có thể tác động để hệ thống hoạt động như ý muốn VD một
+ Tự động nhận cảnh báo khi switch có một port bị down
+ Điều khiển tắt (shutdown) các port trên switch
SNMP dùng để quản lý mạng, nghĩa là nó được thiết kế để chạytrên nền TCP/IP và quản lý các thiết bị có nối mạng TCP/IP Các thiếtbị mạng không nhất thiết phải là máy tính mà có thể là switch,router, firewall, adsl gateway, và cả một số phần mềm cho phépquản trị bằng SNMP Giả sư bạn có một cái máy giặt có thể nối mạng
IP và nó hỗ trợ SNMP thì bạn có thể quản lý nó từ xa bằng SNMP.SNMP là giao thức đơn giản, do nó được thiết kế đơn giản trong cấutrúc bản tin và thủ tục hoạt động, và còn đơn giản trong bảo mật(ngoại trừ SNMP version 3) Sư dụng phần mềm SNMP, người quản trịmạng có thể quản lý, giám sát tập trung từ xa toàn mạng của mình
Ưu điểm trong thiết kế của SNMP
SNMP được thiết kế để đơn giản hóa quá trình quản lý cácthành phần trong mạng Nhờ đó các phần mềm SNMP có thể đượcphát triển nhanh và tốn ít chi phí (trong chương 5 tác giả sẽ trình bàycách xây dựng phần mềm giám sát SNMP, bạn sẽ thấy tính đơn giảncủa nó) SNMP được thiết kế để có thể mở rộng các chức năng quản
lý, giám sát Không có giới hạn rằng SNMP có thể quản lý được cái gì.Khi có một thiết bị mới với các thuộc tính, tính năng mới thì người ta
có thể thiết kế “custom” SNMP để phục vụ cho riêng mình (trongchương 3 tác giả sẽ trình bày file cấu trúc dữ liệu của SNMP) SNMPđược thiết kế để có thể hoạt động độc lập với các kiến trúc và cơ chếcủa các thiết bị hỗ trợ SNMP Các thiết bị khác nhau có hoạt độngkhác nhau nhưng đáp ứng SNMP là giống nhau VD bạn có thể dùng
1 phần mềm để theo dõi dung lượng ổ cứng còn trống của các máychủ chạy HĐH Windows và Linux; trong khi nếu không dùng SNMP
mà làm trực tiếp trên các HĐH này thì bạn phải thực hiện theo cáccách khác nhau
Trang 91.4.1 Các thành phần trong SNMP
Theo RFC1157, kiến trúc của SNMP bao gồm 2 thành phần: cáctrạm quản lý mạng (network management station) và các thành tốmạng (network element) Network management station thường làmột máy tính chạy phần mềm quản lý SNMP (SNMP managementapplication), dùng để giám sát và điều khiển tập trung các networkelement
Hình 1.5 Kiến trúc của SNMP
Network element là các thiết bị, máy tính, hoặc phần mềm tươngthích SNMP và được quản lý bởi network management station Nhưvậy element bao gồm device, host và application Một managementstation có thể quản lý nhiều element, một element cũng có thể đượcquản lý bởi nhiều management station Vậy nếu một element đượcquản lý bởi 2 station thì điều gì sẽ xảy ra ? Nếu station lấy thông tin
từ element thì cả 2 station sẽ có thông tin giống nhau Nếu 2 stationtác động đến cùng một element thì element sẽ đáp ứng cả 2 tácđộng theo thứ tự cái nào đến trước Ngoài ra còn có khái niệm SNMPagent SNMP agent là một tiến trình (process) chạy trên networkelement, có nhiệm vụ cung cấp thông tin của element cho station,nhờ đó station có thể quản lý được element Chính xác hơn làapplication chạy trên station và agent chạy trên element mới là 2tiến trình SNMP trực tiếp liên hệ với nhau Các ví dụ minh họa sauđây sẽ làm rõ hơn các khái niệm này :
+ Để dùng một máy chủ (= station) quản lý các máy con (=element) chạy HĐH Windows thông qua SNMP thì bạn phải : cài đặtmột phần mềm quản lý SNMP (= application) trên máy chủ, bậtSNMP service (= agent) trên máy con
Trang 10+ Để dùng một máy chủ (= station) giám sát lưu lượng của mộtrouter (= element) thì bạn phải : cài phần mềm quản lý SNMP(=application) trên máy chủ, bật tính năng SNMP (= agent) trênrouter.
1.4.2 Object ID
Một thiết bị hỗ trợ SNMP có thể cung cấp nhiều thông tin khácnhau, mỗi thông tin đó gọi là một object
Ví dụ :
+ Máy tính có thể cung cấp các thông tin: tổng số ổ cứng, tổng
số port nối mạng, tổng số byte đã truyền/nhận, tên máy tính, tên cácprocess đang chạy, …
+ Router có thể cung cấp các thông tin: tổng số card, tổng sốport, tổng số byte đã truyền/nhận, tên router, tình trạng các port củarouter, …
Mỗi object có một tên gọi và một mã số để nhận dạng object đó, mã
số gọi là Object ID (OID) VD :
+ Tên thiết bị được gọi là sysName, OID là 1.3.6.1.2.1.1.5 4
+ Tổng số port giao tiếp (interface) được gọi là ifNumber, OID là1.3.6.1.2.1.2.1
+ Địa chỉ Mac Address của một port được gọi là ifPhysAddress, OID là1.3.6.1.2.1.2.2.1.6
+ Số byte đã nhận trên một port được gọi là ifInOctets, OID là1.3.6.1.2.1.2.2.1.10
Một object chỉ có một OID, chẳng hạn tên của thiết bị là mộtobject Tuy nhiên nếu một thiết bị lại có nhiều tên thì làm thế nào đểphân biệt ? Lúc này người ta dùng thêm 1 chỉ số gọi là “scalarinstance index” (cũng có thể gọi là “sub-id”) đặt ngay sau OID Ví dụ:+ Tên thiết bị được gọi là sysName, OID là 1.3.6.1.2.1.1.5; nếu thiếtbị có 2 tên thì chúng sẽ được gọi là sysName.0 & sysName.1 và cóOID lần lượt là 1.3.6.1.2.1.1.5.0 & 1.3.6.1.2.1.1.5.1
Trang 11+ Địa chỉ Mac address được gọi là ifPhysAddress, OID là1.3.6.1.2.1.2.2.1.6; nếu thiết bị có 2 mac address thì chúng sẽ đượcgọi là ifPhysAddress.0 & ifPhysAddress.1 và có OID lần lượt là1.3.6.1.2.1.2.2.1.6.0 & 1.3.6.1.2.1.2.2.1.6.1.
+ Tổng số port được gọi là ifNumber, giá trị này chỉ có 1 (duy nhất)nên OID của nó không có phân cấp con và vẫn là 1.3.6.1.2.1.2.1
Ở hầu hết các thiết bị, các object có thể có nhiều giá trị thìthường được viết dưới dạng có sub-id VD một thiết bị dù chỉ có 1 tênthì nó vẫn phải có OID là sysName.0 hay 1.3.6.1.2.1.1.5.0 Bạn cầnnhớ quy tắc này để ứng dụng trong lập trình phần mềm SNMPmanager Sub-id không nhất thiết phải liên tục hay bắt đầu từ 0 VDmột thiết bị có 2 mac address thì có thể chúng được gọi làifPhysAddress.23 và ifPhysAddress.125645 OID của các object phổbiến có thể được chuẩn hóa, OID của các object do bạn tạo ra thì bạnphải tự mô tả chúng Để lấy một thông tin có OID đã chuẩn hóa thìSNMP application phải gưi một bản tin SNMP có chứa OID của object
đó cho SNMP agent, SNMP agent khi nhận được thì nó phải trả lờibằng thông tin ứng với OID đó VD : Muốn lấy tên của một PC chạyWindows, tên của một PC chạy Linux hoặc tên của một router thìSNMP application chỉ cần gưi bản tin có chứa OID là 1.3.6.1.2.1.1.5.0.Khi SNMP agent chạy trên PC Windows, PC Linux hay router nhậnđược bản tin có chứa OID 1.3.6.1.2.1.1.5.0, agent lập tức hiểu rằngđây là bản tin hỏi sysName.0, và agent sẽ trả lời bằng tên của hệthống Nếu SNMP agent nhận được một OID mà nó không hiểu(không hỗ trợ) thì nó sẽ không trả lời
Hình 1.6 Minh họa quá trình lấy sysName.0
Trang 12Một trong các ưu điểm của SNMP là nó được thiết kế để chạyđộc lập với các thiết bị khác nhau Chính nhờ việc chuẩn hóa OID mà
ta có thể dùng một SNMP application để lấy thông tin các loại devicecủa các hãng khác nhau
1.4.3 Object access
Mỗi object có quyền truy cập là READ_ONLY hoặc READ_WRITE.Mọi object đều có thể đọc được nhưng chỉ những object có quyềnREAD_WRITE mới có thể thay đổi được giá trị VD : Tên của một thiếtbị (sysName) là READ_WRITE, ta có thể thay đổi tên của thiết bịthông qua giao thức SNMP Tổng số port của thiết bị (ifNumber) làREAD_ONLY, dĩ nhiên ta không thể thay đổi số port của nó
1.4.4 Management Information Base
MIB (cơ sở thông tin quản lý) là một cấu trúc dữ liệu gồm cácđối tượng được quản lý (managed object), được dùng cho việc quản
lý các thiết bị chạy trên nền TCP/IP MIB là kiến trúc chung mà cácgiao thức quảnlý trên TCP/IP nên tuân theo, trong đó có SNMP MIBđược thể hiện thành 1 file (MIB file), và có thể biểu diễn thành 1 cây(MIB tree) MIB có thể được chuẩn hóa hoặc tự tạo
Trang 13Hình 1.7: Sơ đồ cây MIB
Một node trong cây là một object, có thể được gọi bằng tênhoặc id Ví dụ :
+ Node iso.org.dod.internet.mgmt.mib-2.system có OID là1.3.6.1.2.1.1, chứa tất cả các object liên quan đến thông tin của một
hệ thống như tên của thiết bị 2.system.sysName hay 1.3.6.1.2.1.1.5)
(iso.org.dod.internet.mgmt.mib-+ Các OID của các hãng tự thiết kế nằm dướiiso.org.dod.internet.private.enterprise Ví dụ : Cisco nằm dướiiso.org.dod.internet.private.enterprise.cisco hay 1.3.6.1.4.1.9,Microsoft nằm dưới iso.org.dod.internet.private.enterprise.microsofthay 1.3.6.1.4.1.311 Số 9 (Cisco) hay 311 (Microsoft) là số dành riêngcho các công ty do IANA cấp 5 Nếu Cisco hay Microsoft chế tạo ramột thiết bị nào đó, thì thiết bị này có thể hỗ trợ các MIB chuẩn đãđược định nghĩa sẵn (như mib-2) hay hỗ trợ MIB được thiết kế riêng
Trang 14Các MIB được công ty nào thiết kế riêng thì phải nằm bên dưới OIDcủa công ty đó.
Các objectID trong MIB được sắp xếp thứ tự nhưng không phải
là liên tục, khi biết một OID thì không chắc chắn có thể xác địnhđược OID tiếp theo trong MIB VD trong chuẩn mib-2 thì objectifSpecific và object atIfIndex nằm kề nhau nhưng OID lần lượt là1.3.6.1.2.1.2.2.1.22 và 1.3.6.1.2.1.3.1.1.1 Muốn hiểu được một OIDnào đó thì bạn cần có file MIB mô tả OID đó Một MIB file không nhấtthiết phải chứa toàn bộ cây ở trên mà có thể chỉ chứa mô tả cho mộtnhánh con Bất cứ nhánh con nào và tất cả lá của nó đều có thể gọi
là một mib
Một manager có thể quản lý được một device chỉ khi ứng dụngSNMP manager và ứng dụng SNMP agent cùng hỗ trợ một MIB Cácứng dụng này cũng có thể hỗ trợ cùng lúc nhiều MIB Trong chươngnày chúng ta chỉ đề cập đến khái niệm MIB ngắn gọn như trên.Chương 3 sẽ mô tả chi tiết cấu trúc của file MIB
Giao thức SNMPv1 có 5 phương thức hoạt động, tương ứng với
5 loại bản tin như sau :
agent để yêu cầu agent cung cấpthông tin
nào đó dựa vào ObjectID (trongGetRequest có chứa OID)
chứa một ObjectID cho agent đểyêu cầu
cung cấp thông tin nằm kế tiếpObjectID đó trong MIB
agent để đặt giá trị cho đối tượngcủa agent
dựa vào ObjectID
Manager để trả lời khi nhận đượcGetRequest/GetNextRequest
Manager khi có một sự kiện xảy ra
Trang 15đối với mộtobject nào đó trong agent.
Bảng 1.1 Các phương thức hoạt động của SNMPv1
Một SNMP management station có thể quản lý/giám sát nhiềuSNMP element, thông qua hoạt động gưi mrequest và nhận trap Tuynhiên một SNMP element có thể được cấu hình để chỉ cho phép cácSNMP management station nào đó được phép quản lý/giám sát mình.Các cơ chế bảo mật đơn giản này gồm có : community string, view
và SNMP access control list
1.6.1 Community string
Community string là một chuỗi ký tự được cài đặt giống nhau
trên cả SNMP manager và SNMP agent, đóng vai trò như “mật khẩu”
giữa 2 bên khi trao đổi dữ liệu Community string có 3 loại : community, Write-Community và Trap-Community Khi manager gưiGetRequest, GetNextRequest đến agent thì trong bản tin gưi đi cóchứa Read-Community Khi agent nhận được bản tin request thì nó sẽ
Read-so sánh Read-community do manager gưi và Read-community mà nóđược cài đặt Nếu 2 chuỗi này giống nhau, agent sẽ trả lời; nếu 2chuỗi này khác nhau, agent sẽ không trả lời Write-Community đượcdùng trong bản tin SetRequest Agent chỉ chấp nhận thay đổi dữ liệukhi writecommunity 2 bên giống nhau.Trap-community nằm trongbản tin trap của trap sender gưi cho trap receiver Trap receiver chỉnhận và lưu trữ bản tin trap chỉ khi trap-community 2 bên giốngnhau, tuy nhiên cũng có nhiều trap receiver được cấu hình nhận tất
cả bản tin trap mà không quan tâm đến trap-community Communitystring có 3 loại như trên nhưng cùng một loại có thể có nhiều stringkhác nhau Nghĩa là một agent có thể khai báo nhiều read-community, nhiều write-community
Trên hầu hết hệ thống, read-community mặc định là “public”,write-community mặc định là “private” và trap-community mặc định
là “public” Community string chỉ là chuỗi ký tự dạng cleartext, do đóhoàn toàn có thể bị nghe lén khi truyền trên mạng Hơn nữa, cáccommunity mặc định thường là “public” và “private” nên nếu ngườiquản trị không thay đổi thì chúng có thể dễ dàng bị dò ra Khicommunity string trong mạng bị lộ, một người dùng bình thường tạimột máy tính nào đó trong mạng có thể quản lý/giám sát toàn bộcác device có cùng community mà không được sự cho phép củangười quản trị
Trang 16sẽ được đáp ứng do ifNumber nằm trong interfaceView; nếu managerrequest OID hrStorageSize với community “inf” thì agent sẽ khôngtrả lời do hrStorageSize không nằm trong interfaceView; nhưng nếumanager request hrStorageSize với community “sto” thì sẽ được trảlời do hrStorageSize nằm trong storageView Việc định nghĩa cácview như thế nào tùy thuộc vào từng SNMP agent khác nhau Cónhiều hệ thống không hỗ trợ tính năng view.
1.6.3 SNMP access control list
Khi manager gưi không đúng community hoặc khi OID cần lấy lạikhông nằm trong view cho phép thì agent sẽ không trả lời Tuy nhiênkhi community bị lộ thì một manager nào đó vẫn request được thôngtin Để ngăn chặn hoàn toàn các SNMP manager không được phép,người quản trị có thể dùng đến SNMP access control list (ACL) SNMPACL là một danh sách các địa chỉ IP được phép quản lý/giám sátagent, nó chỉ áp dụng riêng cho giao thức SNMP và được cài trênagent Nếu một manager có IP không được phép trong ACL gưirequest thì agent sẽ không xư lý, dù request có community string làđúng Đa số các thiết bị tương thích SNMP đều cho phép thiết lậpSNMP ACL
Trang 17CHƯƠNG 2: QUẢN LÝ MẠNG VỚI GIAO THỨC SNMP
Trong chương này sẽ đứ ra các ứng dụng quản lý thiết bị mạngbằng SNMP và làm thế nào để triển khai chúng vào thực tế Các phầnmềm được giới thiệu đều dễ tìm và các ví dụ thì đơn giản,sẽ thựchiện những chức năng sau :
+ Giám sát lưu lượng và cảnh báo của ADSL router (modeminternet adsl) bằng phần mềm SNMP Traffic Monitor và SNMP TrapReceiver Loại ADSL router được lấy làm ví dụ là loại Dlink DSL-520T
+ Giám sát tài nguyên và cảnh báo của máy chủ Windows vàLinux bằng phần mềm Solarwinds Các bạn đang công tác ở vị tríquản trị mạng máy chủ tại các doanh nghiệp có thể thực hiện bàinày trên hệ thống mà các bạn đang quản lý
+ Giám sát lưu lượng và cảnh báo của một switch CiscoCatalyst 2950 bằng phần mềm PRTG
Khi ta cài đặt các phần mềm giám sát về chạy nhưng khôngthu được thông tin gì cả, là vì chưa thực hiện các khai báo cấu hình
Trang 18đầy đủ Để thực hiện giám sát một thiết bị (agent) bằng phần mềmgiám sát (manager), ta phải cấu hình SNMP manager và SNMP agentđúng cách Các manager và agent có giao diện hay câu lệnh cấuhình khác nhau, nhưng chúng đều có các thông số chung cần cài đặt.Cần phải cấu hình 2 phần cho SNMP Get/Set và SNMP Trap Như đãtrình bày trong chương 1, Get/Set dùng để lấy/thiết lập thông tin còntrap dùng để cảnh báo Bạn hãy ghi nhớ các bước cấu hình đượctrình bày dưới đây, nó sẽ giúp bạn cấu hình đúng các manager vàagent khác nhau, giúp bạn nhanh chóng phát hiện ra các thiếu sót.
Cấu hình Get/Set trên SNMP agent
+ Bật tính năng SNMP agent trên thiết bị cần giám sát : cácthiết bị hỗ trợ SNMP có thể không mặc định bật tính năng này, bạnphải bật nó lên để tiến trình agent hoạt động
+ Khai báo community-string và quyền truy cập tương ứng :bạn phải khai báo các community string và chỉ ra community nào cóquyền gì (read, write, set)
+ Khai báo phiên bản SNMP: chỉ định agent sẽ hoạt động bằngphiên bản SNMP nào (v1, v2, v3) Nếu agent không cho phép khaibáo version thì agent này có thể chỉ hỗ trợ SNMPv1
+ Khai báo SNMP ACL: ACL cho phép chỉ những dãy IP nào đómới được giám sát agent
+ Khai báo Location, Contact, HostName : đây là các tham sốphụ, không quan trọng
Cấu hình trên SNMP manager
+ Khai báo IP của thiết bị cần giám sát
+ Khai báo community-string : community string được khai báotrên manager phải giống như đã khai báo trên agent
+ Khai báo phiên bản SNMP : phiên bản mà manager sư dụng
để giám sát phải giống với phiên bản đã khai báo trên agent
+ Chu kỳ lấy mẫu : do SNMP Get/Set sư dụng phương thức pollnên bạn cần khai báo chu kỳ lấy thông tin của manger
Cấu hình Trap trên SNMP agent
+ Bật tính năng trap sender
+ Khai báo địa chỉ IP của trap receiver
+ Khai báo community-string của bản tin trap
+ Khai báo version của SNMP trap
Trang 19Cấu hình Trap trên SNMP Trap Receiver
+ Bật tính năng trap receiver
+ Khai báo dãy địa chỉ IP của sender mà trap receiver sẽ nhận,những IP nằm ngoài dãy này thì trap receiver sẽ không nhận trap.Tính năng này là tùy chọn, có thể nhiều trap receiver không hỗ trợ
+ Khai báo bộ lọc kiểu trap : đây là danh sách các kiểu trap sẽđược hiện ra trên màn hình của trap receiver Tính năng này cũng làtùy chọn
Cấu hình SNMPv3
+ Đối với SNMPv3 các bạn sẽ phải cấu hình thêm các thông số :engineId, user, authentiation-type, authen-password, encryptionalgorithm, encryption key Trong chương này chúng ta không khảosát cách thực hiện với SNMPv3, chúng ta sẽ có một chương riêng vềversion 3
2.3.1 Cấu hình tính năng SNMP agent cho ADSL Router Dlink
DSL-520T
Kết nối máy tính của bạn vào một ADSL Router DLink DSL-520T.Login vào trang web của modem, chuyển qua tab [Advanced], chọnnút [SNMP] để vào trang cấu hình SNMP Management Nhấn chọncheckbox [Enabled SNMP Agent], các mục [Name], [Location] và[Contact] là tùy chọn Trong phần [Community] nhập communitystring là “public”, quyền ReadOnly
Tiếp theo là cấu hình Trap Nhập IP máy tính của bạn vào[Destination IP], nhập community cho bản tin trap vào [TrapCommunity] và chọn version của trap là SNMPv1 Cuối cùng nhấnnút Apply
Trang 20Hình 2.1: Cấu hình tính năng SNMP agent cho ADSL Router Dlink DSL-520T
2.3.2 Giám sát lưu lượng bằng phần mềm SNMP Traffic
và khởi động, phần mềm có giao diện như sau :
Trang 21Hình 2.2:Giám sát lưu lượng bằng phần mềm SNMP Traffic
Monitor
Cách sư dụng phần mềm để giám sát :
+ Nhập địa chỉ IP của thiết bị cần giám sát vào ô “Địa chỉ IP”+ Nhập read-community vào ô “Read community string”, giá trịmặc định là “public”
+ Nhấn nút “Lấy thông tin”, phần mềm sẽ lấy về các thông tincủa thiết bị, tổng số interface (port) đang
có và thông tin của từng interface
+ Chọn một interface cần giám sát trong danh sách interface.+ Chọn chu kỳ lấy mẫu
+ Nhấn nút “Bắt đầu giám sát”, biểu đồ lưu lượng sẽ được vẽ rabên dưới, đường màu GREEN là input, BLUE là ouput
Ví dụ giám sát ADSL Router DLink DSL-520T :
+ Nhập IP router là 192.168.1.1
+ Sau khi nhấn “Lấy thông tin” thì sẽ xuất hiện nhiều interface.Đối với thiết bị Dlink DSL-520T được chọn làm minh họa thì nó chỉ có
Trang 221 interface ethernet tên là “eth0” (modem 1 port), còn nếu bạn dùngmodem 4 port thì nó sẽ có 4 interface ethernet Nếu bạn chọn giámsát interface ethernet thì phần mềm sẽ theo dõi lưu lượng của port
đó, còn nếu bạn chọn giám sát interface “nas0” thì phần mềm sẽgiám sát lưu lượng của port adsl (port đấu nối với nhà cung cấp), tức
là giám sát toàn bộ lưu lượng ra vào modem
Trong phần này ta sẽ thực hiện giám sát máy chủ Windows
Server 2003 và CentOS 5.x bằng phần mềm Solarwinds.
2.4.1 Cấu hình SNMP agent trên hệ điều hành Windows
Trang 23Tính năng SNMP trên HĐH Windows phải được cài đặt và cấuhình trước khi ta có thể giám sát nó bằng một phần mềm SNMPmanager SNMP Service trên Windows là một SNMP agent, nó sẽ đápứng các request của phần mềm giám sát, giúp phần mềm giám sátlấy được các thông tin từ một máy chủ Windows.
Để cài đặt dịch vụ SNMP, vào [Add/remove Windows components],chọn [Management and Monitoring [Tools], click nút [Details] Tronghộp thoại [Management and Monitoring Tools], chọn [Simple NetworkManagement Protocol], nhấn OK để cài đặt dịch vụ SNMP
Hình 2.4: Cấu hình SNMP agent trên hệ điều hành Windows
• Kiểm tra lại service SNMP phải đang hoạt động
Trang 24Hình 2.5: Kiểm tra lại service SNMP hoạt động
+Double click lên SNMP Service để vào [SNMP ServicePropertites]
+Chuyển qua tab [Security] Groupbox [Accepted communitynames] là nơi bạn tạo các community, bạn hãy thêm một read-community string là “public” Danh sách “Accept SNMP packets fromthese hosts” là nơi bạn đặt SNMP ACL, chỉ cho phép một số SNMPmanager nào đó quản lý Chuyển qua tab [Agent] Chọn tất cả cácService có sẵn (nhất là Physical)
Hình 2.6: SNMP Service Propertites
Trang 25Hình 2.7: Cấu hình Trap
2.4.2 Giám sát máy chủ bằng phần mềm Solarwinds
Cài đặt Solarwinds để giám sát các máy chủ (cách cài đặtkhông được trình bày ở đây) Sau khi cài đặt, dùng chương trìnhOrion System Manager của bộ Solarwinds để add thêm các servercần giám sát
Trên giao diện của Orion System Manager, nhấn nút Add đểhiện hộp thoại Add Device Nhập IP của server vào [Hostname or IPAddress], chọn [SNMP Community String] là “public” do trước đâybạn đã cấu hình server có read-community là public, chọn [NodeType] là SNMPv1 hay SNMPv2c đều được, sau đó nhấn nút [Next]
Hình 2.8: Chương trình Orion System Manager của bộ