FreeBSD 使ってみませんか? Windows サーバよりずっといいですよ :)
PR

ipconfig IPアドレス情報取得編

ファイバインターネット
記事内に広告が含まれています。

別のページにも書きましたが、今インターネットを使っていないという方はほぼいないということができます。では今使っているインターネットが問題なく正常に動いているとどうしていうことができるでしょうか?このページでは、ネットワークが正常に動いていると各種ネットワークツールがどのように動くかを見てゆくことで正常性を確認できるようになってゆきましょう。

パソコン?

さて、パソコンのネットワークがどのようになっているのかを見てみましょう。でも、パソコンって何?STATCOUNTERによりますと、全てのコンピュータプラットフォームを見た場合、世界で一番使われているOSはAndroidとなっており、Windowsは2位、そして、iPhoneのiOSが3位ということです。日本国内を見た場合でもWindowsが1位で、iOS、Androidと続きます。AndroidやiOSはケータイ電話のOSで、ほとんど変更できる余地がありませんので、ここでいうパソコンをWindows PCに限定してご説明します。

ipconfig

ネットワーク管理者がトラブルレポートをもらった時にまず最初に要求する情報がipconfigです。コマンドプロンプト上でipconfigに/allオプションを付けてもらう事が多いです。こんな感じで表示されます。大人の理由でアドレスの一部は見えないようにしています。これは私が実験用に使っているWindows 11 Proのコマンドプロンプトで実行した結果です。この情報から、IPv4とIPv6の両方が使われていることがわかります。日本語OSをお使いの場合は日本語で表示されている場合もあります。

もしWindowsドメインのメンバーPCであると、プライマリDNSサフィックスにドメイン名が入っていることがあります。それと、ラップトップPCを使っている場合はイーサネットアダプターの他にワイアレスLANアダプターがあると思います。それら以外にも、ネットワーク関係がデフォルトであると、ソフトウェアインターフェースのHyper-VのインターフェースやVMwareインターフェースもあるかもしれません。

さて、これらの情報は手動でセットするわけではなく、パソコンをネットワークに接続すると接続したネットワークから自動的に配布される情報をそのままセットしたり、その情報を基にして計算してセットしたりします。つまり、ネットワーク管理者は使用しているネットワークを熟知していて、そのネットワークに最適なパラメータを接続されるパソコンに対して配布するように設定します。通常会社組織であればこのような業務にあたる専任のネットワーク管理者、そうでなくとも情報システム部やITのサーバー管理者が兼務していることもあるでしょうし、それらと契約した委託業者などが任に当たるわけですが、問題の多くはそれら専任者の問題ではなく、一般ユーザが何気なくつないでしまったWiFiなどの機材により引き起こされたりするものなのです。我々ITの世界ではシャドーITと呼んでおり、その取り扱いは結構難儀するのです。これを一般家庭に置き換えてみますと、ISPから正しいネットワーク情報を取得できるようになっているのに、家庭内に増設したWiFiなどのネットワーク機材が思わぬ問題を引き起こしてくれて、ネットワークの動きが全体的に速度が遅かったり、クリック直後の反応だけが遅かったりアクセスの遅いサイトと速いサイトが明確に分かれたりと、千差万別になります。

一番厄介なのが問題を問題と認識できていないことも多々あるということです。例えば1G回線が100Mでしか動いていないのに50Mの動画が見れているから大丈夫!使っている本人からすると大丈夫なんでしょうが、見る人が見ると、回線の月額が5000円とすると、毎月4500円をどぶに捨てている勘定になります。ネットワークの知識がないとこんなことはいとも簡単に起こりうることです。

IPv4アドレス

まずは、何も設定されていないネットワークにパソコンをつないだ時のipconfigの出力を見てみましょう。こんな感じになります。

