【ルーティング①】ルーティングとは?超基本から解説

routing-part1

本サイトはPRが含まれています。

L2スイッチの設定とかはある程度できるのだけど、ルータやL3スイッチって全然分からないなぁ~そもそもルーティングってどう考えれば良いの?

チャーチルさん

ポン先生

ルーティングはネットワークの根幹の部分だね。機器の設定ではなくそもそもの仕組みからちゃんと理解しよう!

限定的な環境を除きルーティングが不要なネットワークというのは殆ど存在しません。右から左に転送しているだけと思いきやルーティングは奥が深く非常に難しい技術です。そのため中々取っ付き難いと感じる事もあると思います。そもそもルーティングって何?そんなレベルから解説するので基本から少しずつ勉強していきましょう。

同セグ通信と別セグ通信

この章の項目
  • 同セグであれば通信は簡単
  • 同セグ通信のリスク
  • 分割して別セグ通信にする

一口にネットワークと言っても、各デバイスが各々自由に通信できる訳ではありません。物理的な場所やネットワーク機器の設定によってある大きさの枠に分割されています。この枠のことをネットワークセグメント(以下セグメント)と言います。

同セグ通信別セグ通信かによって動作や必要な設定は変わります。ここでは各パターンの違いを見ていきましょう。

同セグであれば通信は簡単

同セグ通信とは同じセグメント内の通信のことです。同セグなのでお互いに直接見えている状態です。そのため通信する時は非常にシンプルで直接データを送り合うだけなので簡単です。

同セグ通信

この状態であればネットワーク機器としてもL3デバイス(ルータやL3スイッチなど)は不要でシンプルな構成で済みます。

同セグ通信のリスク

全デバイスを1セグメントに押し込めば楽だと思うかもしれませんが、そう簡単な話ではありません。1セグメントだけでやろうとすると様々なリスクがあります。極端に言えばインターネットを含む世界中の全てのデバイスが同セグで繋がれば通信としては楽ですが実際はそうなっていないのです。

同セグ通信のリスク
  • 障害発生時に全体へ影響が波及する
  • 通信を制御できない
  • セキュリティリスクがある

障害発生時に全体へ影響が波及する

例えばネットワークループが一例になります。ループとはケーブルの接続ミスによって送信したパケットがまた戻ってきてまた送信して・・・という事を永遠に繰り返す状態です。ループが発生するとスイッチが正常に機能しなくなり通信できなくなってしまいます。

ループの影響はセグメント全体へ広がります。そのため1セグメントしかないと、全デバイスが影響を受ける事になるため好ましくありません。

通信を制御できない

会社内のネットワークでは場合によってはアクセス制御をかける必要があります。例えば人事情報のサーバは他部署のメンバーにアクセスさせないと言った内容です。一般的にネットワークレベルでのアクセス制御はルータ等のL3ネットワーク機器で制御します。

同セグ通信の場合、L2の通信になるためL3ネットワーク機器を通過しません。つまりアクセス制御をかける事ができないので柔軟性に欠けるデザインです。

通信を制御できない

セキュリティリスクがある

全てのデバイスが同セグにあるという事自体がセキュリティ上のリスクになり得ます。例えばARPスプーフィングがその一例です。
ARPスプーフィングとはARP要求に対して不正攻撃者がARP応答を送信することで、あたかも本当の通信相手としてなりすます手法です。ARPスプーフィングが成功すると不正攻撃者に対してデータ送信する事になるため傍受されてしまいます。

ARPスプーフィング

『全デバイスが同セグにある=1セグメントのデバイス数が多い=ARPスプーフィングの被害に合うデバイス数が多い』となります。そもそも不正攻撃者の侵入を許すなというのは前提としてありますが、もし侵入された場合の被害を最小限に抑える意味でも1セグメントのみというのは好ましくないですね。

分割して別セグ通信にする

このようなリスクを回避するという意味でも複数のセグメントに分割して設計することが一般的です。また、リスク以外の観点で見ても、用途毎にセグメントを分けた方が設計や運用分かりやすくなります。例えばPC用セグメント/サーバ用セグメントで考えた場合、以下のような違いがあります。

  • PC用セグメント:オフィスのデスクで利用、DHCPが必要
  • サーバ用セグメント:サーバルーム内のみで利用、固定IPなのでDHCPが不要

そのため総合的に見ても、セグメントは分けて通信させた方が管理しやすいでしょう。

ポン先生

あくまで“一般的な観点として”だね。例えば数人レベルの小規模事務所とかであれば1セグメントで設計した方が楽だし、そもそもセグメントを分けるメリットもそこまで感じないかもしれないね。

ルータとルーティング

この章の項目
  • セグメント境界にルータ有り
  • IPはイイカゲンなProtocol?
  • 良いルート悪いルート
  • ルーティングとは

セグメント境界にルータ有り

上記の通り、一般的にはセグメントを分けて設計します。この時セグメントの境界部分にはルータ等L3ネットワーク機器が必要になります。つまり一般的なネットワーク構成においてルータは必要不可欠という事ですね。ルータはセグメント跨ぎの通信の転送を行います。

セグメント境界にルータ有り

ポン先生

分かりやすくルータと言ったけどL3スイッチでもファイアウォールでもOKだよ。要はL3の機能を持ったネットワーク機器という事だね。

IPはイイカゲンなProtocol?

