Raspberry pi 基礎的ネットワーク・コマンド (1) ping

 pingはピンを打つというコマンドです。現在、IPv6(一般的には使われていないがほとんどすべての機器が対応している)と、従来からそして現役のIPv4Internet Protocol version 4)の両方に対応しています。

pingはどういうときに使うのか

 自分の機器がネットワークにつながっているかを確かめるときに使います。家庭内LANや企業LANでは一般的にIPv4のプライベートIPアドレスが使われます。中小企業であれば、192.168.xxx.xxxです。部署が多いところや大企業では10.xxx.xxx.xxxが使われます。最後のxxxが1は、多くはルータなどに割り当てていることが多いので、

ping 192.168.xxx.1

とすれば、何らかの応答があるはずです。自分自身のIPアドレスを知るには、

ifconfig(Linux、Mac)

ipconfig(Windows)

 次のように、家庭内LANにWindows10 PCとラズパイがつながっているとします。どちらのマシンも、ルータに入っているDHCPサーバからIPアドレスが割り当てられています。
 最初に、ifconfig/ipconfigでふられたIPアドレスを確認します。

 ラズパイからPCに対して、

ping -4 192.168.111.110

を実行します。-4はIPv4を指定しているオプションです。

 Windows10のコマンドプロンプトから、

ping -4 192.168.111.108

 互いにつながっていることが確認できました。IPアドレスは、いつも同じとは限りませんが、マシン固有のMACアドレスは不変です。arpコマンドで知ることができます。

 192.168.xxx.xxxなどはプライベート・アドレスと呼びます。ルータの外側はグローバル・アドレスが振られています。通常、IPアドレスでアクセスはせず、名前を使います。名前とIPアドレスを一致させているのは、インターネット上にサービスをしているDNS(Domain Name System)というシステムです。

ping www.intel.com

 Windowsは、デフォルトで4回実行すると終了します。

 ラズパイは、デフォルトだとずっと実行するので、CTRL-Cで中断します。

もう一つの名前でpingを実行

 ラズパイで、

hostname

 Windows10から、

ping raspberrypi.local

  このように、hostnameがわかっていれば、.localをつけると、家庭内LANから探し出してくれます。DHCPサーバによって振られたIPアドレスが不明なときに便利に使えます。

 Windows10などではmDNS、MacOSではBonjour、Linuxではavahiが同じ機能を担当しており、IPアドレスとホスト名の名前解決をします。ラズパイが複数台あってどれもraspberrypiであっても、順番に数字をつけてくれ、アクセスできます。

自分自身のアドレス

 ラズパイでifconfigでloが見えています。IPアドレスは127.0.0.1の固定です。httpサーバやNode-REDサーバを動かすときに、自分自身を指定するときに使えます。

すでに割り当てるIPv4アドレスはない

 2019年の暮れあたりで、IPv4アドレスは枯渇しました。すでに128個のグローバルIPアドレスを割り当てられていると、プロバイダが64にしてくれないかというように、すでに、割り当てられたところから回収して、新規な割り当てに回しています。

 IPv4のアドレスを大量に持っていてほとんど使っていない範囲を古い団体が返却すると、割り当てられるアドレスが発生します。

 このように枯渇を見越してIPv6アドレスが制定され、ほとんどの機器やOSに実装されていますが、普通に使っているのはIPv4です。移行は行われていません。

ifconfigは非推奨

 いつの間にか、コマンドが使えなくなるのは世の中で普通に起こっていることです。ラズパイはifconfigが使えるLinuxですが、現在は非推奨なので、ipコマンドを使うほうが、長く使えるかもしれません。

ip a(もしくはaddr、address)

でifconfigと同じ情報が得られます。

 arp -aは、

ip n

で同じ情報が得られます。