では、このipconfigから何がわかるでしょう?まず、この結果からこのパソコンではIPv4とIPv6両方を使うことができる設定になっていることがわかります。Link-Local IPv6 Addressは自分のネットワークインターフェースが持つ情報だけで計算しますので、ISPルータなどが何も設定されていなかった場合や、そもそもISPルータが無い場合などもこのアドレスだけは存在することになります。同じことがIPv4アドレスでもいうことができます。通常IPv4アドレスはネットワークからもらうアドレスなのですが、このアドレスを管理している機器、例えばISPルータが無い場合や何も設定されていない場合は、169.254.xxx.yyy/16のアドレスを持つことになります。ですので、IPv6のLink-Localアドレスしかない場合はIPv6のネットワークの設定がされていないか、IPv6ネットワークが利用できないネットワークであるということができます。IPv4アドレスが169.254.xxx.yyyになっている場合はIPv4ネットワークの設定がなされていない場合や、IPv4が使えないネットワークであるということができます。ただ、IPv6しか使えないネットワークはごく稀にしかないので、IPv4の設定がなされていないと考える方が妥当です。

ちょっと実験をしてみましょう。IPv6とIPv4がいずれもう動いているパソコンでIPv6だけを使わないようにしてみましょう。ipconfigはこんな感じになります。

このパソコンが持っているIPv4アドレスは192.168.0.240でサブネットマスクが255.255.255.0となっています。この意味はつなぐ先のIPv4アドレスが192.168.0.xxxの場合は直接つなぎに行きますが、それ以外のIPv4アドレスにつなぎに行くときはデフォルトゲートウェイの192.168.0.1に対して送り付けて転送をしてもらいます。時々大きなオフィスでサブネットマスクが255.255.254.0になっていたり、255.255.252.0になっていたりすることがあります。これらのアドレスやサブネットマスクは10進数で見ているとわかりにくいですが、2進数で見るとわかりやすくなります。255.255.255.0と255.255.254.0の違いはネットワークにつなぐことができるパソコンの数が倍になるということを意味します。同じことが255.255.254.0と255.255.252.0の間でもいうことができます。なので、255.255.255.0と255.255.252.0のネットワークを比べると、つなぐことができるパソコンの数は4倍になります。このサブネットマスクはネットワーク管理者がオフィスの大きさを考慮して自由にセットできます。逆にネットワーク管理者が、このオフィスは小さいと判断した時には、サブネットマスクが255.255.255.128や255.255.255.192になっている場合があります。先ほどとは逆に255.255.255.128の場合はつなぐことのできるパソコンの数は255.255.255.0の場合の半分になります。255.255.255.192の場合はさらに半分になります。先ほどのIPv4だけのipconfigで、サブネットマスクが255.255.255.128であったと仮定しましょう。そうすると、このパソコンのIPアドレスの192.168.0.240とデフォルトゲートウェイの192.168.0.1は別ネットワークのアドレスとなります。ですので、このパソコンが192.168.0.1につなぎに行く場合は別のデフォルトゲートウェイアドレスが同じネットワーク内に必要となります。つまり、このパソコンはネットワークからもらったデフォルトゲートウェイのアドレスはデフォルトゲートウェイになり得ないアドレスなので、インターネットへ接続することはできないということになります。手動でセットする場合もそのことを考慮してセットする必要があります。IPアドレスとデフォルトゲートウェイは同じネットワーク内に無いと、他のどこにもアクセスすることができなくなります。

技術的にはIPv4アドレスは、その長さが32ビットと決まっています。わかりやすくするために、8ビットずつ区切って、ドットでつなぎます。

IPv4アドレス フォーマット

8ビット.8ビット.8ビット.8ビット

符号なし8ビットの数字をドット ‘.’ で区切った4つの数字の組み合わせで表現する。符号なしの8ビットの数字なので、0から255までの値を取り得ます。例えば、10.100.2.55、192.128.64.32等々。このIPv4アドレスだけではどこまでがネットワーク番号なのかがわからないので、通常次のサブネットマスクと一緒に使われます。例えば、10.100.200.5/255.255.255.128あるいはサブネットマスクをビット数だけで表現して、10.100.200.5/25などとします。

