ネットワーク層の仕事(ルーティング)

ルーティング

ネットワーク層でIPとともに重要な技術がルーティングです。ネットワーク上でデータを送受信する時に、そのデータが正しく相手に届くように経路の選択を行う必要があります。この仕組みをルーティングといいます。

ルーティングの動作

障害時のルーティング動作

ネットワーク上のIPアドレスは一意に割り当てられていますので、IPアドレスをもとにネットワーク上のどこかにあるノードまでの経路を探します。

ルータ

ルーティングを行う上で欠かすことができない装置が「ルータ」です。ルータは「ネットワークでデータを送受信する時に、そのデータが正しく相手に届くように経路の選択を行う」作業をする装置です。

TCP/IPで通信を行う際の基本的な単位は「IPパケット」と呼ばれる集合体です。1つのIPパケットには、そのパケットをネットワークに送り出した送信元のIPアドレスと宛先のIPアドレス、そして実際のデータが含まれています。

ルータの動作

ルータは複数のネットワークインタフェースを持っていて、そのインタフェースそれぞれにIPアドレスを割り振る必要があります。インタフェースは2つではなく、もっとたくさんのインタフェースを持っているルータもあります。

ルータはIPパケットの送信元のIPアドレスと宛先のIPアドレスを参照して、どこにパケットを届ければ良いのかを判断しています。ルータにもコンピュータと同じようにIPアドレスを割り当てる必要があります。ネットワークは、ルータを複数経由することで大きなネットワークとして動いています。

ルーティングの動作

実際のルーティングの動作について見ていきましょう。

ルータの動作

192.168.1.0/24のネットワークから172.16.1.0/24への通信があった場合、172.16.1.0/24宛のパケットがルータのインターフェースで受け取られると、受け取ったルータはまず目的地のIPアドレスをチェックします。

ルータは受け取ったIPアドレスを「どのインタフェースから」、「どこへ送信しなければいけないのか」を決めなければいけません。
ルータは自身に経路情報(ルーティングテーブル)を持っていて、この経路情報(ルーティングテーブル)を参照して宛先を決めます。自身のIPアドレスではない場合(目的地が自ルータではない場合)、自身の経路情報(ルーティングテーブル)に目的地のIPアドレスがあるかどうかチェックします。経路情報にIPアドレスがあった場合、該当する宛先デバイスへパケットを送信します。もし経路情報に該当のエントリを見つけることが出来なかった場合、ルータはそのパケットをDrop(破棄)します。もし宛先が自身と同じネットワークだった場合は、ルータを経由するわけではなく、直接相手にパケットを送ります。

以上がルーティングの基本動作になります。

目的地までにルータを複数超えて行く場合は、中継するすべてのルータでルーティングをしていきます。すべてのルータで目的地のネットワークに対する経路情報を知っていなければ目的地に辿り着くことができません。

ルーティングテーブル

ルータは受信したパケットの宛先をチェックして、適切なあて先に送り出す動作をします。この「パケットの宛先をチェックする」情報を「ルーティングテーブル」といいます。

ルータの動作

ルーティングテーブルにはあて先のノードが属するネットワークに辿り着くために必要な情報が記載されています。ルーティングテーブルは最低限下記の2つの情報を持っていればルーティングが可能です。

  • 宛先ネットワークアドレス
    宛先のネットワークアドレスとそのサブネットマスクがセットされます。
  • ネクストホップ
    宛先のネットワークを転送すべきルータのIPアドレスがセットされます。

ルータは「ネクストホップとなる次のルータにパケットを投げてしまえば、後は次のルータが何とかしてくれる」という考え方に基づいていて、その後のルーティングに関してはまったく関与しません。

ただし、通常ルーティングテーブルには先ほど説明した2つの情報以外にも以下のような情報があります。   * インタフェース
パケットを送出する出口のインタフェースがセットされます。パケットを送り出すときにどこのインタフェースから送ればよいかを定義しています。
* メトリック
同一の宛先ネットワークに複数の経路情報がある場合どの経路を優先するか、その優先する順番を決定するための値がセットされます。宛先への経路が複数あった場合、どこに送れば一番近い経路なのかを判断するために使用します。

