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

ネットワークスペシャリストの試験対策サイトです。ネットワークスペシャリスト試験の合格体
験談、合格のコツ、過去問解説、基礎知識などの情報を掲載します。試験対策セミナーも行っております。 ネットワークスペシャリスト
試験対策なら左門至峰の最も詳しい過去問解説「ネスペ」シリーズ(技術評論社)で!!
ネットワークスペシャリスト試験に合格すると、ネットワークに関する知識や技術だけでなく、読解力や文章力も身につきます。
さらに、この試験に合格できたという自信を得ることができます。

カテゴリ: 8.ネットワーク層(L3)

sef4 

同じセグメントに異なるネットワークを混在させたらどうなりますか?
例えば、どちらも同じL2SWに接続する場合です。
それぞれ、通信は可能です。特に問題もなく使えます。でも、ネットワークセグメントが違うもの同士は通信ができません。
ネットワークスペシャリスト_異なるネットワーク

最近のルータというか、かなり前からですが、セカンダリIPアドレスを設定できます。
1つのIFに2つのIPを設定できるのです。さらにルーティングもしてくれます。
なので、上記の構成でL2SWの上にルータを設置し、ルータにてセカンダリIPアドレスを設定すると、上記のネットワークが利用できます。以下は、CiscoルータでのセカンダリIPアドレスの設定例です。
interface FastEthernet0/0
 ip address 172.16.1.254 255.255.255.0 secondary ←セカンダリIPアドレス
 ip address 192.168.1.254 255.255.255.0 ←通常のIPアドレス
 duplex auto
 speed auto

4 

イーサネットのヘッダやら、IPのヘッダやら、なんだか混乱してきました。
無理やり覚えようとせずに、整理しながら考える。復習しながらみていこう。レイヤ2で使われるイーサネットフレームの構造と、レイヤ3で使われるIPパケットの構造を確認してほしい。
ip
IPv4のヘッダは、基本的には20バイトである。(付加情報をつけることで拡張することも可能)
以下は,IPヘッダの内容です。本当は「0」と「1」のデータが一列に並んで送信されるのですが、スペースの関係で、32ビット(8バイト)で区切り、改行して記載します。

0                    8          16           24           32

バージョン

IHL

ToS

パケット長

識別子

フラグ

フラグメントオフセット

TTL

プロトコル番号

ヘッダチェックサム

