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

左門至峰によるネットワークスペシャリストの試験対策サイトです。勉強方法、合格体験談、合格のコツ、過去問解説、基礎知識などの紹介します。

ネットワーク管理

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)」と述べている。
・UDPの161(ポーリング)番、162(Trap)番を使う
・コミュニティ名は、特に意図がなければ「一般大衆」を意味する「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アドレスと、コミュニティ名を設定しています。

(2)SNMPによるポーリングとMIBを実際に見てみる

SNMPおよびMIBを理解するために、実際にSNMPエージェントとSNMPマネージャで管理をしてみましょう

(1)SNMP管理の構成
今回は1台のWindows のPC上で、SNMPマネージャとSNMPエージェントの両方を動作させます。SNMPマネージャとしてはフリーソフトの「TWSNMP」を使います。SNMPエージェントはWindowsのPCそのものです。また、PCはWi-Fiルータとも無線で接続された状態とします。TWSNMPからは、PCとのSNMP通信に加えて、PCおよびWi-FiルータへのPing監視も行います。

(2)SNMPエージェントの設定(Windows10のPCの場合)
①SNMPエージェントの有効化
 WindowsのPCでは、多くの場合、SNMPエージェントの設定が有効になっていません。そこで、設定を変更して有効にします。
・スタートメニューから  「設定(歯車)>アプリ」を開きます。

・スタートメニューから  「設定(歯車)>アプリ」を開きます。


・アプリと機能の「オプション機能>機能の追加」から、簡易ネットワーク管理プロトコル(SNMP)を選択して「インストール」


・Windowsの検索窓で「サービス」と入力するか、スタートボタンから「Windows管理ツール」を選んで「サービス」を起動します。SNMPサービスが「実行中」になっていることが確認できます。

②SNMPエージェントの設定
続いて、SNMPの設定をしましょう。コミュニティ名として「public」を指定します。
・上記のSNMPサービスをダブルクリックして、SNMPサービスのプロパティを開き、「セキュリティ」タブで「受け付けるコミュニティ名」として「public」を追加します。
また、「すべてのホストからSNMPパケットを受け付ける」をチェックしておきます(今回の構成の場合、このチェックは必須ではありません)。

 設定は以上です。

(3)SNMPマネージャの設定と動作確認(TWSNMPの場合)
今回はWindows10上で動作し、操作も直感的でわかりやすいことから、TWSNMPを使います。それ以外のソフトを使ってもらっても構いません。

①ダウンロードとインストール
・以下のサイトから「TWSNMP v4.11.7」の「TWSNMPV4.msi」をダウンロードします。
https://lhx98.linkclub.jp/twise.co.jp/
※オフラインでも使える旧版ですが機能は充実しています。

・「TWSNMPV4.msi」をダウンロード後、実行し、指示に従いインストールを進めます。

 インストールの完了後、スタートメニューの「TWSNMPv4>管理MAP」を選ぶと、TWSNMPが起動します。

②ノードの登録
・「管理ツール>自動発見」で、IP接続性がある機器(TWSNMPではノードと呼びます)を抽出します。「SNMPモード」は普及している「SNMPv2c」を選びましょう。
・「開始」ボタンを押すと指定したIPアドレス帯の中でPingが届くノードが検知されマップに表示されます。マップ上の「TEST-PC17」はPCのホスト名(IPアドレスは192.168.43.51ですが、ホスト名に変換されています)、「192.168.43.120」はWi-Fiルータです。

ノード抽出中の画面

表示されたノード名は、TWSNMPがSNMPエージェントの保有するMIB情報をSNMP GetRequest により収集したものです。TWSNMPでは、この他、SNMP TRAPやPingによる監視などの機能を備えています。
試しに、Wi-Fiを無効にしてみましょう。Ping監視機能により、pingが届かなくなった192.168.43.120(Wi-Fiルータ)のノードが障害として検知されます。ここでは詳しくは省略しますが、ノードの「プロパティ」で各項目の監視設定ができます。是非試してみてください。

③OIDとMIBの確認
SNMPエージェントは、管理情報をMIBと呼ばれるデータベースに保存します。MIBにも種類がありますが、最も普及している標準MIB(MIB-2)ではsystem、interfaces等の11のグループがあり、全体で171種のオブジェクトが定義されています。各オブジェクトはOID(ObjectID)で識別されます。
・TWSNMPではノードが保有するMIB一覧を表示できます。ノードを指定し「SNMP管理>MIBブラウザ」を選択します。次に「追加」ボタンをクリックし、MIBツリーから「MIB-2」を選択し「選択」ボタンをクリックします。その後、「実行」ボタンを押してみましょう。MIBブラウザにより、ノードが保有するMIBの様々なオブジェクトとその値を確認することができます。

 例えば、オブジェクト名「sysName」(OID=1.3.6.1.2.1.1.5.0)は、値として、ノードのホスト名が記録されています。PCで「TEST-PC17」として設定したホスト名がこのオブジェクトの値となっているのです。なお、今回のWi-FiルータではSNMPの設定を有効にしていません。SNMPが無効の場合はSNMPによる情報収集できず、ホスト名の取得もできません。
 ホスト名の他にも、例えば、インタフェースのリンク状態やパケット数等、通信の状態を記録するオブジェクトもあります。これらを定期的に取得すれば、ネットワーク管理の一環として、障害検知やトラフィック量の把握ができます。

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