ルーティングテーブルを見てみる

実際にルータのルーティングテーブルを見てみましょう。ルータは企業向けルータではもっともポピュラーなCiscoルータを使用して確認してみます。Ciscoルータでルーティングテーブルを確認するコマンドは「show ip route」で確認できます。

router#sh ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default
U - per-user static route, o - ODR

Gateway of last resort is not set

R 192.168.20.1 [120/10] via 192.168.1.252, 02:25:50, Serial1/0
C 192.168.1.1 is directly connected, Ethernet0/1
C 192.168.2.1 is directly connected, Ethernet0/2
C 192.168.3.1 is directly connected, Ethernet0/0
S* 0.0.0.0/0 [1/0] via 192.168.2.252

デフォルトゲートウェイ

デフォルトゲートウェイとは、ルーティングテーブルの中でどのエントリにも当てはまらなかったパケットが来た場合に使用されるエントリです。通常パケットを宛先に送信する場合に、ルーティングテーブルを見て宛先ネットワークを探します。その時にもし宛先ネットワークが見つからなかった場合、このデフォルトゲートウェイに設定されているゲートウェイアドレスへパケットを送信します。

先ほどのCiscoルータのルーティングテーブルをもう一度見てみると、「0.0.0.0/0」というエントリがあります。このエントリがデフォルトゲートウェイで、ゲートウェイアドレスは192.168.2.252となっています。特に設定されていないネットワークについては、すべてデフォルトゲートウェ
イ、つまり192.168.2.252へパケットは送られることになります。

デフォルトゲートウェイ

静的ルーティングと動的ルーティング

ルーティングには大きく「静的ルーティング(スタティックルーティング)」と「動的ルーティング(ダイナミックルーティング)」の2種類があります。

スタティックルーティング

ネットワーク管理者が手作業でルーティングテーブルを設定する方法を「スタティックルーティング」といいます。

スタティックルーティング

上図構成でPC-A,PC-B,PC-Cそれぞれが通信出来るようにしたい場合、各ルータに以下のように手動でルーティングテーブルを設定します。

スタティックルーティング

スタティックルーティング

スタティックルーティング

スタティックルーティングは管理者の思い通りにルーティングを設定できるのですが、ルータの台数が多くなると設定作業が非常に大変です。さらにネットワークを冗長構成で設計する場合、どの経路を優先させるのかをすべてのルータで設計する必要があるため、設計ミス等が発生するリスクがあります。その場合は次に説明するダイナミックルーティングを使用します。

ダイナミックルーティング

ダイナミックルーティングはルータが動的にルーティングテーブルを更新する方法をいいます。ダイナミックルーティングはルーティングプロトコルと呼ばれるプロトコルを使用し、ルーティングテーブルをルータ間で交換することで、ルーティングテーブルを更新していきます。
適切な経路を決めるためにルーター同士が自身が知っているネットワーク情報を交換し合います。この情報のやり取りにルーティングプロトコルが使われます。

ダイナミックルーティング

ダイナミックルーティング

代表的なルーティングプロトコルには以下のようなものがあります。

  • RIP(Routing Information Protocol)
  • OSPF(Open Shortest Path First)
  • BGP(Border Gateway Protocol)

ルーティングプロトコルは大きく「IGP(Interior Gateway Protocol)」「EGP(Exterior Gateway Protocol)」の2種類に分類できます。

IGPとEGP

IGPはAS(Autonomous System)内で使用するルーティングプロトコルで、EGPはAS間で使用するルーティングプロトコルです。IGPはRIPやOSPFを使用し、EGPはBGPが使われます。
ASとはいくつかのネットワークを「自律システム(AS:Autonomous System)」という1つのポリシーに基づいて管理されているネットワークの集まりごとに分類することで、ネットワークが大規模になっても効率良くルーティングできるようにしています。

