ルーティングとNATどちらもネットワーク機器に関連する機能で紛らわしいかも知れません。
この記事は、
- ルーティングとNATの違いを知りたい
こんな方に読んでもらいたいです。
ルーティングとは、NATとは
2つの違いを書く前にそれぞれの意味を整理しておきます。
ルーティングとは
パケットの宛先アドレスを確認します。その宛先アドレスに到達するために次に行くべきネットワークへ送り出す機能です。
NATとは
パケットのアドレスを変更する機能です。送信元アドレスと宛先アドレスのどちらでも変えることができます。NATされた後はルーティングされます。
主なのはNAPT(ナプト)やIPマスカレードと呼ばれる使い方で送信元アドレスを変更します。複数のPCが同時にインターネットを使うために複数のプライベートアドレスを1つのグローバルアドレスに変える方法です。
また、複数のプライベートネットワークを相互接続する場合にも使用してその際は、送信元アドレスと宛先アドレスの両方を変更します。
違いは処理のタイミング。具体的には?
ネットワークを通過するパケットがネットワーク機器に到着すると直ぐにルーティングするわけではなく、チェックを受けます。
- 通過させてはいけないパケットか
- NATするパケットか
ネットワーク機器によってチェックする項目数は変わりますが、ここでは分かりやすく2つにします。
「通過させてはいけないパケットか」のチェックに引っかかるとそこでパケットは破棄されます。
「NATするパケットか」のチェックに引っかかるとそこでパケットのアドレスはNAT機能で変更されます。
このようにネットワーク機器でいくつかチェックを通過して最後にルーティングされて次のネットワーク機器へ送られるようになっています。
なのでルーティングとNATでは処理している事柄が違うのと、NAT無しでもルーティングは成り立ちますが、ルーティング無しではパケットも届かないのでNATは意味を持ちません。
まだ分かりにくいかもしれません。少し視点を変えてルーティングとNATの違いを人で表現してみます。
パケットは子供で、宛先はソファーです。ネットワーク機器は親です。
- テレビを見るためにソファーへ向かう子供がいます。
- 親は子供をソファーへ誘導します。(ここがルーティング)
子供の目的であるソファーは変わる事なく、無事テレビを観ることができます。
- テレビを見るためにソファーへ向かう子供がいます。
- するとテレビ見る前に勉強しろと親が言います。(ここがNAT)
- 親は子供を勉強机へ誘導します。(ここがルーティング)
子供の目的がテレビから勉強に強制変更されてしまいました。
どうですか。イメージできたでしょうか。
NATしたとしても最終的にはルーティングが行われます。
今回はたまたまルーティング先がソファーから勉強机に変わってしまいましたが、変更内容が「みかんを食べる」であればルーティングはソファーのまま変わらない場合もあります。
次にルーティングとNATがどのネットワーク機器の機能なのか表にしました。
ルーティング | NAT | |
---|---|---|
L2スイッチ | × | × |
L3スイッチ | ○ | × |
ルーター | ○ | ○ |
ファイアウォール(UTM) | ○ | ○ |
ロードバランサー | ○ | ○ |
L2スイッチは元々IPアドレスを識別するネットワーク機器ではないのでどちらもできません。L3スイッチはL2スイッチにルーティング機能が追加された物なのでNAT機能を持たない物が基本です。
ここまでの情報をまとめるとこのようになります。
ルーティング
パケットの宛先アドレスを確認します。その宛先アドレスに到達するために次に行くべきネットワークへ送り出す機能です。
- L3ネットワーク機器の最低限の機能
- パケットを変更しない転送するだけ
NAT
パケットのアドレスを変更する機能です。送信元アドレスと宛先アドレスのどちらでも変えることができます。
アドレスが変更されたあとはルーティングされます。
- NATできるネットワーク機器とそうでない機器がある
- パケットを変更するが転送はしない(NATされた後にルーティングによって転送される)
やっぱりイメージできない方へ
ここまで堂々とルーティングとNATの違いについて説明しているので別物なのは私も理解していますが、ルーティングとNATが混同してしまう方の言いたい事も分かります。
それは恐らくルーティングの捉え方が固まっていないのでNATをルーティングの一部に組み込んでしまっているんじゃないかと思います。
なのでルーティングの捉え方(=イメージ方法)を私なりに説明します。
実はパケットには宛先が2つある。
ここでやっぱりそうだったのか、と思った方はこの説明でしっかり理解できると思います。そうでない方も考え方の一つとして読んでみてください。
1つ目は最初に決めた宛先
これはNAT変換されない限り変わることはありません。
なのでNATで宛先アドレスを変える場合は、この1つ目の宛先です。
1つ目の宛先 | 2つ目の宛先 |
---|---|
最初に決めた宛先 ※NATで変更できる | ? |
2つ目はネットワーク機器が決めた宛先
これはネットワーク機器に到着する毎に変わります。
ネットワークの仕組みとしてネットワーク機器は宛先アドレスがどこにあるか正確な場所は知りません。ネットワーク機器Aがネットワーク機器B・Cと接続されている場合はネットワーク機器B・Cのネットワークしか知りません。
でもネットワーク機器B・Cのどちらに行けば1つ目の宛先へ近づけるかは分かっています。Bが近い場合は2つ目の宛先はBを設定します。
そしてBに到着したらまた同じように1つ目の宛先に近い方を2つ目の宛先に設定して進んでいきます。すると最終的には1つ目の宛先に到着するだろうという考え方です。
もちろん1つ目の宛先がNATで変更されたら、変更後の宛先がどこに近いかを確認して2つ目の宛先を設定します。
1つ目の宛先 | 2つ目の宛先 |
---|---|
最初に決めた宛先 ※NATで変更できる | 1つ目の宛先へ近づく為に次に進む方向 ※ネットワーク機器に到着する毎に変わる |
ルーティングで決めているのはこの2つ目の宛先なんです。
この2つ目の宛先はパケット情報には載っていないのでご注意ください。
ルーティングとNATの違いの考え方として説明しましたが、ルーティングの基本になる考え方なのでしっくりきたという方は参考にしてください。
まとめ
ルーティングとNATそれぞれの役割と処理されるタイミングについて説明しました。
また、ルーティングの捉え方がしっかり固まっていないと、この2つの混同が起きやすいのでまずはルーティングについて考え直してみましょう。
そしてNATの目的と役割をしっかり考えることでこの疑問から解消されるはずです。