- 1.SNMP(Simple Network Management Protocol)
- 2.SNMPとMIB
- 3.SNMPの演習
- 3.SYSLOG
- 4.IPFIX(IP Flow Information Export)
1.SNMP(Simple Network Management Protocol)
(1)ネットワーク管理とは
IPAが発表する応用情報のシラバスをもとに、ネットワーク管理を整理する。
管理内容 | 内容 | 用語例 | |
---|---|---|---|
1) | 構成管理 | 構成情報を維持し,変更を記録する構成管理の管理方法を理解する。 | ネットワーク構成,バージョン |
2) | 障害管理 | 障害の検出,分析,対応を行う障害管理の管理方法を理解する。 | 情報収集,障害の切分け,障害原因の特定,復旧措置,記録 |
3) | 性能管理 | トラフィック量と転送時間の関係の分析などによる,ネットワークの性能の管理方法を理解する。 | トラフィック監視 |
補足だが、ネットワークスペシャリスト試験の過去問では、ネットワーク構成の管理に関して、「ネットワーク構成の変更の都度、ネットワーク構成図を更新する。(H19NW午前 問17)」と述べられている。
(2)SNMPに関して
・過去問ではSNMPに関して、「TCP/IPの環境で使用されるプロトコルのうち、構成機器や障害時の情報収集を行うために使用されるネットワーク管理プロトコル(H20秋AP午前-問60)」と述べている。
・UDPの161(ポーリング)番、162(Trap)番を使う
・コミュニティ名は、特に意図がなければ「一般大衆」を意味する「public」が設定されます(すべて小文字。参考だが、大文字小文字は区別される)。しかし、コミュニティ名は、機器をグループ化する意味に加え、簡易な認証(パスワード)としての意味を持ちます。コミュニティ名が一致しなければ、情報のやり取りができません。コミュニティ名は暗号化されずに流れるので、セキュリティの強度は強くありません。ですが、publicではない方が多少なりとも安全と言えます。
ネットワークスペシャリスト試験の過去問(H23NW午後1問3)を見てみよう。
過去問(H23NW午後1問3) |
---|
・監視対象となる機器は,SNMP v1/v2c 対応の機器を導入する。監視の対象範囲に[ カ ]名を付け,監視SVがこれを指定して,対象機器に問い合わせる。 |
↓
↓
↓
↓
↓
[正解]
カ:コミュニティ
過去問(H30NW午後1問2) |
---|
SNMPエージェントとSNMPマネージャは,同じグループであることを示す[ エ ]を用いて,機器の管理情報(以下,MIBという)を共有する。 |
↓
↓
↓
↓
↓
こちらも正解は「コミュニティ」
(3)Trapとポーリング
・Trapとポーリングは絶対に覚えましょう。※過去問(H23午後Ⅰ問1)では、穴埋めでTrapが問われた。解答例は、最初のTが大文字で「Trap」
・trapに関してネットワークスペシャリスト試験の過去問では、「ネットワーク管理プロトコルであるSNMPバージョン1のメッセージタイプのうち、異常や事象の発生を自発的にエージェント自身がマネージャに知らせるために使用するもの(H21NW午前2-17)」と述べられています。
・Simpleという名のとおり、プロトコルは単純である。SNMPマネージャとSNMPエージェント間のメッセージの種類は6つしかない。
・機器側ではMIB(Management Information Base)というツリー構造のデータベースを持って、問いかけに対して答えるだけというシンプルな動きである。仕組みが簡単なので、安価なSwitchなどでもSNMP機能を有することが多い。
・インテリジェントSwitchやSNMP対応Switchと書かれている場合には、SNMPの情報を持つことで、ステータス情報をマネージャとやりとりできる。
・SNMPのメッセージ
シンプルと言われるだけあって、わずか5種のメッセージしかない
1)Get-Request
2)Get-Next-Request
3)Get-Response
4)Set-Request
5)Trap
(4)SNMPのバージョン
SNMPのバージョンには、大きくSNMPv1、SNMPv2c、SNMPv3の3つがあり、バージョンが上がるにつれて機能が拡張し、SNMPのメッセージのフォーマットも異なります。
たとえば、v3では平文のコミュニティ名を廃止して認証を強化しています。
現在でも広く普及しているのはSNMPv2cです。
バージョンの違いによる機能差は覚える必要はありません。SNMPの基本機能だけをしっかり覚えておきましょう。
参考ですが、SNMPv2はセキュリティ機能が実情に即していなかったので、v1と同様のコミュニティ名での簡易認証に変更しました。それ以外はv2の仕様であったため、Community-based SNMPv2として、SNMPv2cとなっています。
・v2による改良点は、GetBulkRequestによる複数一括の処理など
・各バージョンでの互換性は、部分的にはあるが、・・・というレベル
・v3ではセキュリティが強化されており、コミュニティ名ではなくUSMを使う
(5)SNMPインフォーム
まずはネットワークスペシャリスト試験の過去問(H30NW午後1問2)をみてみよう。
しかし,SNMPのインフォームと呼ばれるイベント通知機能を利用すれば,これらの問題に対応できると考えた。 SNMPのインフォームでは,MIBに変化が起きた際に,SNMPエージェントが直ちにメッセージを送信し,SNMPマネージャからの確認応答を待つ。確認応答を受信できない場合,SNMPエージェントは,SNMPマネージャがメッセージを受信しなかったと判断し,メッセージの再送信を行う。Cさんは,⑧今回と同様なネットワークの異常が発生した場合に備えて,SNMPマネージャがインフォームの受信を行えるよう,SNMPエージェントの設定パラメタを考えた。 |
ポイントは、「確認応答を待ち」、確認応答を受信できない場合は「メッセージの再送信」を行うことである。Trapを送信しても、ネットワークの障害(この過去問ではSTPの再計算)により、TrapがSNMPマネージャに届かない場合がある。SNMPエージェントは、確認応答がSNMPマネージャから届かない場合、再送をするので、Trapをより確実に届けることができる。
■設定例
・trapの場合は以下です。2行目ですが、trapsの記載は省略可能です。
Switch(config)#snmp-server enable traps
Switch(config)#snmp-server host 10.1.100.99 traps a_sha_community
・informの場合は、trapsをinformsに変更します。
Switch(config)#snmp-server host 10.1.100.99 informs a_sha_community
2.SNMPとMIB
(1)MIBとは
・管理情報をMIBと呼ばれるデータベースに保存する。
・拡張MIB(またはPrivateMIBだとおもう)により、独自の管理ができる。
・MIB1は144種、MIB2は171種のオブジェクトが定義されている。各オブジェクトはOID(ObjectID)で識別される。MIB2はMIB1に対して下方互換がある。
・SNMPのポーリングによって、各機器のMIB情報を取得し、ネットワーク管理(死活監視や性能管理など)ができる。
(2)MIBを実際にみてみよう
CatalystのMIBをSNMPサーバから覗いてみましょう。
まず、Catalystにて、SNMPのポーリングを受け付ける設定をします。
Switch(config)#snmp-server community public
コミュニティ名をpublicにしました。
また、IFのIDを確認します。
Switch#show snmp mib ifmib ifindex FastEthernet0/1: Ifindex = 10001 FastEthernet0/2: Ifindex = 10002 FastEthernet0/3: Ifindex = 10003 FastEthernet0/4: Ifindex = 10004 FastEthernet0/5: Ifindex = 10005 FastEthernet0/6: Ifindex = 10006 FastEthernet0/7: Ifindex = 10007 FastEthernet0/8: Ifindex = 10008 GigabitEthernet0/1: Ifindex = 10101 Null0: Ifindex = 10501 Vlan1: Ifindex = 1 Switch#
インターフェースのOIDはツリー構造で、.1.3.6.1.2.1.2.2.1.に存在します。
では、順に確認していきましょう。
SNMPの管理ソフトがあれば見やすいでしょうが、ここではLinuxサーバで、snmpgetコマンドで簡単に実行します。
※snmpgetコマンドは、必要に応じて# yum install net-snmp-utils などでインストールしてください。
❶IFの説明
#snmpget -v2c -c public 192.168.0.10 .1.3.6.1.2.1.2.2.1.2.10001 IF-MIB::ifDescr.10001 = STRING: FastEthernet0/1
→IFがFastEthernet0/1であることがわかります。
❷IFのスピード
#snmpget -v2c -c public 192.168.0.10 .1.3.6.1.2.1.2.2.1.5.10001 IF-MIB::ifSpeed.10001 = Gauge32: 10000000
→IFのスピードが10000000(=10Mbps)であることがわかります。
❸IFの状態
#snmpget -v2c -c public 192.168.0.10 .1.3.6.1.2.1.2.2.1.8.10001 IF-MIB::ifOperStatus.10001 = INTEGER: down(2)
→IFの状態がdownであることがわかります。
UPしていれば、up(1)と表示されます。
❹通信量
通信量を見るには、ifHCInOctets(受信したバイト数)とifHCOutOctets(送信したバイト数)を取得します。snmpgetコマンドにて、スイッチのIPアドレス(10.1.1.100)を指定し、スイッチの4番ポートのifHCInOctetsを取得します。このあたりは知らなくていいので、雰囲気だけ味わってください。ifHCInOctetsのOIDは.1.3.6.1.2.1.31.1.1.1.6.xでして、最後のxにIFの番号10004を指定します。
# snmpget -v2c -c public 10.1.1.100 .1.3.6.1.2.1.31.1.1.1.6.10004
その結果、以下のように、バイト数のカウンタが表示されます。
IF-MIB::ifHCInOctets.10004 = Counter64: 20008082
◆RMON(Remote Network Monitoring)
Remoteという言葉のとおり、遠隔から監視する。SNMPを拡張している。
MIBはある一点の情報を表示するのに対し、RMONでは点を線にして監視する。その結果、ネットワークの使用率なども管理できる。
RMON1はレイヤ2の情報、RMON2はレイヤ3以上の情報を持つ。
◆過去問より
過去問で、SNMPを理解するに相応しい出題があるので紹介する。正解以外の選択肢についても、なぜ間違っているかを理解してほしい。
過去問(H18NW午前) |
---|
問45 TCP/IPにおけるネットワーク管理プロトコルであるSNMPに関する記述のうち、適切なものはどれか。 ア SNMPで定義されているメッセージは、マネージャからの要求に対してエージェントが応答する形式のものだけである。 イ SNMPは、UDPを用いている。 ウ エージェントからのすべてのメッセージは、マネージャの同一ポートに送られる。 エ マネージャがエージェントにアクセスする管理情報のデータベースは、RDBと呼ばれる。 |
↓
↓
↓
↓
↓
正解:イ
◆SNMPの過去問
H16NW午後Ⅰ問2をみてみよう
過去問(H16NW午後Ⅰ問2) |
---|
管理サーバでの監視には,pingとSNMPを使用している。 C君:pingもSNMPも聞いたことはありますが,詳しいことは分かりません。 B氏:それでは,PCを使って,pingの仕組みを説明しよう。このように,pingコマンドを人力すると,あて先にICMPの[ a ]要求メッセージが送信される。それに対する応答メッセージを受信することで,あて先となった機器がネットワークに接続されていると見なすことができる。 C君:そうでしたか。 B氏:さて,ネットワーク機器やサーバの監視は,pingによる確認だけでは十分ではない。サーバのCPUやハードディスクの使用率,ネットワーク機器のトラフィックやインタフェースの状況も見たいときがある。このような要求に対応できるのが,SNMPというわけだ。 C君:SNMPは,難しいのですか。 B氏:奥は深いけれど,簡単な仕組みだよ。SNMP機能搭載の機器は,エージェントと呼ばれ,それを管理するマネージャと対になって動作する。マネージャは,エージェントに対して,情報収集や設定変更の要求を出す。情報収集にはget要求,設定変更には[ b ]要求が使われる。さらに,エージェントからマネージャに通知される[ c ]がある。get要求のグループには,階層的に次のオブジェクトの情報を取得するget-[ d ]要求がある。SNMPで管理されるエージェントがもつ情報定義のことを,[ e ]という。 C君:障害の検知に,[ c ]が使われるのですね。 B氏:そのとおり。よく分かったね。そして,障害を検知すると,管理サーバに搭載されているマネージャソフトの機能で,コマンドを投人したり,メールを送信したりする。重大な障害が発生した場合には,私の携帯電話あてにメールを送信する設定にしている |
↓
↓
↓
↓
↓
正解:
a:エコー
b:set
c:trap
d:next
e:MIB
■違う過去問
ネットワークスペシャリスト試験の過去問(H30NW午後Ⅰ問2)には、以下の記載があります。
SNMPは機器を管理するためのプロトコルで,⑥SNMPエージェントとSNMPマネージャで構成される。SNMPエージェントとSNMPマネージャは,同じグループであることを示す【 エ:コミュニティ 】を用いて,機器の管理情報(以下,MIBという)を共有する。 SNMPの基本動作として,ポーリングとトラップがある。ポーリングは,SNMPマネージャが,SNMPエージェントに対して,例えば5分ごとといった定期的にMIBの問合せを行うことによって,機器の状態を取得できる。一方,トラップは,MIBに変化が起きた際に,SNMPエージェントが直ちにメッセージを送信し,SNMPマネージャがメッセージを受信することによって,機器の状態を取得できる。 |
■CatalystでのSNMPの設定
CatalystスイッチにSNMPの設定をしてみます。設定を確認しながら、SNMPに関する理解を膨らませてください。
Switch(config)#snmp-server community a_sha_community ro Switch(config)#snmp-server enable traps Switch(config)#snmp-server host 10.1.100.99 a_sha_community |
1行目は、SNMPのポーリングの設定です。コミュニティ名として、「a_sha_community」を設定しました。そのあとにあるroはRead Onlyとう意味で、SNMPマネージャからは読取専用という意味です。(読み書き可能なrwに設定することも可能です)
2行目と3行目はトラップの設定です。2行目でトラップを有効にし、3行目でトラップを送信するSNMPサーバのIPアドレスと、コミュニティ名を設定しています。
3.SNMPの演習
SNMPおよびMIBを理解するために、実際にSNMPエージェントとSNMPマネージャで管理をしてみましょう
(1)SNMP管理の構成
Windows のPC上で、SNMPマネージャ(フリーソフトの「TWSNMP」)を動作させます。
SNMPエージェントはCiscoルータです。
(2)監視される機器(SNMPエージェント)の設定
Ciscoルータで、以下を実行してください。今回、SNMPマネージャがインストールされたPCのIPアドレスが192.168.1.101の前提です。
Router(config)#snmp-server community public
Router(config)#snmp-server enable traps
Router(config)#snmp-server host 192.168.1.101 version 2c public
※実際にsh run でみると、trapsに関するたくさんの設定が確認できます。
※Trapを送るときに、ルーティングの設定がないとうまく飛ばなかった。
Router(config)#no ip route 0.0.0.0 0.0.0.0 192.168.1.101
(3)SNMPマネージャの設定(TWSNMPの場合)
今回はWindows10上で動作し、操作も直感的でわかりやすいことから、TWSNMPを使います。それ以外のソフトを使ってもらっても構いません。
❶ダウンロードとインストール
・以下のサイトから「TWSNMP v4.11.7」の「TWSNMPV4.msi」をダウンロードします。
https://lhx98.linkclub.jp/twise.co.jp/
※オフラインでも使える旧版ですが機能は充実しています。※一覧の中の結構下にあるので、「4.11」などで検索してください。
・「TWSNMPV4.msi」をダウンロード後、実行し、指示に従いインストールを進めます。
インストールの完了後、スタートメニューの「TWSNMPv4>管理MAP」を選ぶと、TWSNMPが起動します。
❷ノードの登録
・「管理ツール>自動発見」で、IP接続性がある機器(TWSNMPではノードと呼びます)を抽出します。あまり関係ないとは思いますが、過去に試験でバージョンが出たことがあるので、バージョンをいうのを意識するという簡単から、「SNMPモード」は普及している「SNMPv2c」を選びましょう。
・「開始」ボタンを押すと指定したIPアドレス帯の中でPingが届くノードが検知されマップに表示されます。
・表示されたノード名は、TWSNMPがSNMPエージェントの保有するMIB情報をSNMP GetRequest により収集したものです。
❸ポーリングによるOIDとMIBの確認
SNMPエージェントは、管理情報をMIBと呼ばれるデータベースに保存します。MIBにも種類がありますが、最も普及している標準MIB(MIB-2)ではsystem、interfaces等の11のグループがあり、全体で171種のオブジェクトが定義されています。各オブジェクトはOID(ObjectID)で識別されます。
・TWSNMPではノードが保有するMIB一覧を表示できます。ノードを指定し「SNMP管理>MIBブラウザ」を選択します。
次に「追加」ボタンをクリックし、MIBツリーから[interfaces][ifTable][ifEntry]のifDescrとifOperStatusを選択し「選択」ボタンをクリックします。※2回追加を押します。
その後、モードを「テーブル」にして、「実行」ボタンを押してみましょう。(テーブルにしないと、全てのIFの一覧情報が表示されない)
MIBブラウザにより、ノードが保有するMIBの様々なオブジェクトとその値を確認することができます。
これを見てもらうとわかるように、IFの名前とそのIFの状態を確認できます。
例えば、たとえば、OIDの .1.3.6.1.2.1.2.2.1.2のifDescrは、IFの説明であり、ifOperStatusはIFの状態でして、それをペアで出すことで、IFの名前を状態を確認できます。他にも、例えば、インタフェースのリンク状態やパケット数等、通信の状態を記録するオブジェクトもあります。これらを定期的に取得すれば、ネットワーク管理の一環として、障害検知やトラフィック量の把握ができます。
❹Trap
GE0のポートを抜きました。するとSNMPマネージャにTrapが上がります。TWSNMPでTrapを見たい場合は、「編集」「MAPのプロパティ」「TRAP設定」を「受信しない」→162に変更する必要があります。しかし、PC側のパーソナルファイアウォールでパケットを拒否している可能性があるので、うまくいかない可能性があります。
そこで、WiresharkでTrapのパケットが届いているかを確認しましょう。以下、Gi0に関して、Trapでkeepalive failedという情報がすぐに飛んできました。
※Trapを送るときに、Ciscoルータのルーティングの設定がないとうまく飛ばなかった。(何か別の理由かもしれませんが)
Router(config)#no ip route 0.0.0.0 0.0.0.0 192.168.1.101
3.SYSLOG
NW機器やサーバで一般的に使われているログ転送のプロトコルは,syslogです。syslogはサーバだけではなく,ネットワーク機器のログを収集・転送するときにも利用できます。
ネットワークスペシャリスト試験の過去問(H19秋NW午後Ⅰ)では、「Webサーバにアクセスログを保存せず,Webアクセスが発生するごとに, Webサーバからログ解析サーバヘsyslogプロトコルを利用して,アクセスログを転送する。」とあります。
過去問(H26春SC午後Ⅰ問2)では、穴埋めで問われました。
「インターネット接続システムの各サーバでは,サーバヘのアクセス及びサーバ上でのプログラムの動作のログをログサーバに保存している。ログを収集,転送する方式には,UNIXで一般的に使われている[ a ]というプロトコルを利用している。」
ネットワークスペシャリスト試験の過去問(H30秋NW午後Ⅰ問2)では、「SYSLOGは,トランスポートプロトコルとしてRFC 768で規定されている[ ウ:UDP ]を用いている。」とあります。
■SYSLOGを試してみよう
SYSLOGの動作を確認してみましょう。
今回は、CatalystのスイッチのIFをダウンさせて、SYSLOGサーバにログを転送する様子をみてみます。
Catalystスイッチの設定は簡単です。
SYSLOGサーバのIPアドレスを指定(今回は192.168.1.1)するだけです。
Switch#conf t
Switch(config)#logging host 192.168.1.1
この状態で、ポート5を抜くと、SYSLOGサーバにUDPでSYSLOGメッセージが転送されます。
たとえば、以下は、1番ポート(FastEthernet0/1)の状態がダウン(down)になったというSYSLOGメッセージです。
Message: *Mar 1 00:11:16.960: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down |
4.IPFIX(IP Flow Information Export)
※H30年4月の時点ですが、試験には出ないと思われます。
IPFIX(IP Flow Information Export)は、NetFlowの拡張版と考えてください。過去問(H29秋NW午前Ⅱ問13不正解選択肢)では、「ネットワークのトラフィックを分析するためのプロトコルであり,フロー(IPアドレスやポート番号の組合せ)ごとの統計情報を,ネットワーク機器がコレクタと呼ばれるサーバに送信するときに使用される」とあります。