RIP

RIPはディスタンスベクタ型のルーティングプロトコルです。ディスタンスベクタ型とは、距離(Distance)と方向(Vector)に着目した方式のことをディスタンスベクタ型といいます。RIPの動作はシンプルであて先までのホップ数(経由するルータの数)が少ない経路を選択します。

RIP

ディスタンスベクタ型は、各ルータ自身が知っているルーティングテーブルを丸ごと、定期的に隣接するルータに送信します。この時に、送信する情報の中には、メトリック(そのネットワークに到達するための距離)についての情報も含まれています。

受け取ったルータは、中身のルーティングテーブルを確認し、自分が知らないネットワークがあった場合自分が知っているネットワークでも、メトリック(距離)が短い場合の時に限り、自分のルーティングテーブルに追加します。

この動作をすべてのルータ間で行うことによって、最終的には全てのルータが同じルーティングテーブルを持つことになります。ネットワーク内のルータが、ルーティング情報のやり取りを終了した状態のことを、「収束(コンバージェンス)」といいます。

OSPF

OSPFはリンクステート型のルーティングプロトコルです。ディスタンスベクタ型は動作がシンプルですが、ネットワークが大規模になればなるほど収束が遅い点など、大規模ネットワークには適しません。リンクステート型はディスタンスベクタ型の欠点を補うために開発され、拡張性や高速な収束が可能になりました。

リンクステート型は各ルータ間でリンク状態や帯域情報、IPアドレス、ネットワーク情報などを交換し合って、ネットワーク全体の状態をマップとして認識し、そこから最適な経路を選択します。このマップをLSDB(リンクステートデータベース)といいます。RIPは定期的にルーティング情報を交換し合いますが、OSPFはネットワークに変更があったときのみアップデートを行い、通常時はHelloパケットと呼ばれる小さなパケットを送り合ってお互いの状態を確認しています。

OSPF

OSPFでの障害時の動作

最近のIGPで使用されるルーティングプロトコルといえば、ほぼOSPFが使用されています。RIPはホップ数が少ない経路を選択しますが、OSPFはコストを使用してコストが少ない経路を選択します。コストは、帯域幅が大きいほど小さくなります。コストの計算には次の公式が使用されます。

コスト = 100,000,000 / 帯域幅(bps)

たとえば、10Mイーサネット回線を経由する場合のコストは「108/107 = 10」となり、100Mイーサネット回線を経由する場合のコストは 108/108 = 1」となります。コストはルータを超えるごとに各インタフェースで加算されていきます。もし複数経路が同じコストだった場合は、複数の経路を使って負荷分散します。

OSPFでの経路選択

OSPFを大規模なネットワークで使用した場合、LSDBも大きくなり大量のメモリを消費してしまいます。この問題を回避するために「エリア」という機能があります。ネットワークを複数のエリアに分けて、エリア内でLSDBを分けることでメモリ消費量を減らすことができます。

OSPFのエリア

BGP

BGPはパスベクタ型のルーティングプロトコルでEGPで利用されます。実際のネットワークでも、EGPで使用するルーティングプロトコルはBGP一択です。インターネットも世界中のASをBGPで接続しています。基本的にBGPだけ押さえておけば問題ありません。
BGPは目的のネットワークに到達するために経由するAS情報を経路情報として交換し、途中にどのASを通過するか(ASパス)といった情報をもとにルーティングテーブルが作成されます。

BGP

ASはIPアドレスとは別に、2バイトまたは4バイトの数字で、グローバルAS番号とプライベートAS番号の2種類があります。グローバルAS番号はグローバルIPアドレスと同じように、世界中で一意の番号になるように管理されています。インターネット上で使用するAS番号はグローバルAS番号でなければいけません。プライベートAS番号はプライベートIPアドレスと同様に、組織内で閉じて外部い接続しないネットワークで使用することができます。

