オンプレとクラウドを繋ぐ「秘密のトンネル」:Site-to-Site VPNの仕組みを紐解く
クラウドのインフラ設計をしていると、必ずぶつかる壁があります。「社内のデータセンター(オンプレミス)にある大切なサーバーを、AWSやGCPのようなクラウドの世界と安全に繋ぎたい」という要望です。
「インターネットを通るのに、どうして安全なの?」と不思議に思いますよね。今日は、そんな疑問を抱えるあなたのために、Site-to-Site VPNという技術を、現実世界の例えを交えて解説していきます。
—
1. VPNって結局、何をしているの?
VPN(Virtual Private Network)を理解するために、「郵便配達」をイメージしてみてください。
通常、インターネット上の通信は「宛先が書かれた剥き出しのハガキ」を送るようなものです。誰でも中身を覗き見ることができます。これでは、機密データを送るには不安ですよね。
そこで登場するのがVPNのトンネルです。VPNは、以下の2つの魔法を使います。
1. 箱に入れる(カプセル化): 送るデータを頑丈な鍵付きの箱に入れます。
2. 鍵をかける(暗号化): 箱の中身は、正しい鍵を持つ人しか開けられない特殊な暗号になります。
この「鍵付きの箱」のやり取りを、インターネットという公道の上に作るのが、IPsecトンネルという「専用の地下通路」なのです。
—
2. 冗長化:もしも「トンネル」が崩れたら?
インフラエンジニアの仕事は、物事が壊れることを前提に考える「悲観的な楽観主義」が大切です。もし、VPNのトンネルが1本しかなかったら、回線が切れた瞬間にクラウドとオンプレの通信は途絶えてしまいます。
そこで私たちは、通常「トンネルを2本」用意します。これが冗長化(じょうちょうか)です。
- メインの道(トンネルA): 普段はこちらをメインで使います。
- 予備の道(トンネルB): Aが通行止めになったら、自動的にこちらに切り替わります。
これによって、「あ、回線が切れたので今から復旧作業に行きます!」という深夜の緊急呼び出しを未然に防ぐことができるのです。
—
3. 実践!AWSでVPNをイメージする設定例
実際にAWSでSite-to-Site VPNを構成する際、設定ファイル(ここではCiscoルーターを想定)はこのような雰囲気になります。難しそうに見えますが、やっていることは「相手のトンネルの入り口はどこか?」「鍵は何を使うか?」を教え合うだけです。
! --- VPNトンネルの設定例 ---
! トンネルのインターフェースを作成
interface Tunnel1
description AWS_VPN_Primary
ip address 169.254.0.2 255.255.255.252 ! トンネル専用のIPアドレス
tunnel source GigabitEthernet0/0 ! ルーターのインターネット側出口
tunnel destination 54.x.x.x ! AWS側のトンネル終端アドレス
tunnel mode ipsec ipv4 ! IPsecで包むことを宣言
! 鍵(事前共有鍵)の設定。これが合わないとトンネルは繋がりません
crypto isakmp key "SecretPassword123" address 54.x.x.x
※ 上記の 169.254.0.2 は、トンネルの中でだけ通用する「特殊な住所」です。現実世界でいうところの、トンネル内専用の管理番号のようなものですね。
—
4. 最初の一歩を踏み出すあなたへ
初めてVPNを構築するとき、一番多い失敗は「ファイアウォールの穴あけ忘れ」です。
インターネットの出入り口には、必ず門番(ファイアウォール)がいます。VPNで使う UDP 500 や UDP 4500 といったポートを通す許可を出していないと、いくら正しい設定をしてもトンネルは開きません。
「設定したのに繋がらない!」と焦ったときは、まずはこの門番が通信をブロックしていないか、ログを確認してみてくださいね。
まとめ:今日覚えて帰ってほしいこと
1. VPNは「鍵付きの箱」に入れて公道を走る地下通路。
2. 障害に備えて必ずトンネルは2本以上用意する。
3. 門番(ファイアウォール)の設定チェックは忘れずに。
ネットワークの構築は、目に見えないパケットの流れを想像するパズルです。最初は難しく感じるかもしれませんが、一度「パケットがどう旅をしているか」が見えてくると、これほど面白い仕事はありません。
次は、実際にクラウドのコンソールを操作して、小さなトンネルを1本開通させてみるところから始めてみましょう。応援しています!
コメント