[질문] net-snmp에서 확장 mib 작성법

dux의 이미지

제가 나름대로 mib를 작성해서 등록시키는 방법을 알고싶습니다.
http://net-snmp.org 도 찾아보았고 여러가지 많이 봤는데도 아직 감이 잘 잡히지가 않습니다.
특히 한글로된 자료는 거의 없네요ㅠㅠ
net-snmp 라이브러리 등을 써서 프로그래밍 해 보신분들의 답변 부탁드립니다.

BlackTiger의 이미지

net-snmp 패키지 top directory에 agent.txt를 참조하세요..

perl script로 만들어진 mib2c로 mib의 노드를 컨트롤 할 수 있는 헤더파일과 C파일을 생성할 수 있습니다.

그리고 configure에서 추가한 mib module을 추가해주는 옵션을 주면 되는걸 로 아는데..

dux의 이미지

음...
ANGENT.txt 파일을 일단 대충 읽어봤습니다.
그것만 다 보면 왠만큼 작성 해 볼 수 있을듯 한데, 지금 시간이 별로 없어서요..
mib module은 제가 알기에 asn.1 이라는 언어(?)로 되어 있는 것으로 아는데.. 그런것까지 다 공부해야 하는 것인가요?
일단 공부해야 할 것으로 보고 대충 문법하고 배경지식을 봐 놨습니다만...
아.. 오늘 하루종일 net-snmp 홈페이지도 안들어가지고..ㅠㅠ
예를들어 제가 만들어 놓은 파일에서 특정 정보를 갖고와서 제가 정의한 mib을 snmp agent 에서 request했을때, 파일을 열어서 긁어와서 그것을 전송하도록 하려면 제가 c 이외에 뭘 알아야 할까요? 그리고 어떤 문서를 봐야 할까요..

BlackTiger의 이미지

도움이 될런지는 모르겠지만...

예를 들어 새로은 MIB파일을 생성한후에
mib2c 명령 형식에 따라. newmibgrp.c, newmibgrp.h파일이 만들어 진다면..

agent/mibgroup/newmib/으로 옮긴다음에
agent/mibgroup/newmib.h 파일에 agent.txt파일에 기술된것처럼..

config_require(newmibgrp);

처럼하고..

newmibgrp.c파일에서 snmpget/set에 해당되는 부분을 구현해주면 될것 같네요..

get 은 var_XXXXX 형식의 함수 였던거 같습니다. 그곳에서 값을 채워 넣는 형식이던데 manage가 필요한 장비일 경우에 상위 agent의 요청에 커널딴의 값을 수집해서 리턴해주는 kernel단의 모듈을 두는게 좋을 거 같습니다. 통신은 보통 /proc을 통해서일 거 같습니다.
다른 uds같은 ipc형식으로 이벤트를 받는다든지..구현하기 나름인거 같고
그런 식으로 파일을 구현한 다음에

configure에서 등록한후
./configure --with-mib-modules="newmib" --other options......

make...
...

처럼 하면 될 것 같은데엽..
저도 직접 구현 해본 적이 없는 반쪽짜리라
다른분의 대답도 듣고 싶습니다..^^*

initiative의 이미지

먼저 제 경험은 별로 도움이 되지 않을 것으로 생각합니다만...

제가 1년 전에 경험했던 건데..

제가 하려고 했던 것은 net-snmp 즉 , 유닉스 기반의 Agent 설계는 아니고
WINDOWS 기반의 Agent -정확히 얘기하면 Extension Agent-를 개발하려고 했습니다.
결론적으로 못했지요.- 1개월 투자하였습니다만.-
물론 Platform SDK 도 설치하고 snmp 예제(snmputil, testdll ) 도 돌려보고
ASN.1 문서도 보고 , SNMP 관련 rfc 도 보았는데 그게 한 두달 가지고 되는 게 아니더군요. 그래서 일찌감치 손뗏었지요.
- 꼭 해야하는 상황이 아니어서.

unix 기반의 Agent 를 개발하는 과정도 역시 쉽지 않은 걸로 알고 있습니다.
ASN.1 방식의 언어도 이해를 하셔야 합니다.
왜냐하면 이를 이용하여 mib 파일과 메시지 포맷은 ASN.1 을 기반으로 하니까요.

unix 기반의 agent 개발하신분의 경우 1년 가까이 그 부분만 팠다고 합니다.
당근 지금은 Agent 쪽의 고수가 되어 계시지만...
snmp에 대한 자료는 www.snmp.org , codeproject 및 sourceforge를 이용하시면 보다 직접적인
소스레벨까지 접근하실 수 있을 겁니다.

도움이 안되어 미안하네요.

With Everlasting Passion about new Tech. and Information!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.