想要实现的功能:在同一个局域网中,虚拟机a可以获取到虚拟机b和虚拟机c中的路由表信息
实验网络拓扑如图:
软件环境:Virtual box
具体配置:
操作系统 静态IP 网关 虚拟机a CentOS 7 192.168.56.196 192.168.56.1 虚拟机b CentOS 7 192.168.56.20 192.168.56.1 虚拟机c Ubuntu 18.04 192.168.56.21 192.168.56.1
计划使用的网络协议:snmp
根据snmp的知识,我要实现的虚拟机a即为snmp管理站,虚拟机b/c为snmp代理,双方通过161端口的get-request报文进行路由状态的查询。用到的工具为snmpwalk库。
实验环境的搭建:
Step 1 :安装与配置snmp
Centos:
yum -y install net-snmp net-snmp-utils
安装完成后进入配置
vi /etc/snmp/snmpd.conf
虚拟机a:(管理站端——获取snmp数据的一端)
虚拟机b:(代理端——提供snmp数据的一端)
Ubuntu:(虚拟机c 代理端)
Ubuntu16.04开启配置SNMP(2022-04-23)_ubuntu配置snmp_小故事的海的博客-CSDN博客
按上面这个链接给出的方案安装并配置就好啦~我也是学习的别人的。
Step 2 :添加防火墙端口
snmp协议通信需要访问代理的161端口,因此需要开放161端口的udp报文通道。
开放端口:
firewall-cmd --zone=public --add-port=161/udp --permanent
#开放161/udp端口 (--permanent永久生效,没有此参数重启后失效)
更新防火墙的设置:
firewall-cmd --reload # 更新防火墙的设置,使上面的修改生效
Step 3 :重启snmp服务
systemctl restart snmpd # 重启snmp服务
systemctl enable snmpd # 允许snmp开机自启动
Step 4 :snmpwalk 测试(以虚拟机b为例)
1、通过本机localhost测试
snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.1.1
2、通过本地ip测试
3、通过远程ip测试
在虚拟机a(192.168.56.196中)
学习链接🔗:Centos7下的snmp搭建及实例