문제

최근에 네트워크 엔지니어이자 동료인 한 사람이 자신의 사소한 네트워크 관리 업무를 하급 수준의 헬프데스크 기술 담당자에게 맡기고 싶어 한다는 연락을 받았습니다.관리가 필요한 특정 위치는 단일 사이트 자산의 임차인을 위한 ISP 역할을 하므로 매일 작은 조정이 많이 이루어집니다.

나는 현장에서 32개의 Cisco 장치를 관리하기 위한 winform 앱을 작성하는 것이 도움이 될 것이라고 생각합니다.처음에는 액세스 제어 목록, 포트 VLAN 할당, VLAN당 대역폭 제한을 수정할 수 있는 기능을 제공하고 싶습니다.가치 있는 것으로 간주되어 목록에 더 많은 것을 추가합니다.

나의 초기 생각은 텔넷 세션을 에뮬레이트하는 것이었습니다. 네트워크 장치로;명령줄/IOS 상호 작용에 대한 네트워크 엔지니어의 지식을 활용합니다.Cisco IOS 규칙을 직접 배우려면 최소한의 시간이 필요합니다.

솔루션을 검색하는 동안 대부분의 사람들이 SNMP를 선호하는 것으로 보입니다. 또는 특정 상황으로 인해 SNMP 방향으로 밀려났습니다.

나는 SNMP의 명백한 이점을 간과했는지 알고 싶었습니다. SNMP를 사용해야 합니까?그 이유는 무엇?

도움이 되었습니까?

해결책

SNMP는 정보를 얻는 데 적합합니다. 밖으로 Cisco 장치에 속하지만 장치를 제어하는 ​​데 그다지 유용하지는 않습니다.(기술적으로는 ~할 수 있다 SNMP와 TFTP의 조합을 사용하여 Cisco IOS 장치에 새 구성을 푸시합니다.그러나 완전히 새로운 구성을 보내는 것은 라우터나 스위치를 제어하기 위한 매우 무뚝뚝한 도구입니다.

다른 논평자 중 한 명이 Cisco IOS XR XML API를 언급했습니다.IOS XR XML API는 IOS XR을 실행하는 장치에서만 사용할 수 있다는 점에 유의하는 것이 중요합니다.IOS XR은 Cisco의 고급 캐리어급 장치 중 일부에서만 사용되므로 모든 Cisco 라우터 및 스위치의 99%에 대해 IOS XR XML API는 옵션이 아닙니다.

다른 가능성은 SSH 또는 HTTP(많은 Cisco 라우터, 스위치, AP 등)입니다.선택적인 웹 인터페이스가 있습니다).그러나 나는 둘 중 하나를 권장하지 않습니다.내가 아는 바로는 웹 인터페이스가 여러 장치에 걸쳐 그다지 일관적이지 않으며, 상당히 놀라운 수의 Cisco 장치가 SSH를 지원하지 않거나 적어도 기본 라이선스에서는 이를 지원하지 않습니다.

소수의 장치 모델만 대상으로 삼는 것이 아니라면 Telnet이 실제로 갈 수 있는 유일한 방법입니다.비교 대상을 제공하기 위해 Cisco의 자체 CiscoWorks 네트워크 관리 소프트웨어는 Telnet을 사용하여 관리 장치에 연결합니다.

다른 팁

나는 SNMP를 사용하지 않고 대신 '기대'라는 작은 언어를보십시오. 이 라우터에 대해 매우 좋은 기대/응답 프로세서를 만듭니다.

나는 Cisco 스위치를 사용하여 합리적인 양의 실제 SNMP 프로그래밍을 수행했으며 Net-SNMP 위에서 Python이 상당히 합리적이라는 것을 발견했습니다. 다음은 Google 도서를 통해 Net-SNMP 및 Python을 통해 새로운 Cisco 구성을 업로드하는 예입니다. Cisco Switch는 Net-SNMP 및 Python을 통해 업로드합니다. 나는 내가 링크에서 언급 된 책의 공동 저자임을 공개해야한다.

모든 사람의 마일리지는 다를 수 있지만 개인적으로 사용하는 것을 좋아하지 않습니다. expect, SNMP는 실제로 "간단한 네트워크 관리 프로토콜"으로 설계되었으므로 SNMP를 사용하는 것이 좋습니다. 꼬집음에서는 기대가 괜찮지 만 첫 번째 선택은 아닙니다. 일부 회사가 기대하는 이유 중 하나는 개발자가 기대를 사용하는 데 익숙해지기 때문입니다. Telnet 또는 SSH를 자동화하는 누군가의 예가 있기 때문에 SNMP를 우회하는 것을 반드시 볼 수는 없습니다. 먼저 스스로 시도하십시오.

