ひいらぎの日記

デザインはまた時間のあるときにやります!

自宅でルーターを作りたい!その3 〜いろんなアドレス〜

ymho99.hatenablog.jp

前回、前々回とRouting tableについて調べて、なんとなく意味が分かるようになった。 今回はもうちょっと幅を広げてルーターについて調べてみることにする。

3 Minutes Networking No.28

まず、データを転送するとき、宛先IP・MACアドレス、送信元IP・MACアドレスの4つが必要なのだそう。ここでまた一つ疑問。IPアドレスMACアドレスの違いは何なのだろう?両者とも、ぼやっとしたイメージでしか理解してこなかったなあ。

改めて調べてみよう。

IPアドレス

同じサイトでIPアドレスについてまとめられているページがあった、ここを参考にしよう。

3 Minutes Networking No.21

論理アドレスの代表格だそう。論理アドレス?これもよくわからない…調べてみた。論理アドレスの他には、物理アドレスというのがあって、これと対比して考えてみよう。 物理アドレスは、ユニークなビット列で、そのアドレス自体にはなんの意味も持たないらしい。対して論理アドレスはアドレス自体に「何処の・誰」という情報が含まれているらしい。 ほうほう、違いははっきりした!

さらにその情報は「階層型」といってどんどん積み重ねていくことが可能なのか!

f:id:ymho_99:20170429200032g:plain

また画像をお借りしましたm( )m この画像でいう2番のPCなら、ネットワークA内ネットワークA1内ネットワークA1a内2番っていうアドレスになるわけで、この情報が論理アドレス自体がもっている、という理解でいいかな。

サイトを読み進めていくと、MACアドレスとの対比をしながら説明されていたので、ここで一旦MACアドレスについて調べに行くことにしよう。

MACアドレス

www.pc-master.jp

こちらのサイトに例を交えてわかりやすく解説されていました。 はじめの一文でなるほどってなった。

MACアドレスとは、 ネットワーク機器やネットワークアダプタに付いている固有の識別番号です。 LANで接続されている機器やLANの増設アダプタには製造段階で必ず付けるようになっています。 MACアドレスは 0~9、A~Fの16進数で、A0:B2:D5:7F:81:B3 のように表されます。 最初の A0:B2:D5 がベンダーIDといい メーカー名になります。 次の 7F が機種ID、最後の 81:B3 がシリアルIDです。 機器の側面に A0B2D57F81B3 のように連続して記載されていることもあります。 固有の識別番号なので グローバルIPアドレスと同じく 組み合わせは重複しないようになっています。

なるほど、機器が製造されたときに与えられた番号なんだ!PC、ルータ、モバイル端末、なんとハブにまで、MACアドレスが割り当てられているみたい。 ネットワークに入ることができる機器には必ずMACアドレスがあるんだ!

このアドレスは永久的に不変で、IEEEという組織がつけたベンダー(企業)IDとそのベンダーが定めた識別番号によって成り立っているから、すなわちユニークなんだ。この値には通信を行う上での情報はない だからこれは物理アドレスなんだ。

とりあえず、MACアドレスについて理解できたので先程のページに戻って読み進める。

MACアドレスはすでに定められているのに対し、IPアドレス論理アドレス)はネットワーク管理者が自由につけることができるらしい。 また、MACアドレスは機器に対して1つなのに対し、IPアドレスは各機器のネットワークの接続点ごとにつけられているのか。

更にまとめると、

  • IPアドレスネットワークの各機器の接続点ごとにつけられ、例えば、同一ネットワーク内においてNICを取り替えても接続点のIPアドレスは同じ値を持つ。ただし、所属するネットワークが変わると、IPアドレスは変化する。

  • MACアドレス各機器に与えられているユニークな名前のようなもので、NICを取り替えれば値が変わってくる。なんとなく、物理アドレスの「物理」のイメージがつかめた気がする。

更にその下を読み進めます。 論理アドレスは「どこの+だれ」という形になっているらしい。もうちょっと詳細にいえば、「所属するネットワークの番号+ホストの番号」で、当然、所属するネットワークの番号は、接続されているすべてのネットワークでユニークでなければならず(でないと宛先が複数あっておかしなことになるからだと思う)、ホストの番号は所属するネットワーク内でユニークあればいいことになる。

とある2つのネットワークが存在して、接続されているとき、両者の名前は同じであってはならない。 そして、例えば「A」と「B」というネットワークが独立していて、つながっていない場合、それぞれのネットワーク内に「C」という同名のホストが存在してもよいという解釈で合ってるかな。

結局、論理アドレスはすべてユニークであればよいことになるんだなあ!(「C」という同名のホストがあったとしても「所属するネットワークの番号+ホストの番号」で表したときにネットワークの番号である「A」と「B」は違うから、組み合わせるとこれらの論理アドレスは同一でなくなる) これ、足りなくならないのかなと思うけど考えないでおこう…

IPアドレスMACアドレスの違いを理解できたので、本題であるデータのやり取りについて考えていこう。

3 Minutes Networking No.21

このサイトを読み進めていくと、IPアドレスについての項があって、読んでみると、

今現在使われているバージョンは4で将来的には6に変わる

という文に目がついた。これがIPv4とかIPv6とかを表しているのかなあ? となるとこの両者の違いを調べずにはいられないので、ぐぐってみる。

IPv4IPv6

http://www.ncom.ad.jp/images/ipv4v6.pdf

