質問

最近、ネットワークエンジニアである同僚から、マイナーなネットワーク管理者の仕事を中級レベルのヘルプデスク技術者に任せたいと考えました。管理を必要とする特定の場所は、単一サイトのプロパティでテナントのISPとして機能するため、毎日多くの小さな調整が行われています。

32のシスコデバイスをオンサイトで管理するためのwinformアプリを彼に書くと役立つと思います。最初に、アクセス制御リスト、ポートVLANの割り当て、VLANごとの帯域幅制限を変更できる機能を提供したいと思います。価値があると思われるリストにさらに追加します。

最初に考えたのは、ネットワークデバイスとのTelnetセッションをエミュレートすることでした。ネットワークエンジニアがコマンドライン/ IOSの相互作用に慣れていることを利用しています。自分でCisco IOSの規則を習得するには、最小限の時間が必要です。

解決策を探している間、ほとんどの人がSNMPを好むようです。それ、または彼らの特定の状況はSNMPの方向にそれらを押しました。

SNMPの明らかな利点を見落としているかどうかを知りたかった。 SNMPを使用する必要がありますか?なぜですか?

役に立ちましたか?

解決

SNMPは、シスコデバイスの情報を出力するのに最適ですが、デバイスの制御にはあまり役立ちません。 (技術的には、SNMPとTFTPの組み合わせを使用して、新しい構成をCisco IOSデバイスに プッシュできます。しかし、まったく新しい構成を送信することは、ルーターまたはスイッチを制御するための非常に鈍い手段です)。

他のコメンターの1人がCisco IOS XR XML APIについて言及しました。 IOS XR XML APIは、IOS XRを実行するデバイスでのみ利用可能であることに注意することが重要です。 IOS XRは、いくつかのシスコのハイエンドキャリアクラスデバイスでのみ使用されるため、Ciscoのすべてのルーターおよびスイッチの99%では、IOS XR XML APIはオプションではありません。

その他の可能性はSSHまたはHTTPです(多くのCiscoルーター、スイッチ、APなどにはオプションのWebインターフェースがあります)。しかし、私はそれらのいずれかに対してお勧めします。私の知る限り、Webインターフェースはデバイス間であまり一貫性がなく、かなり驚くべき数のCiscoデバイスがSSHをサポートしていないか、少なくとも基本ライセンスでサポートしていません。

Telnetは、限られた範囲のデバイスモデルのみをターゲットにしている場合を除き、本当に唯一の方法です。比較対象を提供するために、シスコ独自のCiscoWorksネットワーク管理ソフトウェアはTelnetを使用して管理対象デバイスに接続します。

他のヒント

SNMPは使用せず、代わりに「expect」と呼ばれる小さな言語を調べます。これらのルーターに非常に優れた期待/応答プロセッサを提供します。

シスコのスイッチで現実世界のSNMPプログラミングを適度に実行しましたが、Net-SNMP上のPythonは非常に合理的であることがわかりました。 Googleブックを使用した、Net-SNMPおよびPythonを介した新しいCisco構成のアップロードの例を次に示します。 Net-SNMPおよびPythonによるCiscoスイッチのアップロード。リンクで参照されている本の共著者であることを開示する必要があります。

すべての人の走行距離は異なる場合がありますが、個人的には expect を使用するのは好きではありません。SNMPは実際には「Simple Network Management Protocol」として設計されているため、ピンチでは大丈夫ですが、最初の選択ではありません。一部の企業がexpectを使用する理由の1つは、開発者がexpectを使用することに慣れていることです。誰かがtelnetやsshを自動化する例があるからといって、必ずしもSNMPをバイパスするのを止めてしまうとは限りません。まず自分で試してみてください。

expectで起こる本当に恐ろしいことがありますが、それは同様に明白ではないかもしれません。入力を待つため、適切な条件下では、デバッグが困難な非常に微妙な問題が発生します。これは、経験豊富な開発者が信頼性の高いコードを期待通りに開発できないことを意味するものではありませんが、同様に注意する必要があります。

他に見たいものの1つは、マルチプロセッシングモジュールを使用して非ブロッキングSNMPコードを作成する例です。これはstackoverflowへの私の最初の投稿なので、複数のリンクを投稿することはできませんが、それをグーグルで検索した場合、またはIPythonとNet-SNMPの使用に関する別のリンクを見つけることができます。

SNMPコードを記述する際に留意すべきことの1つは、多くのドキュメントを読み、試行錯誤を行うことです。シスコの場合、ドキュメントは非常に優れています。

SNMPは悪くありませんが、必要なすべてを実行できない場合があります。使用するライブラリと、SNMPとの対話の詳細をどのように隠すかによっては、変更するMIBの正しい部分を見つけるのに苦労する場合があります。

SNMPを使用しない1つの理由は、 IOS XR XML API 。 SNMPを操作するよりも、それを使用してデバイスに送信するコマンドをまとめる方がはるかに簡単です。

SNMPが管理の苦痛であることがわかりました。少しのデータを取得するだけなら、それは素晴らしいことです。物事を変更したり使用する必要がある場合は、非常に時間がかかる可能性があります。私の場合、CLIに慣れているので、Telnetアプローチがうまく機能します。 Telnetlib

SNMPは、telnetと比較して、問題のデバイスでかなりのCPUヒットがあります。可能な限りtelnetをお勧めします。 (前の回答で述べたように、IOS XR XML APIは素晴らしいと思いますが、IOS XRがハイエンドキャリアグレードのルーターにのみ展開されていることを知っている限り)。

既存の構成管理システムに関して、2つの商用プレーヤーはHP OpswareとEMC Voyenceです。両方ともおそらくあなたが必要とすることをするでしょう。変更の展開を実際にサポートする多くのオープンソースソリューションを知りません。 (たとえば、 RANCID は、構成の監視のみを行い、構成の変更の事前ステージングと展開は行いません)。

独自のソリューションを展開する場合、ネットワーク管理者と一緒に座って、彼が提供しているサービスのベストプラクティスな展開モデル(標準化されたACL、QoSキュー、VLANなど)を考案することをお勧めします名前、異なる顧客に対して同じ機能を持つACLの類似エントリなど)。設計を開始する前に、既存のデプロイされたすべての構成がこのBPに準拠していることを確認してください。これにより、問題がはるかに管理しやすくなります。幸運を祈ります。

補足:別のサービスプロビジョニングシステム/ネットワーク管理システムを作成する車輪を再発明する前に、既存のものを探してみてください。さまざまな程度の柔軟性/機能性の商用ソリューションを非常に多く知っていますが、非常に多くのオープンソースのものがあると確信しています。

シスコには、ヘルプデスクアプリケーション用のメニューオプションが含まれています。基本的に、ボックスにtelnetで接続すると、きれいなメニューが表示されます(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