前述の通り通信先が同セグの場合は直接相手にデータを送るだけなので非常に簡単です。一方通信先が別セグの場合、送信元デバイス(例えばPC)は送信先セグメントまでの経路の詳細を知りません。

“詳細”というのは途中どういった経路で行くのか、ルータ等の機器を何台経由するのかと言った情報です。途中の事はよく知らないけどとりあえずPCはルータにデータを送り、『後はよろしく~』な任せ方です

実はこれはPC特有の動作ではなくルータも同じです。ルータも宛先のセグメント情報を見て次の転送先を決めますが、その道中の細かい事は分かっていません。本当に良いかどうかの確認は取れていないがひとまず次のルータに転送する、という事を繰り返しています。

ルータとデータ転送

このような通信の仕組みをIP(Internet Protocol)と言います。IPアドレスのIPです。IP自体は現在の主流な通信プロトコルではありますが、『良さそうな次のルータにパケットを渡す』という動きになります。あくまで良さそうだというだけであって実際の品質は担保していません。
※実際の所、1台のルータが全ての情報を正確に把握しようとすると情報量が膨大になりますし現実的な落とし所としてこのような仕組みに落ち着いたのかもしれませんね。

全部完璧な仕組みになってると思ってたけど、意外とそうでもない部分もあるのね。

チャーチルさん

良いルート悪いルート

因みに何をもって“良い”とするかですが端的に言うと通信が早く安定しているかどうかです。例えば宛先セグメントへのルートが2つあります。この絵だけを見るとBルートの方が良さそうに見えるのではないでしょうか。

良いルート悪いルート

しかし、実はAルートは1000Mbps、Bルートは 1Mbpsだったらどうでしょう?それなら流石にAの方が良いかもしれません。

一方、他のクライアントの通信量を加味すると、Aルートは常に帯域上限近くまで利用されており実際は低速、Bルートは他に誰も利用しておらず専有できる状態かもしれません。

こうなってくるとA,Bどちらが本当に良いのか甲乙つけ難くなります。実際のネットワークの通信速度もこれと同じようなもので、途中にボトルネックがあるかもしれないし、時間帯によって利用状況が違うという事も多々あり、どのルートが高速かは構成図だけでは判断できないケースもあります。このあたりは実際に通信を流してみて判断すれば良いのですがIPの仕組み上そこまでのチェックはしません、という事になっています。

ルーティングとは

話が長くなりましたがルーティングとは、『ネクストホップと出力先インタフェースを決めること』です。

ネクストホップと出力先インタフェースの決定

ネクストホップ

ネクストホップとは転送先ルータのIPアドレスの事です。次に誰にパケットを渡せば良いかという事です。

出力先インタフェース

出力先インタフェースとは簡単に言うとルータのどのポートから送信するかということです。基本的にルータには複数ポートがあるので適切な送信先ポートを選ぶという事です。
※厳密にはインタフェースは物理的なポートの他に論理的なインタフェースの意味も含んでいますがここでは割愛します。

つまりルータにはパケットを受信した時に、(1)次にどのIPのルータに渡せば良いのか、(2)それはどのインタフェースから送れば良いのか、この2点を決めるプロセスがあります。もちろん決めるだけでなく実際にパケットの転送処理もありますが、どのように決めるかのプロセスがルーティングの本質です。具体的にどういったプロセスで決定されるのかを次回以降の記事で勉強して行きましょう。

ネットワークエンジニアを目指すならCCNAを取得しよう!

CCNAとはCisco社のメーカ認定資格です。CCNAの取得はネットワークエンジニアの基本的な知識Cisco製品の理解の証明になります。

特定メーカの資格で役に立つの?実際には他メーカの機種も扱うんじゃないの?

チャーチルさん

ポン先生

確かに業務上Cisco以外の機器を扱うことはあるだろうけど、最初にCiscoを勉強しておくと他の機器も理解しやすくなるんだ。

Ciscoは数あるネットワーク機器メーカの内の1社ですがディファクトスタンダードと言われています。つまり業界標準として位置付けられており、他メーカ機種でもCiscoのコマンドライン等を参考にしている事が多いです。そのため初見の機器でもCiscoと設定方法が似ており、「大体は分かる」なんてケースも多々あります。ネットワークエンジニアとしてはCiscoの学習はむしろ必須と言えるレベルでしょう。

また、Ciscoの資格と言っても独自仕様や製品の話だけでなく、ネットワークの一般的な知識も必要です。Cisco製品と言えベースはネットワークの標準規格に基づいて設計されており、CCNA取得でネットワークの一般的な知識も習得可能です。

上記理由からCCNAは非常におすすめの資格です。ネットワークエンジニアとして本格的に活躍したいのであれば是非チェックすべきでしょう。

【CCNAとは】難しい?勉強は?Cisco資格の登竜門 基本解説

まとめ

ポイント
  • 同セグ通信は簡単だがリスクが多い
  • 普通は別セグに分けて通信する
  • セグメント境界はルータが中継する
  • IPはとりあえず転送するだけの仕組み
  • ”早く通信できそう”な方へ転送する
  • ルーティングとはネクストホップと出力先インタフェースを決めること

ネットワークと言えばルーティングと言っても過言ではないくらい根幹の技術です。ルーティングは小規模・シンプルな環境であればさほど難しく無いので大規模環境、冗長構成であるほど難しくなっていきます。一番大規模・複雑なのはインターネットですがそこまでいかなくても、企業内ネットワークのルーティングはしっかりと理解し、設計構築できるようになりましょう。