IPv4サブネットマスク

8ビット.8ビット.8ビット.8ビット

IPv4アドレスと同じ32ビット長であらわされます。IPv4アドレスと異なるのは、一番左から何ビットが1となっているかが重要となります。そして、1が立っているところがネットワークアドレスとなります。よくあるサブネットマスクは255.255.255.0や255.255.0.0など、8ビットの区切りで切れの良い数字となることが多い。歴史的に切れの良い数字となることが多いだけで、そうである必要はありません。なのでこれらのネットワークの半分の大きさでよい場合などは255.255.255.128や255.255.128.0なども使われます。逆に倍の大きさが必要な場合は255.255.254.0や255.254.0.0なども使われます。

IPv6アドレス

IPv4アドレスはインターネット創設期より使われてきたホスト識別番号なのですが、当時はこの32ビットのアドレスをいつまでも使い続けられると思っていました。時は流れてインターネットも進化し、何でもかんでもインターネットにつながる時代が訪れ、32ビットのIPv4アドレスでは足りなくなることが現実のものとなる時がすぐそこに見えてきました。そこで新たに生み出されたのがアドレス長128ビットのIPv6です。先ほどのIPv4アドレスの考え方と同じで、ネットワーク番号が1ビット少なくなると、ネットワークの大きさは倍になります。ですので、IPv6で取り扱えるネットワークは、現在の全IPv4アドレス空間の2の96乗倍の大きさとなります。ほぼ無限にアドレスを使うことができます。IPv6アドレスをIPv4と同様にドットで分けた10進数て表現すると長すぎるし、わかりにくいので、IPv4とは異なった表現をします。パソコンでIPv4だけを使わないようにしたときのipconfigはこんな感じになります。こちらも大人の理由でアドレスの一部を見えなくしています。

通信に使えるアドレスは、このipconfigには3つ見えています。fe80で始まっているリンクローカルIPv6アドレスは、そのアドレスを使って同じネットワークにある他のIPv6機器に限って直接通信するアドレスとして使用できます。もしこのパソコンにネットワークカードが複数あると、他のネットワークカードでも同じリンクローカルアドレスを使うことになる可能性もあります。ですので、リンクローカルアドレスを使用するときはアドレスの後にネットワークインターフェース番号を付けて使用します。この例だと、fe80::30c7:cc45:d50e:4058%7となっています。インターフェース番号7番のカードに割り振られたリンクローカルIPv6アドレスfe80::30c7:cc45:d50e:4058という意味になります。デフォルトゲートウェイにもリンクローカルアドレスが使われています。

そして、一時IPv6アドレスはグローバルアドレスで、本当のIPv6ネットワークアドレスと同じネットワーク番号からランダムに割り当てられて全ての外向きの通信に使用されます。この一時アドレスはコロコロと変わってしまいますので、長時間接続が切れては困るような場合、例えばLinuxサーバに対してSSH接続を行って長時間に渡ってメンテナンスを行う場合などは、この一時アドレスをなくしてしまってメインのIPv6アドレスだけを使用したりします。この一時IPv6アドレスはメインのIPv6アドレスを隠してしまうために使用しますので、妥当な動きであるということができます。

そして、IPv6アドレスは非常に長いアドレスなので、IPv4アドレスとは異なった表記を用います。

IPv6アドレス フォーマット

16ビット:16ビット:16ビット:16ビット:16ビット:16ビット:16ビット:16ビット

これらの16ビットの数値は10進数だとまだ長くなりすぎるので、16進数を使用します。例えば、2600:9000:2047:b400:9:73fc:b893:5ec1などと表現します。これでも十分長すぎるので、特別なルールが使われます。時々、”::”とコロンが連続していることがあります。この意味はそのコロンのある位置にある数字は全てゼロであるということを意味します。例えば、2600:9000:2047:b400::1と書かれていると、それは2600:9000:2047:b400:0000:0000:0000:1であることを意味します。もっと極端な例だと、::1というアドレスが存在します。これは自分自身という意味で、IPv4だと127.0.0.1に相当しますが、どのネットワーク機器にも存在するIPv6アドレスです。先ほどのルールを適用すると、0000:0000:0000:0000:0000:0000:0000:1という意味になります。ただし、::は1つのアドレス内で1回しか使えません。なので、こんなことはできません。2600::b400:9::5ec1。連続するゼロの数が一意に決まらないからです。