送信元IPアドレス(32 bit

宛先IPアドレス(32 bit

オプション(可変bit

Padding(可変bit

✚✚ IPヘッダの構成


ネットワークスペシャリストを目指す女性SEなやなや 

なんだかよくわからないです・・・
イメージが湧きにくいと思いますので、実際のパケットをみてみましょう。
以下は、前にも紹介したWiresharkというソフトを使って取得したIPパケットです。具体的には、192.168.0.4のパソコンからhttp://nw.seeeko.com(IPアドレスは203.104.130.159)のサイトにアクセスしたときのパケットです。
下部にあるのが生のデータであり、「0」と「1」からなるデータを16進数表記しています(青色がIPヘッダ)。上部は、このソフトが生データを分かりやすく表示したものです。
aa

では、ここで、各項目を上記のデータに照らし合わせて解説します。

項目

長さ(bit

上記のパケットの場合の値

16進数表記)

解説

バージョン

4

4

IPのバージョン情報で、バージョン4である4が入る。

IHLIP Header Length)

4

5

IPヘッダのヘッダ長。32ビットの何倍かを整数で示す。付加情報を付けることで32ビットの整数倍にならない場合は、ヘッダ末尾のオプションに詰め物(Padding?)を入れることで、32ビットの整数倍にする。通常は20バイト(=160ビット)なので、ここには5が入る。

ToS(Type of Service)

8

00

パケットの優先度を付ける場合に利用される。あまり使うことはありない。
ToSとして利用される場合とDiffServとして利用される場合の2パターンがある。Tosの場合は、3ビットで優先度をつける。DiffServの場合は6ビットで優先度をつける。

パケット長

16

023d

パケットの長さをバイト長で表します。今回は、16進数で023dなので、10進数にすると、573バイトです。
16bitあるので2の16乗=65535バイトが最大サイズ ※でもこのサイズはフラグメントする前のものではない。だから実際には1500バイト程度がMAXだろう。

識別子

16

0bcf

パケットが分割(フラグメント化)された場合のパケット識別するグループ番号みたいなもの。
大きいサイズのパケットがフラグメント化された場合、この識別子が同じパケットを再組み立てして元のパケットにする。どの順で再組み立てするにはフラグメントオフセットで判断する。

フラグ

3

2進数表記で)

0

1

0

1ビット目:使用しません

2ビット目:DF(Dont Flagment)ビットで、これがOn(=1)だと、フラグメント化(パケットの分割)されない。→今回はDFビットあり、つまり1

3ビット目:More Flagmentsビットで、同じ識別子の中でこれ以上のフラグメント化されたパケットがあるかを示す(あれば1)。同一識別子のパケットの中で、このビットが無いもの(=0)が、最終パケットになる。⇒パケットが一つなので無し、つまり0

フラグメントオフセット

13

2進数表記で)

0000000000000

フラグメント化されたパケットにおける、位置を示す。これによって、分割された同一識別子のパケットの組み立て順序が分かる。先頭パケットのフラグメントオフセットは0になる。今回は、フラグメント化されていないので、0

TTL(生存時間:Time To Live

8

80

このパケットの生存時間。通常は12816進数で80)から始まり、ルータを超える毎に1つずつ減っていく。0になったらこのパケットは廃棄される。この機能がないと、ネットワーク上を永遠に流れるパケットが存在してしまう可能性がある。

プロトコル番号

8

06

TCPUDPなどのプロトコルの種別を記載(プロトコルに関しては、このあと記載)

ヘッダチェックサム

16

de37

IPヘッダが途中で欠落したりしていないかなど、Iヘッダの正確性を確認するための検査用データ

送信元IPアドレス

32

c0a80004

送信元IPアドレス。16進数のc0.a8.00.0410進数表記すると、192.168.0.4

宛先IPアドレス

32

cb68829f

宛先IPアドレス。16進数のcb.68.82.9f10進数表記すると、203.104.130.159

オプション(32ビット x N)-めったに使わないが、ルーティングの負荷情報などのオプションを入れることができる。IPパケットを32の整数倍にする必要があるため、余った部分は詰め物が入れられる。Hedder Lengthと関連を持ち、オプションが増えれば、値も大きくなる。


過去問では、IPヘッダの中身を問われている。
【H18NW午前 問22】
IPv4のIPヘッダに含まれるものはどれか。

ア あて先MACアドレス     イ あて先ポート番号
ウ シーケンス番号        エ 存在時間(TTL)





上記のIPヘッダ情報をみてみよう。
ア:宛先MACアドレスは、イーサネットフレーム
イ、ウ:ポート番号とシーケンス番号はTCPヘッダ

正解:エ

■ヘッダのチェックサムに関して以下の過去問を見てみよう
H23NW午前2問14
問14 IPv4ネットワークにおいて, IPヘッダ, TCPヘッダ,  UDPヘッダのチェックサムフィールドに関する記述のうち,適切なものはどれか。
ア IPヘッダのチェックサムの計算は必須であるが,TCPヘッダ及びUDPヘッダのチェックサムの計算はオプションであり,計算を省略してOを指定してもよい。
イ IPヘッダのチェックサムの対象はヘッダ部分だけであるが,TCPヘッダ及びUDPヘッダのチェックサムの対象はデータ部分も含む。
ウ TCPヘッダのチェックサムの計算は必須であるが. IPヘッダ及びUDPヘッダのチェックサムの計算はオプションであり,計算を省略して0を指定してもよい。
エ どのヘッダのチェックサムフィールドも,チェックサムの対象はヘッダ部分だけである。






正解 イ
 IPヘッダのチェックサムの対象はヘッダ部分だけであるが,TCPヘッダ及びUDPヘッダのチェックサムの対象はデータ部分も含む。

ネットワークスペシャリストを目指す女性SEあれ?

IPヘッダのチェックサムは、パケット全体をチェックしなくてもいいのですか?
 TCPヘッダにて全部をチェックするので、なくてもいいのではないでしょうか。

■プロトコル番号の例
番号 プロトコル 解説
1 ICMP Internet Control Message Protocol 
2 IGMP Internet Group Management Protocol 
6 TCP  Transmission Control Protocol  
8 EGP  Exterior Gateway Protocol 
9 IGP  any private interior gateway   
17 UDP  User Datagram Protocol  
41 IPv6 
46 RSVP Reservation Protocol  
47 GRE  General Routing Encapsulation 
50 ESP  Encap Security Payload
51 AH  Authentication Header
58 IPv6-ICMP ICMP for IPv6  
88 EIGRP     
89 OSPF     
103 PIM   Protocol Independent Multicast 
112 VRRP Virtual Router Redundancy Protocol
133 FC Fibre Channel


IPv4アドレスは何バイトでしょうか?
ネットワークスペシャリストを目指す女性SE違う 

覚えていません。

A2.覚える必要はなく、理解から答えを出してほしいです。
例えば、IPアドレスの一番大きい値は255.255.255.255です。
1つの「.」の区切りでは、0〜255の値が取れます。つまり、256個です。256は何バイトですか? 2の8乗が256なので、8ビットです。
それが4つで32ビット。
1バイトは8ビットなので、IPアドレスは4バイトになります。

ループバックアドレスとは,自分自身を示すアドレスのこと。IPv4の場合、一般的には127.0.0.1を使うことが多い。しかし、実際には,127.0.0.0/8の範囲であれば利用可能である。
IPv6では「::1」と表される。

ネットワークスペシャリスト試験の過去問(H25年NW秋午後橘1)では、以下の記述がある。 
次に、N君は,PCとSSL-VPN装置の通信にSSLトンネルを利用するポートフォワード方式を採用した。ポートフォワード方式の場合,PCからSSL-VPN装置に接続したときに認証が行われ,SSL-VPN装置からPCにJavaアプレットがダウンロードされ,SSLトンネルが確立される。
 また, Javaアプレットによって,PCのhostsファイルに,ループバックアドレスと開発システムの各サーバの宛先を対応させた定義が追加される。ループバックアドレスの利用は、社内で使用中のプライベートアドレスを利用するよりも利点があり,127.0.0.1〜[ イ ]の範囲内で利用可能である。

(1)本文中の下線,砲弔い董ぅ襦璽廛丱奪アドレスを用いる利点を,セキュリティ面に着目して, 20字以内で述べよ。

空欄イ:127.255.255.254
ループバックアドレスには,127.0.0.0/8が割り当てられている。この範囲の中で利用可能な最大値は,127.255.255.254。127.255.255.255はブロードキャストアドレスであるため,割り当てはできない。

(1)の設問
ループバックアドレスの利点が問われている。「セキュリティ面に着目して」という指示と,下線,痢屮廛薀ぅ戞璽肇▲疋譽垢鰺用するよりも」を意識して解答する。
ループバックアドレスは、他の端末からアクセスすることはできない。たとえば、隣のPCから127.0.0.1というループバックアドレス宛に通信をしようとすると、自分自身に通信をしてしまう。
一方、PCのプライベートIPアドレスで待ち受けを行うと,他のPCから開発システムにアクセスできる恐れがある。すると、他のPCからのパケットをJavaアプレットがポートフォワードしてしまい、不正に利用される。

解答:外部からの不正利用が発生しない

ICMP(Internet Control Message Protocol)というと耳慣れないが、pingコマンドと聞けば、身近であろう。
ICMPの代表例はpingとtracert(またはtraceroute)である。
※Windowsのコマンドプロンプトではtracert、Ciscoなどのネットワーク機器ではtracerouteがほとんど。
では早速、pingを打ってみよう。

ping
・環境を変えてpingを打ってみると、色々なメッセージがでるので試してみましょう。
例えば、以下の構成があります。
ネットワークスペシャリスト_ping
■Case1
PCから、192.168.2.0/24の存在しないIPアドレスにPingを打ってみましょう。
ping 192.168.2.100
timeout
このように、「タイムアウト」と表示されます。

■Case2
PCから、ルータが知らないネットワークにpingを打ちましょう。
unreach
今度は「宛先ホストに到達できません」と出ます。しかも、そのメッセージを返しているのは、192.168.1.254なので、Ciscoルータです。
guts
何となくわかりました。
Case1の場合は、pingを送っても、相手からの応答がないので、PCが「タイムアウト」というメッセージを出しているんですね。
Case2の場合は、デフォルトGWであるルータまで届くのですが、ルータからは宛先が無いので、「到達できません」というメッセージを返しています。
その通りです。メッセージの中身を理解しておくと、実践での切り分けにも役立ちますよ!

過去問では、ICMPに関して「TCP/IP環境において、pingによってホストの接続確認をするときに使用されるプロトコル(H20NW午前 問31)」、「送信元ホストへのIPパケットの送信エラー報告などの制御メッセージを通知する。(H19NW午前 問24)」「ネットワーク機器の接続状態を調べるためのコマンドpingが用いるプロトコル(H18NW午前 問28)」と述べている。

過去問
■H19秋NW午前
問24 TCP/IPのネットワークにおけるICMPの説明として,適切なものはどれか。
ア MACアドレスだけが分かっているときにIPアドレスの解決を可能にする。
イ グローバルIPアドレスとプライベートIPアドレスを相互に変換する。
ウ 送信元ホストへのIPパケットの送信エラー報告などの制御メッセージを通知する。
エ ネットワーク内のIPアドレスを一元管理し,クライアントに動的に割り当てる。

正解はウ
アはRARP、イはNAT、ウがICMP、エはDHCP

■H20秋NW午前
問31 TCP/IP環境において,  pingによってホストの接続確認をするときに使用されるプロトコルはどれか。
ア CHAP
イ ICMP
ウ SMTP
工 SNMP

正解はイのICMP

■H26春FE午前
問34 IPネットワークにおいて,ICMPのエコー要求,エコー応答,到達不能メッセージなどによって,通信相手との接続性を確認するコマンドはどれか。
ア arp
イ echo
ウ ipconfig
工 ping

正解:エ

フレームフォーマット
・IPヘッダはIPパケットなので他と共通である。
・プロトコル番号は1である。参考までにUDPは17
・タイプ(type):メッセージの種類。たとえばpingの要求(echo)は8で、pingの応答パケット(echo reply)は0
・コード(code):コードは詳細情報を表す。たとえば、type3は宛先到達不能(destination host unreachable)であるが、その原因はいくつかある。宛先コンピュータが問題ならcode1、UDPのポートが問題なら3(※TCPはTCPの別パケットが返される)、DFビットがセットされている場合は4など。
2

ICMPのフレームフォーマット詳細解説
※Type(8)のEcho Requestの場合
(1)ヘッダ
Type(1)
Code(1)
チェックサム(2)
ぜ永婿(2)
ゥ掘璽吋鵐紅峭(2)
Ε如璽拭焚鎚僉

(2)Typeの例
0 Echo Reply :pingコマンドの応答パケット
icmp2
3 Destination Unreachable
 ※前の記事の、ルータが知らないセグメントにpingを打った場合に、ルータがこのメッセージを返した。
icmp
4 Source Quench
5 Redirect :ICMPリダイレクト
8 Echo Request :pingコマンドを実行した場合
icmp3
11 Time Exceeded: 定められた生存時間(TTL:Time To Live)を超えた(Exceeded)とうことで、パケットを破棄したことを通知するメッセージ。tracerouteは、この仕組みを利用している。
icmp

実際のキャプチャ例
Etherealでキャプチャーした。
皆さんも、ぜひご自分でやっていただきたい。

以下の赤線部分のみ見てもらえばいい。
1.Ethernet ・・・ イーサネットヘッダ
(1)宛先MACアドレス ・・・ 00:0d:02:xx:xx:xx
(2)送信元MACアドレス ・・・ 00:19:d2:xx:xx:xx
(3)タイプ ・・・ IP (ここから次はIPフレームであることを示している)
2.Internet Protocol ・・・ IPヘッダ
(1)プロトコル ・・・ ICMP
(2)送信元IPアドレス ・・・ 192.168.1.111
(3)宛先IPアドレス ・・・ 192.168.1.1

※パケット長の前にTOS(Type Of Service)フィールドがあり、パケットの優先順位をつけることができる。しかしあまり使われていない。
ICMPのパケット

Type
Summary of Message Types
    0  Echo Reply
    3  Destination Unreachable
    4  Source Quench
    5  Redirect
    8  Echo
   11  Time Exceeded
   12  Parameter Problem
   13  Timestamp
   14  Timestamp Reply
   15  Information Request
   16  Information Reply
  
  ※ http://tools.ietf.org/html/rfc792 より
 
Code
Codeは、Typeの内容の詳細である。
 例えば、Destination Unreachable(Type=3)のとき、Codeの例は以下です。なぜUnreachableなのかの詳細が分かります。
      0 = net unreachable
      1 = host unreachable
      2 = protocol unreachable
      3 = port unreachable
      4 = fragmentation needed and DF set
      5 = source route failed.
    ※ http://tools.ietf.org/html/rfc792 より

ルーティングにおいて、より適切なルータがある場合にそれを伝えるICMP(Type5)のメッセージ。このICMPパケットの中で、Gatewaya Addressという情報があり、より適切なGateway(ルータ)情報を送る。私は昔、ICMPリダイレクトはICMPパケットだけだと勘違いしていましたが、そうではなかったです。

以下の構成図で考えます。
PCのデフォルトゲーウェイは 192.168.1.254のIPアドレスを持つ R1(下図 砲任后 PCが 172.16.1.0/24のネットワークに通信する場合 のネットワークに通信する場合,まずはデフォルトゲーウェイであるR1にパケットを送ります(下図◆法 R1はそのパケットを R2に転送(下図)し ,172.16.1.0/24のネットワークにパケットが届きます(下図ぁ法
そこで,もっといい経路があることを伝えるのがICMPリダイレクトです。
ICMPリダイレクト

過去問を見てみましょう。
■H29秋NW午前2
問7 IPv4におけるICMPのメッセージに関する説明として,適切なものはどれか。
ア 送信元が設定したソースルーティングが失敗した場合は,  Echo Reply を返す。
イ 転送されてきたデータグラムを受信したルータが,そのネットワークの最適なルータを送信元に通知して経路の変更を要請するには,  Redirectを使用する。
ウ フラグメントの再組立て中にタイムアウトが発生した場合は,データグラムを破棄してParameter Problem を返す。
エ ルータでメッセージを転送する際に,受信側のバッファがあふれた場合はTimeExceededを送り,送信ホストに送信を抑制することを促す。

ア:Echo Replyは、正常に応答した場合のメッセージです。
イ:正解選択肢です。
ウ:タイムアウトが発生しているので、時間が超過したことを意味するTime Exceededを送ります。
エ:送信を抑制するSource Quenchを送ります。

女性目閉じる

traceroute(Windowsではtracert)は、ターゲットIPへの通信経路がわかる便利な機能であるが、どんな仕組みになっているのですか?
tracerouteはICMPパケットを利用しています。
以下の構成で説明します。

【PC1】        【ルータA】     【ルータB】     【ルータC】     【PC2】
10.1.1.10 → 10.1.1.1  → 1.1.1.2  → 2.1.1.1   →  3.1.1.10
             1.1.1.1      2.1.1.1     3.1.1.1

PC1(10.1.1.10)からPC2(3.1.1.10)へPingを打ちます。

Reply from 3.1.1.10: bytes=32 time<10ms TTL=128
このように、OKが返ってくるとします。

今度はtracerouteをします。
ICMPパケットのTTL(Time To Live:生存時間)を1に設定します。
▲襦璽A(10.1.1.1)に届きます。
TTL(生存時間)が1のパケットは、ルータAに届いたことでTTLは0になり、破棄されます。破棄されたことを通知するために、ルータAはtime exceeded(生存時間を超過した)というメッセージを返します。
PC1はtime exceededが返ってきた送信元IPアドレスを見て、最初のルータはルータA(10.1.1.1)であることがわかります。
イ海瞭虻遒魴り返します。次はTTLを2に設定し、同じ処理をします。
ζ瑛佑法time exceededが返ってきた送信元IPアドレスを見て、次のルータはルータB(1.1.1.2)であることがわかります。
sef4

PingがNGになるものでも、途中までは経路がわかる。
あれも不思議ですが。
PingがNGになる場合、最終的な宛先に届かなくても、途中の経路までは届く場合があります。たとえば、最終的な宛先のFirewallで拒否されている場合や、最終的な宛先の直前のルーティングが間違っている場合などです。
tracerouteの仕組みを説明したように、最終的な宛先に関係なく、順次TTLを増やしていくので、PingがNGでも途中までの経路がわかる場合があるんのです。

コラムということは、試験には出ないと考えております。

TTLは装置ごとに違う。たとえば、WindowsXPパソコンからpingを打つとLinuxサーバは64、Ciscoルータは255から始まる。
ちなみに、Windowsパソコンは128から始まるので、ICMPのEcho RequestのTTLは128、Echo Replyは64と異なる値になる。


スポンサードリンク

このページのトップヘ