BLOG

【Linux研修】おはじきの記録15

こんにちは、おはじきです。

突然ですが、インフラエンジニアが担当する分野というものは大きく分けて2つに分かれています。
サーバーネットワークですね。
私はLpicレベル1の試験対策をコンセプトにブログを執筆しているのでこれまでは基本的にはサーバーの分野の技術のお話を重点的にしてきました。
ですがLpic102にはネットワークの分野の単元もありますのでネットワークの事はわかんないよという事では恐らくLpicレベル1には合格できないでしょう。
今回から何回かに分けてネットワークの基本的な部分のお話をLinuxの観点から解説します。

IPアドレス

今回はIPアドレスについて解説していきます。
IPアドレスとは、
IP(Internet Protocol)というプロトコルがネットワークに接続されている機器を判別するために割り振る数字の羅列です。
現状はIPv4という規格が主に利用されていてこちらは32ビットで構成されており8ビット毎にピリオドで区切られています。
32ビットとは2進数で32桁で表されているという事ですね。
例えば192.168.3.1というIPアドレスを2進数で表すと、
11000000.10101000.00000011.00000001となります。
2進数自体の話はここでは割愛しますが8ビット単位を10進数に変換できるようにはなっておいた方が良いです。
IPアドレスはネットワーク部ホスト部で分かれています。
2進数表記で左側がネットワーク部、右側がホスト部になっているのですが何ビット分がネットワーク部で何ビット分がホスト部かはそのネットワーク設定によって違います。
それを判別するにはサブネットマスクを使います。
IPアドレスにはクラスという概念で分けられておりクラスによってサブネットマスクは決まっています。

クラスIPアドレス設定可能範囲サブネットマスク
A0.0.0.0~127.255.255.255255.0.0.0
B128.0.0.0~191.255.255.255255.255.0.0
C192.0.0.0~223.255.255.255255.255.255.0

上記に挙げた192.168.3.1はクラスCに当たるのでサブネットマスクは 255.255.255.0
2進数で表すと
IPアドレス   11000000.10101000.00000011.00000001
サブネットマスク 11111111.11111111.11111111.00000000
サブネットマスクの255の部分がネットワーク部で0の部分がホスト部という事になります。
IPアドレスにおけるネットワーク部とホスト部の関係は
ネットワーク部( 192.168.3. )の中に所属しているホスト部(1)さんというようなイメージを持っていただければと思います。
IPアドレスはインターネット内で重複してはいけませんが例外としてプライベートなネットワークの中では決められた一部のIPアドレスは自由に使えます。
これをプライベートIPアドレスといいます。
クラスごとに設定できる範囲が決まっているので下記にまとめます。

Aクラス10.0.0.0~10.255.255.255
Bクラス172.16.0.0~172.31.255.255
Cクラス192.168.0.0~192.168.255.255

ただ現在ではクラス単位での運用は非効率という事で廃れ、新たにCIDR (Classless InterDomain Routing) という運用方式が採用されています。
クラス方式ではサブネットが8ビット単位で固定されていたのに対し、CIDRでは1ビット単位で扱うことができます。
例えばCIDR方式ではサブネットマスクを255.255.255.128と設定する事ができます。
192.168.3.1にそのサブネットを適用して2進数で表してみましょう。
IPアドレス    11000000.10101000.00000011.00000001
サブネットマスク  11111111.11111111.11111111.10000000
こうするとホスト部に割り当てることができる範囲は狭くなりますがネットワーク部は広くなります。

CIDR方式では上記のIPアドレスとサブネットの関係を192.168.3.1/25(ネットワーク部のビット数)という形で表記します。
それでは実際にIPアドレスを元にサブネットを割り振る時のルールを解説します。
192.168.3.1/25を例に考えてみましょう。
この場合最大で126個の機器にIPアドレスを割り振ることができます。
計算の仕方は2をホスト部の数乗すればいいのです。
今回は7乗ですね。
2の7乗は128じゃないか、となるところなのですがホスト部を2進数に直したときに全てが0になるアドレスと全てが1になるアドレスはそれぞれネットワークアドレスブロードキャストアドレスとして予め抑えられているので利用する事ができません。
192.168.3.1/25においては、
192.168.3.0がネットワークアドレス
192.168.3.127がブロードキャストアドレスとして使われているので、
192.168.3.1~192.168.3.126までの範囲でIPアドレスを割り振る事になります。

つまり、あるIPアドレスから割り振れるサブネットの数を聞かれた場合
2のホスト部乗-2を計算すれば答えが出ます。

柔軟に設定できるので今ではCIDR方式が主流の様ですがLpicの試験ではクラス方式の割り当て範囲も未だに出題されますので試験を受ける方はこちらも覚えておきましょう。

IPv6

現在主流のIPv4形式のIPアドレスが機器に割り振れる総数は約43億程らしいですが急速にネット周りが発達している現代ではそれだけではいつか足りなくなってしまうだろう、という事で新たにIPv6形式が開発されました。
IPv4は32ビットに対しIPv6は128ビット
これはつまり43億の4乗、実質無制限といっても過言ではない量のIPアドレスを用意できるようになったのです。
IPv6は16進数で16ビットを8つのブロックに:で区切って表記します。
例えば下記のような表記になります。20fa:0000:0000:bc8a:0085:0e38:6091:3c7a
これでは長くなってしまうので略すことができるのですが、略すにはルールがあります。
・各ブロックの先頭の0は省略できる。
・0のみのブロックが連続する場合は::と表記できる。

以上のルールを踏まえて上記のIPを略すとこの様になります。
20fa::bc8a:85:e38:6091:3c7a

ただIPv6はまだ生まれたばかりで、定着しきったIPv4とは違い運用するための土台ができあがっていないので普及するには至っておらず、我々が日常的に利用するようになるには時間がかかりそうです。
ですが試験対策としてIPv6の略し方、16進数の読み方(123456789abcdefで繰り上がる)は把握しておきましょう。

最後に

今回はLpicレベル1の範囲でIPアドレスについて解説しました。
ネットワークの単元は区切りにくくて初歩的な内容だけでも大分長くなってしまいますね。
それだけ奥が深く重要な内容という事なので仕方ありませんね。
ネットワークの話はややこしいので1人が書いた記事、本だけではなかなか理解するのが難しいので、色々な人の記事や本を読み、様々な観点からネットワークを見ながら実際に自分で触れてみることが大事だと思います。
次回はLinuxのネットワークの設定について解説していきます。
それでは

BLOGトップへ戻る