#プログラミング勉強日記
2021年5月8日
#はじめに
プライベートサブネットで通信を可能にするためには、NATゲートウェイを使う。NATゲートウェイを理解するためにはグローバルIPアドレスとプライベートIPアドレスのやりとりをする機能やソフトウェアの理解が必要になる。
##グローバルIPアドレスとは
世界中でのやり取りが可能なのがグローバルIPアドレス。世界中で重複のない一意のアドレスで、インターネット上でのやりとりに使用される。ICANNという非営利団体が管理してる。そのため、グローバルに割り当てられたIPアドレスをもらう必要がある。
##プライベートIPアドレスとは
限定的なエリア内でのみで利用可能なのがプライベートIPアドレス。オフィス内や家庭内などの特定の範囲だけで利用されるアドレスで、そのエリア内では重複はできないが、グローバルでは重複が可能。設定できるIPアドレスの範囲は10.0.0.0
~ 10.255.255.255
, 172.16.0.0
~ 152.32.255.255
, 192.168.0.0
~ 192.168.255.255
。ローカルエリアの管理者が自分でIPアドレスを与えられる。
##DHCPサーバーとは
IPアドレスを付与するためのサーバーがDHCPサーバーで、DHCPサーバーを置くことでプライベートなIPアドレスの付与を(基本的には)自動で行う。
##NATとは
グローバルIPアドレスとプライベートIPアドレスを対応付けるのがNATという機能・ソフトウェア。プライベートIPアドレスはアドレスが重複してしまうため、インターネットに接続するIPアドレスとしては使えない。インターネットに接続するためには、グローバルIPアドレスが必要になるので、インターネットに接続するときにはNATがグローバルIPアドレスに変換してくれる。この仕組みがNATという仕組み。
#IPマスカレードとは
NATは1対1で変換するが、IPマスカレードは複数のプライベートIPアドレスをグローバルIPアドレスに変換する。複数のプライベートIPアドレスを1つのグローバルIPアドレスに関連付けて共有する。IPマスカレードの方が効率的に使うことができる。
#プライベートサブネットの構成
プライベートサブネットではインターネットからのアクセスができないので、そのために踏み台サーバーを使う。パブリックサブネット側に踏み台サーバーを設置してそこにアクセスしてから、(踏み台サーバーから)プライベートサブネットにあるEC2インスタンスにアクセスする。
アクセスは踏み台サーバーからできるが、返信のトラフィックを受け取るにはNATゲートウェイが必要になる。NATゲートウェイはアドレス変換してパブリック側でやり取りできるようにしてインターネットゲートウェイに返信トラフィックを送り渡す。それによってインターネット側のクライアント端末でプライベートサブネット上のEC2インスタンスからの返信トラフィックを受け取れるようになる。