2010-03-19 2 views
19

SNMP에 대해 배우고이를 사용하는 일부 응용 프로그램을 작성하고 있습니다. 프로토콜에 대한 몇 가지 기본적인 질문이 있습니다.SNMP에 대한 기본 질문

  1. 에이전트가 장치 자체에 상태를 저장합니까?
  2. 에이전트에 트랩이 설정된 경우 동일한 정보를 얻기 위해 동일한 OID에 대해 폴링을 수행 할 수 있습니까?
  3. mib 파일을 사용하지 않고 한 번에 모든 정보를 장치에 쿼리 할 수 ​​있습니까? 그렇지 않다면, 그리고 자신 만의 커스터마이징 된 관리자를 작성하고 있다면, 먼저보고 한 내용의 구조를 알아야합니까?
  4. 신고 할 상담원을 설정하는 경우 대개 트랩을 보내는 빈도를 제어하는 ​​방법이 있습니까? 아니면 어떤 조건이 충족되면 보통은 자주 함정을 보냅니 까?

답변

11

에이전트가 장치 자체에 상태를 저장합니까?

장치에 데이터를 저장하거나 저장할 수 있습니다. 둘 다 가능하며 둘 다 수행됩니다. 에이전트가 원격 장치에 대한 (캐시 된) 상태 정보를 저장하는 문제는 관리 시스템이 에이전트의 (캐시 된) 데이터가 수용 가능하도록 최신인지 여부를 결코 알 수 없다는 것입니다. 신뢰할 수없는 경우 관리자를 사용하여 동기화를 트리거하거나 원격 장치의 상태 및 에이전트와 원격 장치 간의 통신 링크를 폴링해야합니다. 일단 게임에 들어가면 원격 장치에 하위 에이전트를 설치하고 표준 SNMP 프로토콜을 사용하여 정보를 얻는 것이 좋습니다.

에이전트에 트랩이 설정된 경우 동일한 정보를 얻기 위해 동일한 OID에 대해 폴링을 수행 할 수 있습니까?

잘 설계된 대부분의 MIB는 실제로 변경된 MIB 객체를 트랩에 넣습니다. 그렇게하면 SNMP 관리자가 확실하게 에이전트를 폴링 할 필요가 없습니다.

그렇다면 Entity-MIB의 트랩에는 상태 변수가 없습니다. 그러나 해당 MIB는 선반, 카드 및 포트와 같은 실제 인벤토리를 설명하는 데 사용되며 물리적 구성이 변경된 경우에만 트랩이 발생합니다. 이 경우 SNMP 관리자가 Entity-MIB를 다시 걸어서 완전히 새로운 물리적 구성을 얻도록해야합니다.

mib 파일을 사용하지 않고 장치에 모든 정보를 한 번에 쿼리 할 수있는 방법이 있습니까?

예. 나만의 사용자 정의 MIB를 롤인하고 원하는 것을 넣으십시오. 전체 장치 구성을 하나의 MIB 객체에 넣을 수 있습니다. 아래쪽은 구조를 파싱하기 위해 SNMP 관리자에 파서를 작성해야하며, 구조가 변경되면 현재 값과 이전 값의 차이 의미를 알아 내야합니다 . 즉, 일부 SNMP MIB를 다시 작성합니다. 그러나 매우 작은 MIB의 경우이 작업을 수행하는 것이 좋습니다.

SNMP GET-BULK를 사용하거나 개체가 반환되지 않을 때까지 SNMP-GET-NEXT를 연속적으로 호출하여 MIB 보행을 수행하는 것이 좋습니다.

사용자 정의 관리자를 직접 작성하는 경우, 맨 앞에서보고 한 내용의 구조를 알아야합니까?

"맞춤 관리자"를 단순하게 유지하려면 먼저 구조를 미리 알아야합니다. 유연성을 원한다면 구조를 인코딩하는 구조 설명 언어가 필요하며 관리자가 에이전트 데이터에서이를 디코딩하고 관리자를 채우고 관리자의 데이터를 가져 와서 인코딩 할 수 있어야합니다 이 형식을 사용하여 상담원에게 보냅니다. 즉, SNMP/SMI, CMIP/CMISE, CIM 및 이미 배포 된 다른 관리 시스템 및 프로토콜을 다시 구현할 것입니다.

신고 할 상담원을 설정하는 경우 대개 트랩을 보내는 빈도를 제어하는 ​​방법이 있습니까? 아니면 어떤 조건이 충족되면 보통은 자주 함정을 보냅니 까?

네트워크를 가장 필요로 할 때 종종 네트워크를 정체시키는 트랩 폭풍우가 발생하기 때문에 이것은 좋은 질문입니다. 따라서 어느 정도의 네트워크를 제공 할 지 예측할 수 없습니다.