IPv6 プリフィックス長

IPv4アドレスではサブネットマスクでどこまでがネットワーク番号かを表したのですが、IPv6では64ビットがネットワーク番号であるネットワークが一般組織に割り当てられます。ですので、社内で複数のネットワークを持っている場合は、プリフィックス長を65ビット以上にしてルーターでネットワークを分割します。65ビットにすると、2つのネットワークを構成できますし、66ビットにすると、4つのネットワークを構成できます。::/64 の場合例えば、2600:9000:2047:b400::1と2600:9000:2047:b400:8000::1は同じネットワークにあり、直接通信することができます。一方、2600:9000:2047:b400::1と2600:9000:2047:b401::1は別ネットワークということになり、ネットワーク内のデフォルトゲートウェイ経由で通信する必要があるということになります。多くのネットワーク管理者は ::/96 に分割することが多いと思います。そうすると、社内でのネットワーク番号に32ビット、ホスト番号に32ビット使うことができます。1つの企業にとって、十分すぎる大きさのアドレス空間のはずです。思い出してください、IPv4の全アドレス空間が32ビットでした。

IPv6 or IPv4 ?

さて、IPv6ネットワークですが、まだまだIPv4アドレスが使えるサイトが多く、ほとんどの場合IPv4でアクセスすることができます。これが原因かなのかどうかはよくわからないのですが、IPv6が使えないネットワークを散見します。最近一番驚いたのは、AUの普通のケータイ電話で4Gや5Gネットワークにつないだ時に利用できるのはIPv4のみであったことに驚きました。少し前までiPhoneの設定アプリで自身のIPv4やIPv6アドレスを確認することができたのですが、いつからか覚えていませんがiOSをアップデートしてから、細工なしで確認することができなくなりました。以前はソフトバンクのケータイだったので、IPv4とIPv6のデュアルスタックで動いていましたし、デュアルスタックが普通と思っていました。ですので、AUケータイではIPv6しかアドレスが無いサイトは見ることができません。例えば、こんなサイトです。

このサイトはIPv6のアドレスしか持ちません。ですので、AUのiPhoneでWiFiを切ってこのサイトを開くと、こうなります。

アドレスがIPv6のみとなっているだけで、つながると普通にgoogle検索できるサイトなのですがAUケータイでは見れません 🙁 この記事を書いている段階で、全ウェブサイトの46%程度がIPv6アドレスを持っているということです。IPv6のネットワークはまだまだガラガラなので渋滞知らずなのですが、多くのフレッツ光インターネットではIPv4を使ってIPv6をカプセル化して使えるようにしています。なので、遅いIPv4ネットワーク上で動くのでカプセル化する分だけ余計に遅くなります。しかも、全てのIPv4とIPv6デュアルスタックのネットワーク機器はデフォルトでIPv6の優先度が高くなっています。つまり、IPv4とIPv6両方使えるネットワークからのアクセスはIPv6から使われるということです。独自光回線インターネットだとカプセル化されているわけではなく、IPv4と同じように物理インターフェースに直接IPv6アドレスが割り当てられます。フレッツ光でもPPPoEではなく、IPoE回線の場合はIPv6ネットワーク上でIPv4をカプセル化しますのでPPPoEよりはるかにましです。しかし、まだまだIPv6でアクセスできるサイトは50%以下なので、IPv4サイトへのアクセスは相変わらずとなります。そろそろ光回線の見直しの時期ではないでしょうか?

光回線の選び方

20年近く外資系グローバル企業でネットワーク管理者をしていた私の目の映る日本の光インターネット回線