ネットワークスペシャリスト - SE娘の剣 -

ネットワークスペシャリストの試験対策サイト(by 左門至峰の株式会社エスエスコンサルティング)です。ネットワークスペシャリスト試験の 勉強方法、合格体験談、合格のコツ、過去問解説、基礎知識などの情報を掲載します。試験対策セミナー・研修も行っております。 ネットワークスペシャリスト試験対策・勉強なら左門至峰の最も詳しい過去問解説「ネスペ」シリーズ(技術評論社)で!!

ネットワーク管理

1.SNMP(Simple Network Management Protocol)

1.ネットワーク管理とは

IPAが発表する応用情報のシラバスに、ネットワーク管理に関して以下の記述がある。

(1)ネットワーク運用管理
1) 構成管理
構成情報を維持し,変更を記録する構成管理の管理方法を理解する。
【用語例】 ネットワーク構成,バージョン

2) 障害管理
障害の検出,分析,対応を行う障害管理の管理方法を理解する。
【用語例】 情報収集,障害の切分け,障害原因の特定,復旧措置,記録

3) 性能管理
トラフィック量と転送時間の関係の分析などによる,ネットワークの性能の管理方法を理解する。
【用語例】 トラフィック監視

(2)ネットワーク管理ツール
ネットワーク管理に利用されているツールの機能,仕組みを理解する。
【用語例】 ping,ipconfig,arp,netstat

(3)SNMP
ネットワークを構成する機器を集中管理するためのプロトコルであるSNMP とMIB(Management Information Base:管理情報ベース)を使用したトラフィック解析方法を理解する。
【用語例】 SNMP エージェント,SNMP 管理ステーション,get 要求,put 要求,trap 要求


1) 構成管理
過去問では、ネットワーク構成の管理に関して、「ネットワーク構成の変更の都度、ネットワーク構成図を更新する。(H19NW午前 問17)」と述べられている。H16NW午前問17
H16NW午前問45 SNMP

■SNMP全般
・過去問ではSNMPに関して、「TCP/IPの環境で使用されるプロトコルのうち、構成機器や障害時の情報収集を行うために使用されるネットワーク管理プロトコル(H20秋AP午前-問60)」と述べている。
・UDP161と162を使う。
・コミュニティ名は、特に意図がなければ「一般大衆」を意味する「public」が設定されます(すべて小文字。参考だが、大文字小文字は区別される)。しかし、コミュニティ名は、機器をグループ化する意味に加え、簡易な認証(パスワード)としての意味を持ちます。コミュニティ名が一致しなければ、情報のやり取りができません。コミュニティ名は暗号化されずに流れるので、セキュリティの強度は強くありません。ですが、publicではない方が多少なりとも安全と言えます。
過去問(H23NW午後1問3)を見てみよう。

・監視対象となる機器は,SNMP v1/v2c 対応の機器を導入する。監視の対象範囲に[ カ ]名を付け,監視SVがこれを指定して,対象機器に問い合わせる。






[正解]
カ:コミュニティ

もう一問(H30NW午後1問2)。こちらも正解は「コミュニティ」。

SNMPエージェントとSNMPマネージャは,同じグループであることを示す[ エ ]を用いて,機器の管理情報(以下,MIBという)を共有する。


・Trapとポーリングは絶対に覚えましょう。※過去問(H23午後Ⅰ問1)では、穴埋めでTrapが問われた。解答例は、最初のTが大文字で「Trap」)
snmp
・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

■SNMPのバージョン
SNMPのバージョンには、大きくSNMPv1、SNMPv2c、SNMPv3の3つがあり、バージョンが上がるにつれて機能が拡張し、SNMPのメッセージのフォーマットも異なります。
たとえば、v3では平文のコミュニティ名を廃止して認証を強化しています。
現在でも広く普及しているのはSNMPv2cです。
バージョンの違いによる機能差は覚える必要はありません。SNMPの基本機能だけをしっかり覚えておきましょう。
参考ですが、SNMPv2はセキュリティ機能が実情に即していなかったので、v1と同様のコミュニティ名での簡易認証に変更しました。それ以外はv2の仕様であったため、Community-based SNMPv2として、SNMPv2cとなっています。
・v2による改良点は、GetBulkRequestによる複数一括の処理など
・各バージョンでの互換性は、部分的にはあるが、・・・というレベル
・v3ではセキュリティが強化されており、コミュニティ名ではなくUSMを使う

■SNMPインフォーム
まずは過去問(H30NW午後1問2)をみてみよう。

しかし,SNMPのインフォームと呼ばれるイベント通知機能を利用すれば,これらの問題に対応できると考えた。
SNMPのインフォームでは,MIBに変化が起きた際に,SNMPエージェントが直ちにメッセージを送信し,SNMPマネージャからの確認応答を待つ。確認応答を受信できない場合,SNMPエージェントは,SNMPマネージャがメッセージを受信しなかったと判断し,メッセージの再送信を行う。Cさんは,⑧今回と同様なネットワークの異常が発生した場合に備えて,SNMPマネージャがインフォームの受信を行えるよう,SNMPエージェントの設定パラメタを考えた。

ポイントは、「確認応答を待ち」、確認応答を受信できない場合は「メッセージの再送信」を行うことである。Trapを送信しても、ネットワークの障害(この過去問ではSTPの再計算)により、TrapがSNMPマネージャに届かない場合がある。SNMPエージェントは、確認応答がSNMPマネージャから届かない場合、再送をするので、Trapをより確実に届けることができる。

2.MIB

(1)MIBとは

・管理情報をMIBと呼ばれるデータベースに保存する。
・拡張MIB(またはPrivateMIBだとおもう)により、独自の管理ができる。
・MIB1は144種、MIB2は171種のオブジェクトが定義されている。各オブジェクトはOID(ObjectID)で識別される。MIB2はMIB1に対して下方互換がある。

■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 などでインストールしてください。

(1)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であることがわかります。
(2)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)であることがわかります。
(3)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)と表示されます。

(4)通信量
通信量を見るには、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をみてみよう

管理サーバでの監視には,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.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メッセージが転送されます。
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アドレスやポート番号の組合せ)ごとの統計情報を,ネットワーク機器がコレクタと呼ばれるサーバに送信するときに使用される」とあります。