함정을 신중하게 사용하십시오. 예를 들어, Entity-MIB에는 하나의 트랩 만 있으며 물리적 구조 변경 사항을보고하므로 사용 가치가 있습니다. Interfaces-MIB에는 포트 당 잠재적으로 많은 트랩이 있습니다. 이 MIB의 경우, 물리적 포트에 바인드 된 인터페이스에 대한 트랩을 사용하는 것이 가장 좋으며, 하위 인터페이스의 맨 위에 스택 된 인터페이스에는 사용할 수 없습니다. 대규모 네트워크의 경우 물리적 장비 및 물리적 인터페이스에 폴링과 트랩을 함께 사용하는 것이 가장 좋습니다. 이렇게하면 정상적인 작동 중에 또는 네트워크 재난 중에 관리 트래픽에 사용되는 네트워크의 양을 예측할 수 있습니다.

일부 표준 MIB는 트랩을 실행할 빈도와 빈도를 지정합니다. 당신이 그걸로 괜찮 으면, 그것을 사용하십시오. 관리자가 항상 특정 트랩을 제어 할 수있게 해주는 구성 MIB 객체로 항상 자신의 엔터프라이즈 MIB를 롤백 할 수 있습니다.

17

에이전트가 장치 자체에 상태를 저장합니까?

가장 일반적인 시나리오에서 SNMP 에이전트는 모니터하는 장치에서 실행 중입니다. 이 경우 에이전트에는 다른 옵션이 없으며 모든 상태 정보를 장치에 저장해야합니다. SNMP 에이전트는 이러한 정보를 읽거나 설정합니다.

트랩은 에이전트에서이 설정되어있는 경우, 당신이 동일한 OID에 대한 설문 조사가 동일한 정보를 얻을 수 있습니까? MIB는 IF-:: linkDown 세 varbinds 포함 예를은 SNMPv2 트랩을 위해 - -

나는 당신이 그 일을 할 수 있어야한다고 생각 IF-MIB :: ifIndex와, IF-MIB :: ifAdminStatus 및 IF-MIB를 :: ifOperStatus에를 . 이 특별한 경우 ifIndex는 ifTable의 행을 지정하고 다른 두 개는 폴링 할 수 있습니다. MIB의 파일을 사용하지 않고

, 한 번에 그 모든 정보를위한 장치를 조회 할 수있는 방법은 무엇입니까?

예, get-next를 사용하여 데이터를 폴링 할 수있는 net-snmp 패키지 또는 다른 snmp 도구의 snmp-walk을 사용하십시오. 그리고 당신은 당신은 앞까지 보고 무엇의 구조를 알고, 자신의 사용자 관리자를 해야합니까 작성하는

그렇지 않다면?

장치 MIB에 포함 된 정보를 알아야합니다. 이러한 정보가 없으면 개발자와 사용자 모두에게 의미있는 숫자 OID 및 값만 표시됩니다. 좀 더 복잡한 MIB가있는 경우 관리되는 장치에 대해 자세히 알아야합니다. MIB 파일에는 충분한 정보가 거의 포함되어 있지 않습니다.

+2

동의 함. 실제로 SNMP 프로토콜은 David이 물었던 모든 측면을 다루지는 않습니다. 상태 저장과 같은 많은 세부 사항은 구현에 따라 다릅니다. MIB 문서는 문을 열어 장치에 대한 정보를 쿼리 할 수 ​​있지만 MIB 문서는 일반적으로 모든 세부 사항을 다루지 않으므로 해당 공급 업체는 항상 개체 사용 방법을 더 잘 이해합니다. –

-1

에이전트가 장치 자체에 상태를 저장합니까?

장치 및 응용 프로그램에 따라 다릅니다. 일부 장치는 다른 장치가 프록시 에이전트를 사용하여 로컬로 저장합니다.

에이전트에 트랩이 설정된 경우 동일한 정보를 얻기 위해 동일한 OID에 대해 폴링을 수행 할 수 있습니까?

예, 일반적으로 트랩에 정보를 포함하면 관리 스테이션에서 장치에 대해 여러 번 "왕복"할 필요가 없습니다. 예를 들어 애트리뷰트 값의 변화를 트랩하는 경우 트랩에서 이전 값과 새 값을 보내는 것이 좋습니다.

mib 파일을 사용하지 않고 장치에 모든 정보를 한 번에 쿼리 할 수있는 방법이 있습니까? 그렇지 않다면, 그리고 자신 만의 커스터마이징 된 관리자를 작성하고 있다면, 먼저보고 한 내용의 구조를 알아야합니까?

일반적으로 SNMP Get-next 프리미티브는 이러한 경우를 위해 설계되었습니다.

신고 할 상담원을 설정하는 경우 대개 트랩을 보내는 빈도를 제어하는 ​​방법이 있습니까? 아니면 어떤 조건이 충족되면 보통은 자주 함정을 보냅니 까?

예, 트랩을 보낼시기는 상담원의 책임입니다.

자신의 에이전트를 개발중인 경우, 고도은 Net-SNMP를 사용하는 것이 좋습니다. 다른 제품을 선택하더라도 Net-SNMP 코드는 잘 설계되고 구현됩니다. 또한 에이전트 (및 관리 시스템)를 개발하고 테스트하는 데 도움이되는 많은 추가 기능을 제공합니다.

+0

복사하여 붙여 넣으시겠습니까? -1 다른 사람이 같은 대답을 사용했을 때 -1 –

+0

스택 오버플로 초보자 실수. NetSNMP에 대한 의견은 여전히 ​​유효하고 유용해야합니다. – Doug