snmp mib 相关开发
有两个模拟器 Simulator 可以使用,推荐免费的snmpsim。
●snmpsim 【免费】
--- Linux snmpsim ---
从这里下载Quick Start - SNMP Simulator Documentation (github.com)
先看看必须的python module是否都安装了。
# pip list |egrep "pysnmp|pyasn1|pysmi|pysnmpcrypto|Jinja2|ply|requests|cryptography|MarkupSafe|charset-normalizer|idna|urllib3|certifi|cffi|pycparser"
rpm -qa |egrep "pysnmp|pyasn1|pysmi|pysnmpcrypto|Jinja2|ply|requests|cryptography|MarkupSafe|charset-normalizer|idna|urllib3|certifi|cffi|pycparser"
# 初次使用环境RHEL9.2,有一部分实际上有rpm包,根据需要用pip或者rpm进行安装。
rpm -ivh ./BaseOS/Packages/python3-cffi-1.14.5-5.el9.x86_64.rpm ./BaseOS/Packages/python3-pycparser-2.20-6.el9.noarch.rpm
rpm -ivh ./BaseOS/Packages/python3-cryptography-36.0.1-2.el9.x86_64.rpm
python3 -m pip install snmpsim-1.1.3.tar.gz --no-index --find-links=./
# 在AlmaLinux9.3 上又整了一次依赖关系
可以反复用这个命令试一下看看差什么
python3 -m pip install snmpsim-1.1.3.tar.gz --no-index --find-links=./
这次大概是这样
OS自带的这些可以直接安装
cd /mnt/iso
rpm -ivh ./AppStream/Packages/python3-pip-21.2.3-7.el9.noarch.rpm
rpm -ivh ./AppStream/Packages/python3-pyasn1-0.4.8-6.el9.noarch.rpm
rpm -ivh ./BaseOS/Packages/python3-setuptools-53.0.0-12.el9.noarch.rpm
rpm -ivh ./BaseOS/Packages/python3-ply-3.11-14.el9.noarch.rpm
cd /mnt/iso/AppStream/Packages/
rpm -ivh python3-requests-2.25.1-7.el9_2.noarch.rpm python3-chardet-4.0.0-5.el9.noarch.rpm python3-idna-2.10-7.el9.noarch.rpm python3-urllib3-1.26.5-3.el9.noarch.rpm python3-pysocks-1.7.1-12.el9.noarch.rpm
cd /mnt/iso/BaseOS/Packages/
rpm -ivh python3-cryptography-36.0.1-4.el9.x86_64.rpm python3-cffi-1.14.5-5.el9.x86_64.rpm python3-pycparser-2.20-6.el9.noarch.rpm
OS不带的下载来准备好,直接用命令自动依赖安装
MarkupSafe-2.1.5.tar.gz
certifi-2024.7.4.tar.gz
charset-normalizer-3.3.2.tar.gz
flit_core-3.9.0.tar.gz
jinja2-3.1.4.tar.gz
poetry_core-1.9.0.tar.gz
pysmi-1.4.4.tar.gz
pysnmp-6.2.4.tar.gz
pysnmpcrypto-0.0.4.tar.gz
requests-2.32.3.tar.gz
setuptools-72.1.0.tar.gz
snmpsim-1.1.3.tar.gz
wheel-0.43.0.tar.gz
python3 -m pip install snmpsim-1.1.3.tar.gz --no-index --find-links=./
下面是一些依赖的module 的URL,根据需要下载安装。
https://pypi.org/project/setuptools/
https://sourceforge.net/projects/snmpsim/
https://pypi.org/project/pysnmp/
https://pypi.org/project/pyasn1/
https://pypi.org/project/pysmi-lextudio/
https://pypi.org/project/pysmi/
https://pypi.org/project/Jinja2/
https://pypi.org/project/flit-core/
https://pypi.org/project/requests/
https://pypi.org/project/wheel/
https://pypi.org/project/charset-normalizer/
https://pypi.org/project/certifi/
https://pypi.org/project/poetry-core/
https://pypi.org/project/MarkupSafe/
https://pypi.org/project/maturin/
https://pypi.org/project/tomli/
https://pypi.org/project/setuptools-rust/
https://pypi.org/project/setuptools-scm/
https://pypi.org/project/packaging/
https://pypi.org/project/typing-extensions/
https://pypi.org/project/semantic-version/
https://packaging.python.org/en/latest/tutorials/installing-packages/
# 追加虚拟IP
ip addr add 192.168.8.245/24 dev eno1
ip addr add 192.168.8.246/24 dev eno1
ip addr add 192.168.8.247/24 dev eno1
ip addr show eno1
mkdir PUBLIC PUBLIC-R PUBLIC-V
# 根据需要创建文件夹
mkdir -p /usr/snmpsim/variation
mkdir -p /usr/share/snmpsim/variation
mkdir -p /home/esmpro/.snmpsim/variation
# 可以从已有主机上获取MIB测试文件
# 也可以从MIB 定义文件来转化(因为在搞SNMP Agent Simulator的时候已经生成了模拟主意了,所以这次直接获取了)
snmpsim-record-commands --agent-udpv4-endpoint=192.168.8.176 --output-file=./PUBLIC/PUBLIC.snmprec
snmpsim-record-commands --agent-udpv4-endpoint=192.168.8.177 --output-file=./PUBLIC-R/PUBLIC-R.snmprec
snmpsim-record-commands --agent-udpv4-endpoint=192.168.8.243 --output-file=./PUBLIC-V/PUBLIC-V.snmprec
# 数据定义可以参考这里Simulation data - SNMP Simulator Documentation (lextudio.com)
#root 用户指定是必须得,不然161不能监听
snmpsim-command-responder --data-dir=./PUBLIC --agent-udpv4-endpoint=192.168.8.245:161 --process-user=root --process-group=root
snmpsim-command-responder --data-dir=./PUBLIC-R --agent-udpv4-endpoint=192.168.8.246:161 --process-user=root --process-group=root
snmpsim-command-responder --data-dir=./PUBLIC-V --agent-udpv4-endpoint=192.168.8.247:161 --process-user=root --process-group=root
# 确认下是否监听了
netstat -lnut | grep ':161 '
#确认下 community
Configuring ./PUBLIC-R.snmprec controller
SNMPv1/2c community name: PUBLIC-R
# snmpwalk 进行验证
snmpwalk -v 1 -c PUBLIC -On 192.168.8.245 .1.3.6.1.2.1.1.1.0
snmpwalk -v 1 -c PUBLIC-R -On 192.168.8.246 .1.3.6.1.2.1.1.1.0
snmpwalk -v 1 -c PUBLIC-V -On 192.168.8.247 .1.3.6.1.2.1.1.1.0
# 用完不要忘记删除虚拟IP
ip addr delete 192.168.8.245/24 dev eno1
ip addr delete 192.168.8.246/24 dev eno1
ip addr delete 192.168.8.247/24 dev eno1
ip addr show eno1
●SNMP Agent Simulator「收费的,可以30天试用」
http://ireasoning.com/download.shtml
https://ireasoning.com/download/simulator.exe
1)SNMP Agent Simulator安装
2)追加设备
3)可以通过MIB定义文件直接导入MIB树
4)做成工程
5)最好指定虚拟IP
6)启动Simulator Agent,有问题的话重启