web-dev-qa-db-ja.com

IPv4管理者向けのIPv6イントロ

私はIPv4をかなりよく知っていますが、IPv6を使用する必要はなく、実際にクラスを作成したり、意味のあるドキュメントを読んだりする必要もありませんでした。

誰かがIPv4管理者のためのIPv6の良い紹介(オンラインまたは本で)を教えてもらえますか?私は主にUNIXではなくWindowsですが、ほとんどのUNIXの説明に従うことができます。

26
Richard Gadsden

TechNetには興味深い IPV6ページ があります。

9
user1797

昨年、IPv6アドレスをDNSに入力するように求められたときにエンジニアの何人かが混乱したときに、これを内部参照ドキュメントとして作成しました。私はDNSに具体的に対処しませんでしたが、懸念のほとんどはアドレスの形式に関するものであり、それらがどのように機能するかを「理解」することではないようでした。多分それは他の人にも役立つでしょう:


したがって、最初に認識すべきことは、IPv6加算器は見苦しいということです。彼らはそうします。

しかし、それは私たちがそれらを扱うことに慣れておらず、IPv4アドレスの場合のように非常に低いレベルでそれらが何を意味するのか理解していないからだと思います。慣れるまでには少し時間がかかると思いますが、どこかから始めなければなりません。

覚えておくべきもう1つの重要なことは、IPv4アドレスは32ビット数であり、IPv6アドレスは128ビット数であることです。ルーターがルーティングまたはファイアウォールでフィルタリングする場合、ルーターはその番号に基づいてフィルタリングを行います。人間がその数を表示することを選択する方法は完全に恣意的であり、ほとんどは単なる伝統です。したがって、この電子メール全体は、人間がこれらの数字を表すことをどのように選択するかを説明しています-マシンは気にしません、それは彼らにとってすべてのビットです。

IPv4アドレスは32ビットまたは4バイトです。私たちが「実際の」IPアドレスと考えるのは、そのビット文字列を表し、ビットを4つの8ビットグループに分割し、各8ビットを10進数として表し、これらの10進数を分離するための標準となった方法です。期間。したがって、ランダムなIPアドレス172.30.154.249を使用します。ルーターがこのIPアドレスについて「考える」とき、ルーターは実際には次のように考えます。

10101100000111101001101011111001

これを私たち自身の形に翻訳することができます:

10101100 = 172

00011110 = 30

10011010 = 154

11111001 = 249

これらが純粋な10進数として書かれているのを見る場合もあります。

10101100000111101001101011111001 = 2,887,686,905

このフォームを故意に使用する人はほとんどいませんが(*)、IPv4アドレスを書き込むための歴史的に有効な方法です。実際、このフォームは1982年にSMTPを定義したRFC821で使用されています。DNSを使用する代わりに特定のマシンにメールを手動でルーティングする場合は、2つの異なるタイプのリテラルを使用できます。 1つ目は、角かっこで囲まれたおなじみの「ドット付きクワッド」形式( "user @ [172.30.154.249]")でした。 2つ目は、ポンド記号( "user @#2887686905")で始まるIPの10進形式を使用することでした。

上記のすべては、IPv4アドレスがどのように機能するかについての知識をIPv6アドレスに変換するためのフレームワークを提供するためだけのものでした。 IPv4が32ビットの数値であるように、IPv6アドレスは128ビットの数値です。 ARINはMYAWESOME COMPANY(**)にIP範囲2311:FD67/32を割り当てました。使用例を示すために、IP 2311:FD67 :: AC1E:9AF9を使用します。

したがって、そのip6を表すビット文字列は次のとおりです。

00100011000100011111110101100111000000000000000000000000000000000000000000000000000000000000000010101100000111101001101011111001

これらのビット文字列をIPv4ビット文字列と同じように表現すると(各1バイトのチャンクを10進数に変換し、それぞれをピリオドで区切る)、次のようになります。

