[SNMP] Phân biệt giữa 2 giá trị SNMP OID ifAdminStatus và ifOperStatus

Hôm nay mình sẽ nói đến sự khác nhau giữa 2 giá trị SNMP OID rất dễ nhầm lẫn đó là :
– 1.3.6.1.2.1.2.2.1.7 -> ifAdminStatus
– 1.3.6.1.2.1.2.2.1.8 -> ifOperStatus

Giả sử mình có trường hợp như thế này. Mình có 1 con switch có ip là ‘192.168.1.1’, mình sẽ request SNMP OID để xem trạng thái của nó, thường áp dụng trong các hệ thống monitor (như Zabbix mình đang xài).

Mình chạy lệnh ‘snmpwalk’ để kiểm tra ngay trên terminal con monitor với từng giá trị OID.

+ ifAdminStatus

# snmpwalk -Os -c public -v 2c 192.168.1.1 1.3.6.1.2.1.2.2.1.7
ifAdminStatus.12 = INTEGER: down(2)
ifAdminStatus.13 = INTEGER: up(1)
ifAdminStatus.14 = INTEGER: up(1)

 
+ ifOperStatus

# snmpwalk -Os -c public -v 1 192.168.1.1 1.3.6.1.2.1.2.2.1.8
ifOperStatus.12 = INTEGER: down(2)
ifOperStatus.13 = INTEGER: down(2)
ifOperStatus.14 = INTEGER: down(2)

 
Như các bạn thấy với output trên thì :

| ifAdminStatus   | ifOperStatus      |
| port 12 = down | port 12 = down |
| port 13 = up     | port 13 = down |
| port 14 = up     | port 14 = down |

 
Mình kiểm tra rõ ràng là cả 3 port trên switch đều đã được tháo dây cáp ra rồi, nên có thể hiểu là sơ bộ down mà sao giá trị OID ‘ifAdminStatus‘ nó vẫn báo up 2 port 13,14 thế nhỉ. ???

Sau một hồi tìm hiểu thì đã thông não ra như thế này, có thể diễn giải không chính xác thì cũng mong các bạn góp ý.

1. ifAdminStatus

– Thể hiện trạng thái up/down port do thao tác quản trị của quản trị viên đổi với port của Switch đó. Giống như bạn gõ ‘shutdown‘ trên port tương ứng của switch Cisco chẳng hạn.

 
2. ifOperStatus

– Thể hiện trạng thái đường link kết nối của port mạng. Thường trạng thái đường link kết nối sẽ được phát hiện khi 2 port mạng đều đã được up và gắn dây mạng ổn định vào 2 đầu port switch, lúc này đường link kết nối giữa 2 port switch sẽ được xem là trạng thái link up.
– Nếu chẳng may vô tình rớt dây cáp mạng hoặc lỏng đầu cáp port switch thì cũng dẫn đến trạng thái down đường link port mạng.

 
3. Kiểm tra điều kiện

– Mình kiểm tra lại lần nữa vấn đề up/down bởi lệnh quản trị switch thì đúng là :
+ port 12 được shutdown. -> giá trị ifAdminStatus = 2 -> down là hoàn toàn chính xác.
+ port 13,14 không được shut down. -> giá trị ifAdminStatus = 1 -> up là không sai.

– Còn 3 port trên đã được tháo dây cáp mạng nên trạng thái link trên các port đó ‘down‘ là đúng rồi.
– Như vậy ta thường sẽ có 2 kiểu điều kiện như sau :
+ port x, shutdown bằng command quản trị -> port x down -> port x link state down -> do quản trị viên tắt port mạng.
+ port x, không shutdown bằng command quản trị -> port x up -> port x link state down -> rớt dây mạng, lỏng dây hoặc có vấn đề khác.

– Như vậy nếu mà bạn muốn monitor xem port nào của switch mà bị lỏng dây mạng thì hãy báo động liền bằng giá trị OID “ifOperStatus” và xét điều kiện “ifAdminStatus” kiểm tra là phải vẫn up nhé.

Ở trên là chút hiểu biết sơ qua khi tìm hiểu phần này. Nếu có gì sai các bạn cứ bình luận ở dưới nhé.

Previous article[NTPd] Fix lỗi lệnh ntpdate đồng bộ thời gian – “the NTP socket is in use exiting”
Next article[Nginx] Hướng dẫn fix lỗi ‘getpwnam(“www”) failed’ khi khởi động Nginx
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !