Net-Snmp 5.7.2.1 Porting and Testing Commands
由於工作需求...呃應該不用什麼前言了。
本篇主要介紹如何將 net-snmp 5.7.2.1 (LTS) 做完 CROSS-Compile
並 Porting 到 Embedded 平台上。
以下將以 Ti 的 DM368 平台來做示範。
1. Configure It
這邊說明一下:
接著再執行 make; make install ,即會將相關檔案安裝到預設的 install-prefix 目錄內。
PS. 別忘了最後做一下 strip,讓整體程式能小一點
2. Copy Binaries Only We Need It
Build 好之後,我們只需取出我們所需要的元件即可,像其他的 man 說明文件什麼的我們都不需要。
本篇將以我個人的經驗為主,如需要其他元件請另行增加即可。
到 net-snmp-install/ 目錄內,取出以下檔案,並放在 filesys 內的對應目錄:
snmpwalk 是拿來測試用的,另外此次並沒有用到 snmptrap、mib2c 等功能,
因此沒有放進去,有需要請自行增減。
3. 產生 snmpd.conf ,並在開機時啟動 snmpd
預設只需要加入這兩行,即可順利存取 snmp v1 / v2c 的內容了:
開機時用以下指令將 snmpd 帶起來:
4. SNMP 相關測試 Commands
透過內建的 snmpwalk ,來存取 localhost 的 rocommunity (預設存取名稱為 Public)
同上,如要存取 IF Table,則這樣輸入:
如要單獨讀取 ifName,則可以這樣做
或是這樣做
所得結果如下,可自行比較一下兩者之間的差異
5. Create SNMP v3 User
先停止運行中的 snmpd!
這邊我們採用內建的 Auto-Script 來新增 SNMP v3 User,範例如下
重新啟動 snmpd 之後,便可訪問 SNMP v3 user
如要新增帶有 priv 的 SNMP v3 user,則可用
重新啟動 snmpd 之後,便可訪問 SNMP v3 user
大概就是這樣,如果有相關疑問歡迎提出,或是詢問 Google 大神以得到更多資訊 XD
本篇主要介紹如何將 net-snmp 5.7.2.1 (LTS) 做完 CROSS-Compile
並 Porting 到 Embedded 平台上。
以下將以 Ti 的 DM368 平台來做示範。
1. Configure It
./configure \ --host=armv5tl-montavista-linux-gnueabi CC=arm_v5t_le-gcc CXX=arm_v5t_le-g++ CXXCPP="arm_v5t_le-g++ -E" AR=arm_v5t_le-ar \ --with-endianness=little \ --with-install-prefix="`pwd`/net-snmp-install" \ --with-default-snmp-version="3" \ --with-sys-contact="contact@contact" \ --with-sys-location="location" \ --with-logfile="/sysconf/log/snmpd.log" \ --with-persistent-directory="/sysconf/net-snmp" \ --sbindir="/sbin" \ --libdir="/usr/lib" \ --disable-debugging \ --disable-embedded-perl \ --without-perl-modules \ --without-rpm \ --enable-mini-agent \ --enable-static \ --with-mibdirs="/usr/snmpmib" \ --datadir="/sysconf/net-snmp/" \ --sysconfdir="/sysconf/net-snmp/" \ --with-mib-modules="if-mib ip-mib tcp-mib udp-mib agentx";
這邊說明一下:
--host | Host 端指定平台,後面接 GCC 的 Toolchain |
--with-endianness | Build 成 Little-endian |
--with-install-prefix | 指定 install 路徑,到時候來這邊撈檔案比較快 |
--with-sys-contact | 預先輸入資訊,屆時便可透過自動化 script 來完成 |
--with-sys-location | 同上 |
--with-logfile | Log File 的預設存放位置 |
--with-persistent-directory | net-snmp 動態 config 檔存放目錄 |
--sbindir | sbin 預設目錄 |
--libdir | /lib 預設目錄 |
--disable-debugging | 關閉 Debug |
--disable-embedded-perl | 關閉 Perl 相關元件 |
--without-perl-modules | 平台不支援 Perl Module |
--without-rpm | 關閉 RPM |
--enable-mini-agent | 縮減不必要的 mib module,縮小程式體積 |
--enable-static | 編譯成 Static |
--with-mibdirs | mib file 預設目錄 |
--datadir | datadir 預設目錄 |
--sysconfdir | net-snmp 動態 config 檔存放目錄 |
--with-mib-modules | 預設要使用的 mib module |
接著再執行 make; make install ,即會將相關檔案安裝到預設的 install-prefix 目錄內。
PS. 別忘了最後做一下 strip,讓整體程式能小一點
2. Copy Binaries Only We Need It
Build 好之後,我們只需取出我們所需要的元件即可,像其他的 man 說明文件什麼的我們都不需要。
本篇將以我個人的經驗為主,如需要其他元件請另行增加即可。
到 net-snmp-install/ 目錄內,取出以下檔案,並放在 filesys 內的對應目錄:
snmpd | /sbin/snmpd | 主程式 |
mibs/ | /usr/snmpmib/ | mib files folder |
libnetsnmp.so* | /usr/lib/libnetsnmp.so* | Library |
libnetsnmpagent.so* | /usr/lib/libnetsnmpagent.so* | Library |
libnetsnmpmibs.so* | /usr/lib/libnetsnmpmibs.so* | Library |
net-snmp-config | /sbin/net-snmp-config | 自動化產生 snmpd.conf 的 script |
net-snmp-create-v3-user | /sbin/net-snmp-create-v3-user | 自動化新增 snmp v3 user 的 script |
snmpwalk | /sbin/snmpwalk | 就是 snmpwalk |
snmpwalk 是拿來測試用的,另外此次並沒有用到 snmptrap、mib2c 等功能,
因此沒有放進去,有需要請自行增減。
3. 產生 snmpd.conf ,並在開機時啟動 snmpd
預設只需要加入這兩行,即可順利存取 snmp v1 / v2c 的內容了:
rocommunity Public rwcommunity Private
開機時用以下指令將 snmpd 帶起來:
snmpd -c /sysconf/snmpd.conf
4. SNMP 相關測試 Commands
透過內建的 snmpwalk ,來存取 localhost 的 rocommunity (預設存取名稱為 Public)
snmpwalk -v 2c -c Public localhost
同上,如要存取 IF Table,則這樣輸入:
snmpwalk -v 2c -c Public localhost if
如要單獨讀取 ifName,則可以這樣做
snmpwalk -v 2c -c Public localhost ifName
或是這樣做
snmpwalk -v 1 -c Public localhost .1.3.6.1.2.1.2.2.1.2
所得結果如下,可自行比較一下兩者之間的差異
IF-MIB::ifName.1 = STRING: lo IF-MIB::ifName.2 = STRING: eth0
5. Create SNMP v3 User
先停止運行中的 snmpd!
killall snmpd
這邊我們採用內建的 Auto-Script 來新增 SNMP v3 User,範例如下
[/root]# net-snmp-config --create-snmpv3-user -ro -a password -A MD5 myname adding the following line to /sysconf/net-snmp/snmpd.conf: createUser myname MD5 "password" DES adding the following line to /sysconf/snmpd.conf: rouser myname
重新啟動 snmpd 之後,便可訪問 SNMP v3 user
snmpwalk -v3 -u myname -l auth -a MD5 -A password 127.0.0.1 if
如要新增帶有 priv 的 SNMP v3 user,則可用
net-snmp-config --create-snmpv3-user -ro -a password -A MD5 -x myprivpass -X DES myname
重新啟動 snmpd 之後,便可訪問 SNMP v3 user
snmpwalk -v3 -u myname -l authPriv -a MD5 -A password -x DES -X myprivpass 127.0.0.1 if
大概就是這樣,如果有相關疑問歡迎提出,或是詢問 Google 大神以得到更多資訊 XD
留言
張貼留言