今回は管理しているネットワークと、そうじゃないネットワークの接続について書いてみます。
管理しているか、そうでないか… この判別は結構難しくて、技術的な側面よりも、政治的というか、企業間の力関係とか関わって来ますので、簡単には判別できませんし、もちろん、現場によって状況は様々なので、今回はネットワーク境界に設置するルータの、管理者権限を持っているか?否か?という、非常にシンプルな条件としました。
結論 その1
ネットワーク境界にあるルータの管理者権限を持っていれば、自ネットワークのセキュリティは相当なレベルで担保できます。裏を返せば、管理者権限を持っていなければ、自ネットワークは丸裸な訳で、悪意ある他ネットワークからの攻撃に対して、防御はかなり難しくなります。
結論 その2
ネットワーク境界にあるルータをどのようなモードで動作させることが望まれる(推奨される)かについては、いくつかのケースを想定して書いてみますが、接続するネットワークがお互いに独立してセキュリティレベルを維持するには、ルータが1台では無理で、2台用意する必要があります。
※詳細は後述…
結論 その3
ネットワーク管理について、お互いに信頼関係があるのであれば、ネットワーク境界にあるルータは1個でも運用は可能ですが、その場合でもルータに 1対1 NAT を設定することをお勧めします。これはセキュリティ的な観点ではなく、あくまで運用・管理面からのお勧めです。
※なぜなら、そのルータの管理者権限を持っていれば、セキュリティ面についてはどうとでもコントロールできるからです。
Type1.ルータ1個【ローカルルータ】
Network B(他ネットワーク)にあるサーバB が、Network A → Network C を経由してサーバC と通信を行うとします。
ルータA では、NAT を行わないシンプルなローカルルータとして動作するので、OSPF 等の自動ルーティングプロトコルを使わない限り、全てのノード(ゲートウェイ)で、静的なルーティングが必要です。
※これは、通信が経由する全てのネットワークアドレスと、そのネットワークのゲートウェイ情報(どこに接続されているか?)が必要ということを意味します。
Type2.ルータ1個【1対1NAT アウターが自ネットワーク】
◎お勧め!!
ルータA の Network A 側に、アウター(FW ではエイリアスとも呼ぶ、アウターとはヤマハルータ用語)の IPアドレス、つまり実体のない仮想 IPアドレスを設定し、その仮想 IPアドレスにサーバB の実 IPアドレスを対応させ、1対1NAT で変換します。
Type1 と同様に、サーバB がサーバC と通信する場合、サーバB からのパケットがサーバC に到着すると、サーバC はその通信が Network A にある 192.168.10.9 が発信元であると認識します。つまり、自ネットワークからの通信なので、新たに静的ルートを追加する必要もなければ、そもそもサーバB の実 IPアドレスを知る必要もありません。
また、インナー側(Network B)は 1対1NAT で指定した IPアドレス(下記例であればサーバ B)だけが Network A に接続出来るので、発信元 IPアドレスをフィルターで制限する必要もなく、セキュリティ面でも安全性が高くなります。
Type3.ルータ1個【1対1NAT アウターが他ネットワーク】
ルータA の Network B 側に、アウターの IPアドレスを設けます。この仮想 IPアドレス (192.168.20.99) は、サーバC (172.16.30.99) に変換されるので、サーバB から見ると、サーバC がまるで Network B に存在するように見えます。
この方法は、Network A や Network C の情報を隠蔽出来るので、一見セキュリティ的に安全性が高いように感じます。しかし、発信元 IPアドレスは Network B のままなので、Type1 と同様に全てのゲートウェイでサーバB への静的ルートの追加が必要となります。
加えて、サーバC へ接続される(変換される)仮想 IPアドレス (192.168.20.99) は、Network B のどこからでもアクセス出来るので、発信元 IPアドレスをフィルターで制限した方が良いかもしれません。
Type4.ルータ2個【独立したルータセグメントを設定】
〇そこそこ、お勧め!!
この方式がセキュリティ的にも運用的にも一番安全性が高く、いわばネットワーク同士を疎結合する感じです。
各々のルータの管理者権限は、それぞれのネットワーク管理者が持つ事になるので、セキュリティ・レベルを相手に依存しないで保つことが可能となります。
ただし、新設したルータセグメント (10.0.10.0/24) に対して、ネットワーク全てのゲートウェイで静的ルーティング必要ですが、互いに相手側のネットワーク情報は必要無いので、運用・管理はそこそこ楽になります。
理想的な構成なのですが、ルータが2台必要なので、単純に管理コストが二倍、また、障害時の切り分けに相手側の協力が不可欠なので『そこそこ、お勧め!』という評価にしました。
Type2やType4をお勧めする理由
一番の理由は、Network B のような他ネットワークのネットワーク情報が必要ない点です。もう少し具体的に書くと、他ネットワークへの静的ルーティングが必要ないという事です。仮に Network C がデータセンターで、Network A が全国にある事業所や工場、事務所等と想定すると、他ネットワーク(別会社、もしくは管理者が別)も複数存在した場合、物理的に異なる場所のネットワークアドレスが重複する可能性は容易に想像(クラスCを使う事が多いので)できます。
自ネットワークであれば、ネットワークアドレスや、個別の固定 IPアドレスの管理は可能ですが、他ネットワークの管理は難しいというか無理なので、このネットワークアドレスの重複は最初から考慮しておく必要があります。
ここまで書くとお分かりのように、戻りのルーティングで、相手側(他ネットワーク)の実IPアドレスや、実ネットワークアドレスを書くのは極めてリスキーです。ですので、ルータ1個であれば Type2 の 1対1NAT で相手ネットワークアドレスを隠し、必要であればフィルターでセキュリティを確保、もしくは Type4 のように相手先のルータ設定やネットワーク情報を考慮することなく、自分の管理するルータの設定を固めるのが良いと思います。