35.17.253.103.0.0.0.0.0.0.0.0.172.30.154.249

それにはいくつかの問題があります。 1つ目は、ファンキーなIPv4番号のように見えることですが、これは良くありません。これらを確実に区別する方法が必要です。もう1つは、それがlotの情報、多くの数、および多くの空白スペースであるということです。したがって、両方の問題は、異なる区切り文字(period(。)の代わりにcolon(:))を使用し、10進数ではなく16進数でバイトを表すことによって解決されます。 IPv4がピリオド付きの10進数で表される8ビットチャンクを分離する場合、IPv6はコロンで分離された16ビットチャンクを分離します。したがって、IPv6の例のIPの内訳は次のとおりです。

0010001100010001 = 2311

1111110101100111 = FD67

0000000000000000 = 0

0000000000000000 = 0

0000000000000000 = 0

0000000000000000 = 0

1010110000011110 = AC1E

1001101011111001 = 9AF9



2311:FD67:0:0:0:0:AC1E:9AF9

これにはまだ多くの空白が含まれているため、ゼロの最大の文字列を省略して二重コロンで表すことができる余裕があります。したがって、上記のIPは次のよ​​うに記述できます。

2311:FD67::AC1E:9AF9

これはあまり見たことがありませんが、理解しているように、最後の32ビットをプレフィックス付きのドット付きクワッドとして記述できるようにするための適切な規則もあります。これにより、IPv4からIPv6に移行するときにレガシーアドレスを簡単に認識できます。 。したがって、おそらくお気づきかもしれませんが、私のIPv6の例のアドレスは、私のIPv4の例を完全に構成するのと同じ32ビットで終わります。これは、このスタイルで書くときに特に役立ちます。その場合、私のIPv6アドレスは次のようになります。

2311:FD67::172.30.145.249

IPv6を使い始めたところに戻るために、2311:FD67/32が割り当てられていることを説明しました。/32は、IPv4アドレスの場合と同じようにビットマスクです。これは、本質的に、作成できるIPv4アドレスの128ビットの最初の32ビットが静的に割り当てられていることを意味します。 2311:FD67は32ビットであるため、その範囲から作成するすべてのIPアドレスはそれで始まります。

別の言い方をすれば、172.17/16が「172.17.0.0と172.17.255.255の間のすべてのIP」と考えることができるのと同じように、2311:FD67/32は「2311:FD67:0:0の間のすべてのIP」と考えることができます。 0:0:0:0および2311:FD67:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF "。

IPv6への移行には長い時間がかかると思いますが、この説明が、IPv6の使い方や参照をより快適に行えるようになることを願っています。

繰り返しになりますが、ここで話しているのは、文字通りIPv6アドレスを書き留める方法だけであることを理解することが非常に重要です。ルーティングなどの番号付けスキームには、まだ十分に把握していないインテリジェンスがたくさん組み込まれているようです。そのため、現時点で対処できるのは、次のようになります=)。

(*)以前にいくつかのソフトウェアデバッグで10進数のIPv4表現を見たことがありますが、それは間違いまたは怠惰であったとほぼ確信しています。Cコードでは、32ビット整数を以前よりも速く印刷する方がはるかに簡単だったと思います。印刷用にドット付きクワッドをフォーマットします。

(**)会社名とプレフィックスを変更しました

39
jj33

これをチェックしてください:

ハリケーンエレクトリックフリーIPv6認証

5
Ethos

IPv6ネットワークの実践を理解するのに役立つ本を少なくとも3冊提案できます。

  1. IPv6を理解する、第2版-Microsoft Press
  2. 実際のIPv6-Springer
  3. IPv6への移行-Wiley

あなたはWindowsの人なので、最初の本はMicrosoftWindowsでのIPv6実装の決定的なガイドだと思います。 2冊目と3冊目はIPv6の実践的な経験を積むのに良いです。

2
affanzbasalamah
2
l0c0b0x