事前準備
スプリント1(ネットワーク・サーバ)
スプリント2(データベースと認証)
スプリント3 (冗長化構成)
スプリント4(コンテンツ配信)
スプリント5(コンテナ)
スプリント6(DevOpsとCLI)
スプリント7(インフラのコード管理)
スプリント8(サーバレス)
スプリント9(生成AIとさらなる応用)
スプリント10(アプリケーション統合)
スプリント11(データ分析)
スプリント12(マルチアカウント)
エクストラスプリント(よりAWSの理解を深くしよう)
ハンズオンカリキュラム
インフラ基礎講座

【ネットワーク基礎講座2】サブネット / プライベートIPとパブリックIP / NAT【7:47】

(0:00)
今回の講座では、サブネット / プライベートIPとパブリックIP / NATについて解説していきます。
IPアドレスとサブネットについて学んでいきましょう。


まずはIPアドレスの復習です。IPアドレスとは、その機器の住所の番地を表すものでしたね。
IPv4は0~255の数字を4つに区切った数字で表す。例えば、10.0.0.0とか192.168.5.33
それぞれドットで区切った1個目~4個目を、それぞれ第1オクテット、第2オクテット、第3オクテット、第4オクテットと呼びます。

(00:37)
サブネットとは、IPアドレスの範囲を指定するもの、ネットワークを小さな単位に切り分ける考え方です。IPアドレスと似た表記ですが、全く違うものです。
/8、/16、/24などで、IPアドレスがどこからどこまでの範囲なのかを指定します。


IPアドレスの後ろにスラッシュを付けてサブネットを表す方法をCIDR(サイダー)表記と呼びます。
例えば/32の場合は、特定の1つのIPアドレスを表します。こちらで言うと10.21.59.223自体を示すもの。/24であれば第4オクテットをフリーに使える状態、例えば10.21.59.0~255、256個のIPが確保できます。
/16であれば第3、第4オクテットをフリーに使える状態、例えば10.21.0.0~10.21.255.255、確保できるのは65536個のIPアドレスです。
最後に少し特殊ですが0.0.0.0/0、こちらは全てのIPアドレスを表します。

(01:51)
スラッシュ数字がどういう仕組みなのかと言うと、2進数の考え方に紐付いています。
表が出ていますけれども、2進数とは、普段使っている数字1~10を2進数で表すと下段のようになります。例えば1は2進数でも1ですが、2は2進数では10、3は11と表します。このように1と0のみで表していくのが2進数です。そして255を表す2進数は、1が8個連続するような形になります。


さて、IPアドレスは0~255の塊が4つあると言いました。第1オクテットの数字、例えば10.0.0.0を8桁で表すと、00001010.00000000.00000000.00000000となります。
この/8の意味、先頭から何個の数字を固定するかと考えて下さい。/8だと先頭の8個を固定し、残りはフリーという状態です。
下段のケースですが、172.16.254.0/24の場合は先頭の24個が固定されますので、最後の第4オクテット分だけフリーになる、つまり0~255、256個分のIPアドレスを確保できるという考え方になります。


ではちょっと問題なんですけれども、/21では先頭21個の数字を固定して、後はフリーという形態なんですけれども、10.0.0.0~どこまでのIPアドレスが対象となるでしょうか。少し考えてみましょう。


正解は10.0.7.255までの範囲ということになります。3桁ありますけれども、全て1なら7個の数字を確保できますよね。という理屈ですが、実際は暗記しなくてもOKです。サブネットマスク 21でGoogle検索すると出てきますし、インターネット上に計算ツールも多くあるので、暗記というよりはそういう理屈なんだということを抑えておけば大丈夫です。

(04:05)
さてこのサブネット、小さなサブネットに分割するというところで、実際にどのように使っていくかですが、例えばあなたが担当するネットワークとして、上司から10.0.0.0/21を割り当てられたとしましょう。10.0.0.0/21で確保しているということは、IPアドレスが使える範囲はこちらのとおりです。少し色分けしていますけれども、これを/24のサブネットで分割すると考えると、ご覧のように第3オクテットが連番で1ずつ増えていく形で、このように区切るとわかりやすいと思います。つまり分割の仕方にもよりますが、/24で考えるのが一番シンプルでわかりやすいと思います。/24で区切ったら8個分の小さなサブネットが分割作成できるというわけです。

イメージ的にはこのような感じです。大きなネットワークを小さなサブネットに分割して、それぞれ256個のIPアドレスが8個できるイメージです。

サブネットに分割すると通信制御と管理がしやすいです。
例えばこのルータにファイアウォールを設置して、真ん中の2個あるルータの上にあるルータに接続されているネットワーク機器は、どこからでも接続元を制限せずにどこからでもHTTP通信がOKというような、ネットワーク単位で許可ルールを設定できたり、一方下の方のルータ、10.0.1.0/24のネットワークは重要なデータが入っているサーバがあるので、接続元は一つ上のルータから10.0.0.0/24からのみの通信を許可し、それ以外全ての通信はブロック(Deny)のルールを入れておくという感じです。セキュリティ設定をネットワーク単位でできるのがメリットの一つです。
AWSでもサブネットの考え方は非常に重要ですが、一度に理解しようとしなくても大丈夫です。
今は用語やイメージだけでもざっくりと抑えておいて下さい。

(05:59)
続いてNATについて見ていきましょう。
現在一般的に使われているIPv4は約43億個のIPアドレスを確保することができます。しかし世界中の住所を表記するのに43億個ではとても足りません。そこでLANの内側で通信するIPアドレスの範囲とLANの外側で通信するIPアドレスの範囲を分けましょうという規約ができました。

このパブリックIPアドレスとプライベートIPアドレスという範囲、LAN内で通信するIPレンジとWAN間で通信するIPレンジがインターネット上のルールを決めたRFCという規約で決められています。
ご覧のような3種類が、LANの中で通信するIPレンジ、それ以外はWAN間で通信するIPレンジです。
こちらはパブリックIPアドレス、またはグローバルIPアドレスと呼ばれることもあります。

NATとはIPアドレスを変換する機能のことです。外部通信用のパブリックIPアドレスと内部通信用のプライベートIPアドレスを紐付ける技術で、例えば10.0.9.66のサーバがインターネットに向かって通信しようとする時、インターネットに出る瞬間、予め設定しておいたNATのテーブルのようなものがあり、例えば61.54.88.250のようなパブリックIPアドレスに置き換わって、このIPアドレスで出ていくといった感じです。逆も然りで、外から61.54.88.250に通信が向かってきたら、中に入る際には10.0.9.66に置き換わって通信されます。少し複雑な考え方もありますが、VPC編の講座ではAWSのサービスに置き換えて、実践をふまえて改めて説明していきます。


今回の講座は以上になります。