기대와 함께 일어나는 진정으로 끔찍한 일들이있을 수 있으며, 또한 분명하지 않을 수도 있습니다. 기대는 입력을 기다리기 때문에 올바른 조건에서는 디버깅하기 어려운 매우 미묘한 문제가 있습니다. 이것은 경험이 풍부한 개발자가 기대와 신뢰할 수있는 코드를 개발할 수 없다는 것을 의미하지는 않지만 알고 있어야합니다.

보고 싶은 다른 것 중 하나는 멀티 프로세싱 모듈을 사용하여 비 블로킹 SNMP 코드를 작성하는 예입니다. 이것은 stackoverflow에 대한 첫 번째 게시물이기 때문에 하나의 링크를 더 이상 게시 할 수 없지만 Google을 찾으면 IPYTHON 및 NET-SNMP를 사용하는 데있어 찾을 수 있습니다.

SNMP 코드를 작성할 때 명심해야 할 한 가지는 많은 문서를 읽고 시행 착오를 수행한다는 것입니다. Cisco의 경우, 문서는 꽤 좋습니다.

SNMP는 나쁘지 않지만 필요한 모든 것을 할 수는 없습니다. 사용하는 라이브러리에 따라 SNMP와 상호 작용하는 세부 사항을 숨기는 방법에 따라 MIB의 올바른 부분을 찾아 원하는대로 무엇을 변경 해야하는지 아는 데 어려움을 겪을 수 있습니다.

SNMP를 사용하지 않는 한 가지 이유는 iOS XR XML API. SNMP와 상호 작용하는 것보다이를 사용하여 장치에 보내려는 명령을 묶는 것이 훨씬 쉬울 수 있습니다.

SNMP가 경영진의 고통이라는 것을 알았습니다. 약간의 데이터를 가져와야한다면 훌륭합니다. 물건을 바꾸거나 많이 사용해야하는 경우 시간이 많이 걸릴 수 있습니다. 제 경우에는 CLI에 편안하여 텔넷 접근 방식이 잘 작동합니다. 나는 다양한 네트워크 기어에서 관리 작업을 수행하기 위해 일부 파이썬 스크립트를 작성했습니다. telnetlib

SNMP는 Telnet과 비교하여 문제의 장치에 상당히 상당한 CPU 히트를 보유하고 있습니다. 가능한 한 텔넷을 추천합니다. (이전 답변에서 언급 한 바와 같이, iOS XR XML API는 좋을 것이지만, iOS XR은 고급 캐리어 등급 라우터에만 배포된다).

기존 구성 관리 시스템과 관련하여 두 명의 상업 플레이어가 HP Opsware 및 EMC Voyence입니다. 둘 다 아마도 필요한 것을 할 것입니다. 실제로 배포 변경을 지원하는 많은 오픈 소스 솔루션을 알지 못합니다. (rancid, 예를 들어, 구성 모니터링 만 사용하지 않고 구성 변경 사항을 사전 준비 및 배포하지 않습니다).

자신의 솔루션을 굴려야하는 경우, 내가 권장하는 한 가지 권장하는 것은 네트워크 관리자와 함께 앉아서 제공하는 서비스에 대한 모범 사례 배포 모델을 제시하는 것입니다 (예 : 표준화 된 ACL, QOS 큐 및 VLAN 이름; 다른 고객 등과 동일한 기능을 가진 ACL의 항목). 기존 배포 된 모든 구성이 디자인을 시작하기 전에이 BP를 준수하는지 확인하십시오. 문제를 훨씬 더 관리하기 쉽게 만듭니다. 행운을 빌어 요.

Sidenote : 다른 서비스 프로비저닝 시스템/네트워크 관리 시스템을 작성하는 휠을 재창조하기 전에 기존 서비스를 찾으십시오. 나는 다양한 수준의 유연성/기능에 대한 상당히 많은 상업 솔루션을 알고 있지만, 많은 OpenSource가 있다고 확신합니다.

Cisco에는 HelpDesk 응용 프로그램을위한 메뉴 옵션이 포함되어 있습니다. 기본적으로 상자에 텔넷을 사용하고 멋진 깨끗한 메뉴를 제공합니다 (1, 2, 3을 누릅니다). 자세한 정보는이 링크를 확인하십시오.

http://www.cisco.com/en/us/docs/ios/12_2/configfun/command/reference/frf001.html#wp1050026

기대에 대한 또 다른 투표.

또한 Telnet 또는 SNMP를 통해 방화벽을 구성하고 싶지 않습니다. SSH는 유일한 방법입니다. 그 이유는 SSH가 페이로드를 암호화하고 특권 관리 자격 증명을 잠재적 인 차단에 노출시키지 않기 때문입니다.

어떤 이유로 SSH를 직접 사용할 수없는 경우 SSH 지원 직렬 콘솔 서버를 방화벽의 콘솔 포트에 연결하고이를 구성하는 것을 고려하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top