はじめに
ITの勉強において、やっぱり全範囲を網羅的に勉強しようと思ってもなかなか、先輩・上司に追いつき追い抜くことって時間がかかるものです。そのせいでモチベーション下がったり……
だったら、1つのことに1点集中して『これに関しては同レベルor自分の方が上だ!』と思える領域を少しずつ作っていきましょう!それを続けていけば、どんどんどんどん勝てる領域が多くなり、気づいたら自分が行きたい未来に辿りつきます!
じゃあ今日は、「IPv6の表記ルール」について教えてください。全然イメージできなくてショックを受けました。みんなはこれを説明できる??
なので、今日はこれを教えてください!
基本知識
IPv6アドレスは128ビット(16バイト)で構成されており、これを16進数で表記します。IPv4アドレス(32ビット=4バイト)と比べて非常に長いアドレスです。
IPv4とIPv6が混乱します…
では、ここで軽くおさらいしておこう!
項目 | IPv4 | IPv6 |
---|---|---|
アドレスの長さ オクテッド=バイト | 32ビット(4オクテット) | 128ビット(16オクテット) |
アドレスの数 | 約43億(2^32) | 実質無限大(2^128) |
表記形式 | 10進数で区切った4つの8ビット値 | 16進数で区切った8つの16ビット値 |
例 | 192.168.0.1 | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 |
アドレスの枯渇問題 | アドレス枯渇が深刻 | アドレス枯渇問題は実質解消 |
アドレス割り当て方法 | 手動、DHCP、NAT | 自動設定(Stateless Address Autoconfiguration, SLAAC)、DHCPv6、NAT不要 |
ブロードキャスト | ブロードキャストアドレスを使用 | ブロードキャストは廃止。マルチキャストとユニキャストが使用 |
マルチキャスト | オプションで対応 | 標準で対応 |
ヘッダの複雑さ | ヘッダのフィールド数が多い(12フィールド) | 簡素化されたヘッダ(8フィールド) |
フラグメンテーション | 送信元、ルーターがフラグメント可能 | 送信元のみがフラグメント可能 |
セキュリティ | IPsecがオプション | IPsecが標準でサポート |
NAT(Network Address Translation) | NATが広く使われる | アドレスが十分に多いためNATは不要 |
モビリティと自動設定 | IPv4には特別な設定が必要 | モバイルデバイス向けに最適化された自動設定対応 |
対応の進展 | 世界中で広く使われているが、枯渇の影響あり | IPv4からの移行が進行中、IPv6への完全移行を推進 |
ヘッダのチェックサム | 含まれている | ヘッダチェックサムは廃止されている |
ルーティングの効率化 | 比較的ルーティングテーブルが大きい | アドレス空間が大きく、効率的なルーティングが可能 |
要するに、
IPv4は32ビット・4ブロック構成
IPv6は128ビット・16ブロック構成
ってことですね!
そういうことじゃ!その知識さえあれば今回学ぶ圧縮表記は簡単じゃ!では、実際にやっていくぞよ
圧縮表記
IPv6アドレスはとても長くなってしまうので、表記を簡潔にする必要があるのじゃ!そのために使うのが圧縮表記!では、やり方を見ていこう!
圧縮ルール 1: 前のゼロの省略
各ブロックの先頭のゼロは省略することができます。
例:
2001:0db8:0000:0000:0000:0000:1428:57ab
このアドレスは各ブロックの先頭のゼロを省略すると次のようになります:
2001:db8:0:0:0:0:1428:57ab
圧縮ルール 2: 連続するゼロブロックの省略
連続して現れる0000
のブロックは、1回だけ「::
」でまとめて省略することができます。ただし、アドレス内で2か所以上で使うことはできません。
例:
2001:0db8:0000:0000:0000:0000:1428:57ab
このアドレスは、連続するゼロブロックを省略すると次のようになります:
2001:db8::1428:57ab
注意点として、複数の連続するゼロがある場合、最も長い部分を優先して省略します。例えば、以下のようなアドレスがあった場合:
2001:0db8:0000:0000:0000:abcd:0000:1234
最も長いゼロの部分を省略して:
2001:db8::abcd:0:1234
とします。
IPv6アドレスのルールまとめ
- IPv6は128ビットで、8ブロックで、1ブロック16ビットで構成される。
- 各ブロックは16進数で表記し、コロン(:)で区切る。
- 各ブロックの先頭のゼロは省略可能。
- 連続するゼロのブロックは「
::」
で一度だけ省略可能。
講釈を垂れるのはここまでじゃ!ここからは実際に練習問題を解いていこう!
はーい!
練習問題
次に、IPv6アドレスの圧縮表記に関する練習問題を解いてみましょう。
問題 1:
次のIPv6アドレスを圧縮表記してください。
2001:0db8:0000:0000:0000:ff00:0042:8329
問題 2:
次の圧縮されたIPv6アドレスを通常の表記に戻してください。
2001:db8::ff00:42:8329
問題 3:
次のIPv6アドレスをできるだけ短く表記してください。
fe80:0000:0000:0000:0202:b3ff:fe1e:8329
練習問題の解答
解答 1:
問題 2001:0db8:0000:0000:0000:ff00:0042:8329
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
答え 2001:db8::ff00:42:8329
- 先頭のゼロを省略し、連続するゼロブロックを
::
でまとめています。
解答 2:
問題 2001:0db8:0000:0000:0000:ff00:0042:8329
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
答え 2001:db8::ff00:42:8329
::
の部分を0000
に置き換えます。
解答 3:
問題 fe80:0000:0000:0000:0202:b3ff:fe1e:8329
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
答え fe80::202:b3ff:fe1e:8329
- 先頭のゼロと連続するゼロブロックを省略しています。
どうじゃ?できたかい?
まぁまぁですね!「完璧!」とは言えないかもしれないけど、慣れてはきました!
まとめ
要するに…
IPv6アドレスは、128ビットの長さで構成され、8つのブロックで1つのブロックは16ビットで構成されています。それぞれのブロックは16進数で表記され、コロン(:)で区切られています。各ブロックは4桁の16進数で構成されており、例えばアドレス「2001:0db8:0000:0000:0000:ff00:0042:8329」のような形式になります。IPv4とは異なり、IPv6はアドレスの枯渇問題を解消するために設計されており、膨大な数のアドレスを提供できるようにしています。
IPv6アドレスの表記にはいくつかのルールがあります。まず、各ブロック内において、先頭のゼロは省略可能です。たとえば、ブロック「0db8」は「db8」と表記できます。このように、先頭のゼロがある場合にはそれを省略して簡略化することができます。さらに、連続してゼロが並ぶブロックは一度だけ「::」と表記して省略することができます。これにより、アドレス全体がより短く、読みやすくなります。たとえば、アドレス「2001:0db8:0000:0000:0000:ff00:0042:8329」は、「2001:db8::ff00:42:8329」と省略して表記することができます。ただし、「::」はアドレス内で1回だけ使用できるという制約があります。
IPv6アドレスは8つのブロックに分けられているため、各ブロックは16ビットを表し、それを16進数で表現します。この点を理解することで、IPv6アドレスの長さや構造、そしてアドレス表記のルールが把握できます。さらに、IPv6アドレスは、IPv4アドレスのようにブロードキャストが存在せず、代わりにユニキャストやマルチキャストを利用して通信を行います。また、NATを使わずに直接アドレスを割り当てる設計が可能で、アドレス空間が非常に広大なため、アドレスの不足を心配することなく利用できるようになっています。
IPv6の表記ルールは、効率的でシンプルなアドレス表記を可能にするために作られており、ゼロの省略や「::」による連続ゼロのまとめが重要なポイントです。これらのルールを正しく理解することで、IPv6の扱いが容易になり、ネットワークの設計やトラブルシューティングにおいても効果的に対応できるようになります。
おわりに
本日は『IPv6の表記ルール』について知見を深まりました!
やはり、知識をつけることは大切じゃからのぉ。知識があれば大抵のことはできる。逆に知識がなければ、できるもんもできない。これが世の理じゃよ。
でも、焦らず、1つずつ・1っ歩ずつ進んでいくことが大切じゃ!これからも一緒に頑張っていこう!
今日のSeeYouソングは「Play Pretend ー Alex Sampson」です。では、どうぞ!