BGPも他のルーティングプロトコルと同様に経路情報を交換して、BGPテーブルを作成します。BGPテーブルから一定のルールに従って最適経路を選択します。このルールのことを「ベストパス選択アルゴリズム」といいます。BGPもOSPFと同様に変更があったときのみ更新を行い、通常時はKeepaliveメッセージを双方で交換し合い、お互いの状態を確認します。

BGPはインターネットで使用されているルーティングプロトコルで、地球規模のネットワークを制御しているため、さまざまな状況に柔軟に対応出来るようにベストパス(最適経路)選択を、細かく制御することが可能です。BGPの経路制御はアトリビュート(属性)と呼ばれる情報をルータ間でやり取りして行います。ベストパスを決定する為のプロセスは以下の表の順番で比較されていきます。

BGPのベストパス選択

現在のネットワーク環境で使用されるルーティングプロトコルは、IGPではOSPFが、EGPではBGPが使用されるのが一般的です。RIPも最近の環境では使われなくなってきました。ルーティングプロトコルはその他にも様々ありますが、OSPFとBGPは最低限押さえておきましょう。

IPアドレスを自動的に割り振るDHCP

ネットワーク上に存在しているノードは全てIPアドレスが割り振られています。ネットワーク管理者が全てのノードに対して、IPアドレスを手動で設定している場合、管理者がIPアドレス管理表を管理しているのが普通だと思います。ただし各ノードに手動でIPアドレスを設定する方法は、ネットワークが大きくなればなるほど管理者の負担も大きくなってしまいます。

そこでIPアドレスやデフォルトゲートウエイなどを自動で割り当てるプロトコル「DHCP(Dynamic Host Configuration Protocol)」が標準化されました。DHCPを使えば、例えばパソコンを立ち上げるだけで、使用者が気にかけることなく、IPアドレスが自動で割り当てられます。

DHCP

DHCPの動作

DHCPを使ったIPアドレスを割り振る時の動作は、IPアドレスを要求するノードとIPアドレスを払い出すDHCPサーバー間で以下のやり取りを行います。

  1. クライアントがIPアドレスの割り当て要求のための「DHCP Discoverメッセージ」をブロードキャスト
  2. DHCP Discoverメッセージを受信したDHCPサーバーが、使用可能なIPアドレスなどの情報を「DHCP Offerメッセージ」で返信
  3. DHCP Offerメッセージを受信したクライアントは、DHCPサーバーに「DHCP Requestメッセージ」を返信
  4. DHCP Reauestを受信したDHCPサーバーは「DHCP Ackメッセージ」を返信
  5. DHCP Ackを受信したクライアントは、DHCP Offerメッセージで受け取ったIPアドレスなどの情報を自身のIPアドレスとして設定
  6. DHCPを使ってIPアドレスにはリース期間が設定されていて、リース期間が経過したら「DHCP Releaseメッセージ」を送信した、IPアドレスを解放しDHCPサーバーに返却

DHCPの動作

DHCPで使われるポート番号

DHCPのメッセージはUDPによってやり取りされます。ポート番号はサーバ側が67番、クライアント側が68番を使用してやり取りされます。

複数のDHCPサーバが存在したら?

もし同じネットワーク上に複数のDHCPサーバが存在したらどうなるんでしょう?DHCPのやり取りはブロードキャストで行われるため、ネットワーク上にいる全てのノードにメッセージが届きます。その結果、複数のDHCPサーバからDHCP OFFERメッセージが返信されてきます。その結果、クライアントはDHCP OFFERメッセージを一番早く受信したサーバに対して、DHCP REQUESTメッセージを送信します。

DHCPリレーエージェント

DHCPはブロードキャストでやり取りを行います。通常ブロードキャストはルータを越えて、別ネットワークへは届きません。しかし、DHCPサーバーを各ネットワークごとに準備するには無理があります。そこで実装された機能が「DHCPリレーエージェント」です。

DHCPリレーエージェント機能を有効にしているノードにDHCPメッセージが届くと、事前に登録しておいたDHCPサーバへメッセージを転送してくれます。

DHCPリレーエージェント