ここにわかりやすい絵と解説がありました! そもそも、IPアドレスは2進数で、terminalとかで見れるやつは10進数16進数に直したものらしい。基数変換はもう学校で習ったのですぐ理解できた。 例えば「192.168.0.1」を2進数に直すと「11000000.10101000.00000000.00000001」となる(ここでのピリオドは区切り!)。 これはバージョン4で、4桁の数字が使われ、32ビットで表現されている。先程考えた、どの範囲でユニークであればよいか〜とかを踏まえて、このバージョンでは最大約42億台のコンピュータが利用できることになるらしい。 対してバージョン6は16桁の数字が使われ128ビットで表現されている。例えば、「2404:6800:8003:0:0:0:0:6a」は16桁。これは桁数が4倍になったので、424億台のコンピュータが利用できることになるらしい。 コンピュータが増えてきて、「ユニーク」に限界が来たからなのかな?とりあえず、そう思うと、さっき浮かんだ「足りなくなるのでは?」という不安がまた当分改善されそう。

そんなことを考えながらもう一度「IPv4IPv6」の検索結果一覧を見ていると面白いページを見つけた。

7 インターネット10分講座:IPv6 - JPNIC

このページでは両者の違いについてこう書かれていました。

具体的な話としては、

グローバルIPアドレスの数が多い

セキュリティ機能を標準で装備している

エンドユーザーの設定が簡単

の3点が大きな違いです。ほかにも色々と違いはあるのですが、これらに比べるとあまり大きな差ではありません。IPv6にしかできないこと、というのはほとんどありませんが、IPv4ではオプション扱いだった機能が標準装備とされ、便利になりました。

グローバルIPアドレス」?今まで使ってきたIPアドレスという言葉と何が違うのだろう…ここでまたこのワードで検索をかける。

www.pc-master.jp

このページでわかりやすく解説がされていました。 まとめてみると、IPv4アドレスが枯渇してゆき、1980年代から爆発的なコンピュータブームにより、42億のアドレスが足りなくなるのではないかという懸念がされるようになり、グローバルIPアドレスプライベートIPアドレスという区別をしようということになった。

グローバルIPアドレス

契約しているプロパイダにつき1つ割り当てられるもので、固有のものであり世界中で重複することはない。モデムやルーターの電源を入れなおすとグローバルIPアドレスが変わることもある。

プライベートIPアドレス

1つのネットワーク内で機器を識別するためのIPアドレス、で各ネットワーク内で重複することはないが、独立した別のネットワークでは同名のものが存在する可能性があるもの。

家にあるプロパイダと契約しているルータが1つあるとすれば、グローバルIPアドレスは1つで、そのルータに接続されている各PCに対して与えられているのがプライベートIPアドレス(あくまでのルータとPC間、ルータとルータ間などでやりとり)、という解釈でいいかな。

このサイトにはこんな感じで書いてあった。

グローバルIPアドレス − @IT ネットワーク用語事典

グローバルIPアドレスとは、インターネットで相手と通信するために持つ、ほかのアドレスと重複しない一意のIPアドレスのこと。TCP/IPでは、通信相手を特定してIPパケットを送信したり、ルーティングするために必要となる。

 グローバルIPアドレスが登場した背景には、IPv4IPアドレス枯渇問題がある。IPv4IPアドレスは32ビットで、おおよそ43億個のIPアドレスを割り当てることができる。しかし、1980年代以降にインターネットが爆発的に成長した結果、IPアドレスを必要とする端末が急増し、43億個だけではいずれ枯渇するのではないかという議論が持ち上がった。

 そこで、すべての端末がインターネットからアクセスできる必要はないという概念により、LAN内のコンピュータには一定の範囲のIPアドレスをプライベートIPアドレスとして割り当てる方針が立てられた。そして、そのLANとWANを接続する機器にのみグローバルIPアドレスを割り当てる形が確立されたのだ。

なるほど、ところでLANとWANって何が違うんだろう?家のルーターの裏をみるとLANとWANの差込口がある。さらにさらに寄り道になるけど、気になったので調べよう。

www.wanichan.com

LAN

Local Area Networkといって、ローカルなエリアでのネットワークという意味らしい。つまりこれが、さっきのプライベートIPアドレスが使用される範囲ということか!

WAN

Wide Area Networkといって、遠く離れた場所がつながっているネットワークらしい。なるほど、これがグローバルIPアドレスでやり取りされるareaということね!

だから、ルーターのWAN口は1つでLAN口はたくさんあるんだ!

自分のグローバルIPアドレスを確認するサイトに出会った。使うかわからないけど一応ここにリンクを貼っとこう。

www.pc-master.jp

何の話だったかな?そうだ、IPv4IPv6の違いを調べていたんだった。割りと理解できたので、例のサイトに戻ってさらに読み進めよう。

IPv4アドレスの例で、さっきもあげた 「192.168.0.1」(16進数)、「11000000.10101000.00000000.00000001」(2進数)

もともとIPアドレスは「どこの+だれ」を表していると知りましたが、この32ビットの数列を16ビットずつに2つに区切ると、まさに前半が「どこの」、後半が「だれ」を表すようになっているらしい。

ネットワーク番号:1100000010101000 ホスト番号:0000000000000001

少し疲れてきたのでここまでにしとこう… 今日はルーターの動作を知るつもりだったけど様々なアドレスについての勉強がメインだった。 確実に理解が捗っているのでこの調子で頑張ろう〜

P.S.

IPv4IPv6には相互互換がないらしい…互換性を持たせる方法的なものがいくつか見ましたが、こちらについては別の機会に触れよう!と思ったことを忘れないようにここに書いておきます。