SoftEther VPNの世界① -VPN理解編-
どうも、Keiです。
明日は台風が直撃するみたいですね。リモートワークが進むこのご時世では、台風の日は家で仕事をしたいですね。
さて、家で仕事を行う際にインターネット経由で職場のサーバにアクセスしたいときってけっこうあるのではないでしょうか?
シンクライアントを利用していれば、なおさら全てのデータ通信をインターネット経由で行う必要がありますね。
今回は、このようにリモートで仕事をする上では欠かせないVPNの中でもオープンソースで誰でも使うことができるSoftEther(ソフトイーサ)について話をしたいと思います。
VPNとは?
まず、そもそもVPNって良く聞くけど暗号化の技術なの?よくわからないけど使っているという人のために、VPNについて説明します。
結論を言うとVPNはトンネリング(カプセル化)をする技術のことです。
これも、トンネリングがわからないと「?」ですよね。
今回の説明では、
トンネリングができる=2拠点で安全な通信ができる
を理解して欲しいと思います。
パケット構造について
トンネリングの話をする際に、避けて通れないのがパケット構造です。
みなさんは、日々youtubeやLINEなど、データをダウンロードしたり、送信したりしますが、そのデータはネットワークを経由する上でルータやスイッチなどの機器が理解できるようにフォーマットが決まっています。
下の図は、恐ろしく簡単にその構造を書いたものです。
L1、L2、L3と書いてあるのは、Layer1、Layer2、Layer3の略です。
データと書いてある部分は皆さんがメールで書く本文のようなものだと理解して下さい。
僕のイメージで言うと、
L2、L3ヘッダは宛先がどこにいるのかの情報をもっています。
Layer3ヘッダは宛先が存在する町みたいなものを表していて、Layer2ヘッダはその町の個人の住所を表しています。
下の図はA美からB郎にメールをする際にどのように途中のネットワーク装置でルーティング(経路の決定)が行われるかを恐ろしくシンプルに表しています。
ここでおさえてもらいたいことは、
ルータでは、B郎がどのネットワークにいるかというざっくりとした情報でデータを運んでいること。ルータでは、Layer3ヘッダを確認して、経路選択をします。
スイッチでは、B郎のいるネットワークにルータのおかげで到着しているので、後はB郎はだれかということをLayer2ヘッダを見て、B郎を特定します。
このように、ルータはLayer3ヘッダを見るため、Layer3装置。
スイッチはLayer2ヘッダを見るため、Layer2装置と呼ばれることがあります。
トンネリングとは
さて、データ構造を理解したところで、トンネリングについて説明します。
トンネリングは主に、L3トンネルとL2トンネルがありますが、代表的なL3トンネルを例に挙げたいと思います。
みなさんもご存知のIPsecはL3トンネルを使用した技術です。
下の図はL3トンネルのデータの流れを表したものです。
先ほどの例と異なるのは、ルータAではL3ヘッダである「B郎のいるネットワーク」が参照されていましたが、今回はIPsecヘッダが参照されている部分です。
ルータで参照されるのはL3ヘッダだったので、このIPsecヘッダはL3ヘッダの役割をしています。
つまり、パケット(データ+L3ヘッダ)にさらにL3ヘッダ(IPsec)をつけているわけです。このIPsecヘッダにはルータBの情報が書いてあります。
このような構造にすることによって、ルータAとルータBの間のルータはIPsecヘッダをもとに経路選択をして、ルータBにたどりつきます。
そして、データがルータBにたどり着くと、ルータBはIPsecヘッダを外し、元々のL3ヘッダ(B郎のいるネットワーク)を参照してスイッチにデータを渡します。
このように、ルータAとルータBの間で通常のL3ヘッダとは異なるL3ヘッダで直通経路(トンネル)を作ってあげることで、あたかもルータAとルータBが隣接しているようにみせる技術をトンネリングといいます。
VPN技術では、このトンネリングを使用することでA美とB郎のネットワークがあたかも隣接しているように見せることができます。
つまり、会社と家で考えると、実際はインターネットのように多くのルータやスイッチを間に挟んでいるかも知れないですが、トンネリングを使ってあげることで、仮想的に間のインターネットがなく、隣接したネットワーク(会社内にいる環境)のように扱えるのです。
IPsecに代表されるように、トンネリング技術ではインターネットを通すので、不正にパケットがのぞかれることを懸念してデータを暗号化しています。
先ほどの例でいうと、ルータAで暗号化してルータBで複合しています。このように、トンネリングと暗号化によって、VPN技術は安心で便利なものとなっています。
さて、今回はVPN技術を支えているトンネリング技術について勉強しました。
IPsecに代表されるL3トンネリングでは、IPヘッダ(L3ヘッダ)をIPヘッダでカプセル化(L3ヘッダの上にL3ヘッダをつけること)しました。(IP over IPとも言われます)
一方で、タイトルにもSoftEtherではL2ヘッダをHTTPSプロトコルでカプセル化するという、一風変わった方法をとっています。(IP over HTTPS)
次回はL2トンネリングとSoftEtherについて説明したいと思います。
それではまた!