DHCPリレーエージェントが動作しているノードを新たに用意しても良いのですが、ルータにDHCPリレーエージェント機能が実装されているものもあります。

ルータでDHCPリレーエージェント

ルータにDHCPリレーエージェントを兼務させれば、新たにノードを準備することもないので効率的です。

トラブルシューティング時の必須コマンド「ICMP」

ネットワークの通信確認では、Pingコマンドがよく使われます。Pingはプロトコルの名前では無くプログラムの名称で、Pingコマンドを実行すると、裏ではICMP( Internet Control Message Protocol)というプロトコルが動作しています。Pingコマンドを実行すると、送信元のノードから宛先のノードに向かって接続を確認するためのICMPパケットが送信されます。そのパケットが宛先に届いて、宛先のノードは送信元のノードへパケットを送り返します。こうすることで、両ノード間での接続性を確認することができます。

ICMP

ICMP( Internet Control Message Protocol)は用途によっていくつかのタイプに分けられています。以下が主要なICMPのタイプ一覧です。

ICMPのタイプ一覧

Pingで使用するタイプは?

ICMPはIPと同じネットワーク層で動作するプロトコルで、RFC792で定義されています。IPは基本的にデータ伝送の機能しか持っていません。ICMPはIPの機能追加をするために提案されたプロトコルで、その各機能を「タイプ」として定義しています。Pingではこの中で以下の2つのタイプを使用しています。

  • タイプ0:エコー応答(Echo Reply)
  • タイプ8:エコー要求(Echo Request)

送信元が、タイプ8(エコー要求(Echo Request) )パケットで宛先にICMPを送り、宛先ノードはタイプ0(エコー応答(Echo Reply) )パケットで送信元に送り返します。

ICMPのエコー要求とエコー応答

Pingを実行してみよう

実際にPingを実行してみましょう。

下の結果はWWindowsのコマンドプロンプトから実際にPingを実行した結果です。

C:\>ping 10.0.2.2

10.0.2.2 に ping を送信しています 32 バイトのデータ:
10.0.2.2 からの応答: バイト数 =32 時間 <1ms TTL=127
10.0.2.2 からの応答: バイト数 =32 時間 =3ms TTL=127
10.0.2.2 からの応答: バイト数 =32 時間 =3ms TTL=127
10.0.2.2 からの応答: バイト数 =32 時間 <1ms TTL=127

10.0.2.2 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 3ms、平均 = 1ms

上記結果では、「10.0.2.2」に対してPingを実行した時の結果です。結果には表示されていませんが、宛先に対して「タイプ8(エコー要求(Echo Request) )パケット」を送信しています。そして宛先ノードは「タイプ0(エコー応答(Echo Reply) )パケット」を返してきています。

Pingの実行結果

Pingの出力画面に表示されている情報について簡単に見ていきましょう。

「10.0.2.2 に ping を送信しています 32 バイトのデータ:」

この行では、「10.0.2.2」というアドレスに対して32バイトのデータを送信したことを表しています。この32バイトのデータ長はWindowsでPingを実行したときのデフォルトの値です。Ethernetのフレームのデータ長は、46~1500バイトと決められています。データ長が32バイトでパケットを送ってしまうと、規定の範囲外のデータ長であるため破棄されてしまいます。そのため、実際に送信されるICMPパケットは、32バイトではなく、データを付け足すことでデータ長を 46 バイトにして送り出されます。この付け足されたデータのことを、「パディングデータ」といいます。

「10.0.2.2 からの応答: バイト数 =32 時間 <1ms TTL=127」

