ネットワークエンジニアを始めて1年。大学までもろに文系だった俺は、いまだにネットワークの基礎知識においてもあいまいな部分が多い。技術的にほかのやつらを出し抜くため、自腹でFortigateを購入した俺は、外出中にどうにか家のネットワークに接続し、外からMACでリモートデスクトップ接続をし、Xcodeでのアプリ開発だけでなく、AndroidStudioでのアプリ開発を同時並行で進めたいという思いから、Fortigateを使ってVPN接続を試みた。
ちなみにFortiは50Eを採用している(ヤフオクで1万2千くらいだった)。
★NATとは
NATとは簡単に言うと、プライベートIPアドレスをグローバルIPアドレスに変換する技術のことだ。昨今のネットワークではモバイルにしろ、この仕組みが用いられている。特に上記のような1:1のアドレスの置き換えではなく、プライベート:グローバル=多:1のアドレス変換が用いられるケースが多い。これをIPマスカレード(NAPT)という。
IPマスカレードはルータやファイヤーウォールなどインターネットとの境目となる機器で実装することが多い。
ここで疑問が生じる。一つのグローバルに対して、複数のプライベートIPが割り当てられているのであれば、いったいどうやって外のNWからLAN内の特定の端末にアクセスしているのだろうか。俺もその部分があいまいで、今日それを勉強したので今こうやって頭の整理のためにブログを書き留めている。
その答えは「ポート番号」だ。
IPマスカレードを処理するルータ端末が特定のポート番号に対する通信と、LAN内の特定の端末を紐づける役割を担い、どの端末にアクセスするのかをポート番号をもとに判別している。
★NATTraversal(ナットトラバーサル)とは
NATTraversalとは、平たく言うとNAT越え通信だ。IPV4アドレスの枯渇問題によって、昨今ではすべての端末がグローバルIPを持つことはなく、グローバルIPを持ったNW機器の配下のLAN内でそれぞれの端末がプライベートIPアドレスを持っている。さらにセキュリティ的観点からみても、端末が全てグローバルIPを持つこともよくないらしい(ちょっとまだ理解が追い付いていないところもあるので、詳細は参考資料を見てほしいが、要は世界のデバイスからもアクセスできる状態よりも、通信をLAN内の許可されたものだけに限定するほうが安全だということだろう)。
さて、こんな昨今のNW事情があるなか、もちろんP2P(端末⇔端末)での通信の需要は大いにある。
★参考
https://tech-blog.cerevo.com/adventcalendar2016/advent24/