宛先からタイプ0(エコー応答(Echo Reply) )パケットが送られてきたことを表しています。Windowsのデフォルト設定では、Pingコマンドを実行すると宛先に対して4回、エコー要求(Echo Request)パケットを送信します。そのため返してくる、エコー応答(Echo Reply) パケットも4回になります。このことはさらに下の行にある、「パケット数: 送信 = 4、受信 = 4」という表示からも分かります。この行の「時間 <1ms」という部分で、Pingを実行してから相手から応答パケットが返ってきた時間を表しています。この場合、相手から1ms以内でパケットが返ってきていることが分かります。通常同じネットワーク内にPingを実行すれば、10ms以内に収まると思います。例えばこれが複数のルータを経由した宛先にPingを実行した場合は、相手から返ってくる応答パケットも遅くなります。以下は「Google.com」へPingを実行したときの表示例です。

C:\>ping google.com

216.58.196.238 に ping を送信しています 32 バイトのデータ:
216.58.196.238 からの応答: バイト数 =32 時間 =30ms TTL=114
216.58.196.238 からの応答: バイト数 =32 時間 =30ms TTL=114
216.58.196.238 からの応答: バイト数 =32 時間 =30ms TTL=114
216.58.196.238 からの応答: バイト数 =32 時間 =30ms TTL=114

10.0.2.2 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 30ms、最大 = 30ms、平均 = 30ms

ルータをいくつも経由することで、ルータの処理の問題や距離的に離れていることで遅延が発生し、応答時間も長くなります。「TTL=114」は、返ってきた応答パケットのTTL(Time To Live)の値を表示しています。TTL(Time To Live)はパケットがルータを経由する度に、1づつ減っていきます。そしてTTL(Time To Live)が0になるとそのパケットは破棄されます。例えば以下のようなメッセージが表示された場合、

ping google.com

google.com [216.58.196.238]に ping を送信しています 32 バイトのデータ:
10.0.2.2 からの応答: 転送中に TTL が期限切れになりました。
10.0.2.2 からの応答: 転送中に TTL が期限切れになりました。
10.0.2.2 からの応答: 転送中に TTL が期限切れになりました。
10.0.2.2 からの応答: 転送中に TTL が期限切れになりました。

216.58.196.238 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、

Pingの実行結果に、「転送中に TTL が期限切れになりました。」と表示されています。TTLはルータを経由する度に1づつ減らしていき、TTLが0になるとそのパケットが破棄されます。パケットが破棄される際に、ICMPタイプ11「時間超過(TTL expired)」メッセージを送信元へ送信します。今回のPing結果は、途中のルータでTTLが0になり、ICMPタイプ11「時間超過(TTL expired)」メッセージが送信されたことを意味しています。上記のようにICMPがメッセージを返してくれる場合は、そのコードを確認することで何が原因なのかを特定することが可能です。

Pingの動作

トラブルシューティング時には、まずPingを実行

「Webアクセスできなくなった」「社内データベースにアクセスが遅い」などのトラブルが発生した場合、さまざまなトラブルシューティング方法がありますが、まずはPingを実行してみることが多いです。Pingはネットワーク層レベルの正常性を確認出来ますので、Pingが成功した場合はさらに上位層のトランスポート層以降が問題だと分かります。逆にPingが失敗した場合はネットワーク層以下に問題があることが分かります。

Pingを使ったトラブルシューティング

Tracerouteコマンドで経路を調べる

Pingとともにトラブルシューティングで非常によく使われるのがTracerouteコマンドです。Tracerouteはリモートホストへの経路を探すためのコマンドです。TracerouteもPingと同じICMPを使用しています。

  • 宛先までの経路が想定通りの経路を通っているのか?
  • 宛先まで通信できない場合に、経路のどこに問題があるのか?
  • 宛先までの通信が遅い場合に、経路のどの区間がボトルネックのか?

といった問題を解決する場合に大変役に立つコマンドです。WindowsとMACそれぞれのコマンドは以下の通りです。

  • Windows
    tracert [リモートホスト名(IPアドレス)]

  • MAC
    traceroute [リモートホスト名(IPアドレス)]

実行例では、ホストから海外のサイトに対してTracerouteを実行した結果で、経由したルータのIPアドレスが順に表示されています。Tracerouteの動作は、ICMPのエコーパケットにTTLを1から順に増やしながら送信していくことで、リモートホストへの経路を探していきます。

Pingを使ったトラブルシューティング

なぜ1から順に増やしていくのか?

TTLはルータを経由するごとに、1づつ減少していきます。そしてTTLが0になると、「ICMP Time Exceeded」メッセージを送り返します。Tracerouteはこの機能を利用します。つまり、TTLを1づつ増やしていくことで、1ホップづつ経由するルータから「ICMP Time Exceeded」が送り返されることでIPアドレスを調べていきます。Tracerouteコマンドは1つのTTLごとに、3回のエコーパケットを送信し、応答までの往復にかかった時間を出力していきます。これで、経路のどこの部分がボトルネックになっているのかを調べることができます。応答までの時間がデフォルトで4秒を超えてしまうと、タイムアウトとなり、その場合は出力結果が「*」と表示されます。

ネットワーク層のトラブル

ネットワークエンジニアにとって、ネットワーク層のトラブルは避けては通れません。ここでは特に注意すべきポイントをご紹介します。

デフォルト設定が推奨設定とは限らない

ネットワーク機器を構築する場合、デフォルト設定が推奨設定だと思っていたら考えを改めたほうが良いかもしれません。特に隣接する機器とやり取りするような機能には注意が必要です。重要な機能については、マニュアルをしっかりと確認することがトラブル防止に繋がります。異なるベンダーの機器同士を接続する場合は、ルータ間でデフォルト設定が違っていないかどうかを事前に調べておきましょう。気をつけたいポイントをいくつか紹介しておきます。

ネットワーク設計する際にポイントとなる機能を事前に把握しておく

ネットワークで使用するポイントとなる機能は必ずマニュアルを確認して、パラメータ値などを確認しておきましょう。例えばOSPFを動作させる場合、各タイマーのデフォルト値や複数経路で同じコスト値となった場合の動作などを調べておきましょう。稼働しているネットワーク機器に追加や変更を行う場合は、デフォルト値だけでなく既存機器の設定値も考慮したうえで設定を変更すべきかどうかの判断します。

機器のOSバージョンごとに変更となる値を把握しておく

ネットワーク機器のOSを変更する場合、OSのバージョンが異なると有効になっている機能や設定パラメータ値が変更になっている場合があります。OSを変更する場合は変更点をリリースノートなどで確認しておきましょう。

2進数と10進数の変換

IPアドレスを語る上で避けることの出来ないものが、2進数と10進数の変換です。

10進数表記のIPアドレスは2進数に変換するといくつなのか?逆に2進数表記を10進数表記にするといくつになるのか?ネットワークエンジニアは、この変換方法はしっかりと覚えておかなければいけません。各種の資格試験に出題されるのはもちろんのこと、実際の業務でも必ず使います。

WindowsやMACに標準でインストールされている電卓でも2進数と10進数の変換は可能ですが、いざという時のために変換の方法は知っておいた方が良いでしょう。

10進数から2進数への変換

それではまずは10進数を2進数に変換する方法から見ていきましょう。
10進数を2進数に変換するもっとも簡単な方法は、「変換したい10進数を商が0になるまで2で割続ける」です。

例題)45を2進数に変換してみよう。

45 ÷ 2 = 22 余り 1
22 ÷ 2 = 11 余り 0
11 ÷ 2 = 5  余り 1
5 ÷ 2 = 2  余り 1
2 ÷ 2 = 1  余り 0
1 ÷ 2 = 0  余り 1

以上の計算で出された余りを下から並べた値が2進数になります。
例題の場合、10進数表記「45」の2進数表記は「101101」となります。

2進数から10進数への変換

2進数を10進数に変換するもっとも簡単な方法は、「2進数の各桁の重みを掛けたものを合計する」方法です。

各桁の重みとはどういうものかというと、

10進数の45は

4 × 101 + 5 × 100 = 45

という計算式になります。
同じように2進数「00101101」で考えた場合、

1×25 + 0×24 + 1×23 + 1×22 + 0×21 + 1×20 = 45

となります。

関連記事