現在ネットワークと言う場合には通常はTCP/IPプロトコルによるネットワークのことを指す。インターネットが代表的なものである。その中に自分がどのようにして加わっているのかを理解するためにはTCP/IPの知識が当然必要になる。しかし、初めのうちは表面的なことだけでも良いので天下りに覚えておいて、徐々に理解を深めていけばよい。ここでは、自分の端末の状態を見ることから始める。
このコマンドはインターフェイスのコンフィグレーションを設定したり、見たりするコマンドであり、コマンド名もその略となっている。通常は管理者が用いるコマンドであり、一般ユーザは当然設定変更はできない。しかし、現在の端末の状況を見ることも必要であるので実行して試してみよう。
ただし、コマンドは/sbinディレクトリにあり、一般ユーザはコマンドのパスを持っていない。よって、コマンドの前に/sbinをつける必要がある。なお、システムによっては、/sbinのコマンドを一般ユーザに解放していない場合もあるので注意すること。以下は実行例である。
$ /sbin/ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:1040 errors:0 dropped:0 overruns:0 frame:0 TX packets:1040 errors:0 dropped:0 overruns:0 carrier:0 Collisions:0 eth0 Link encap:Ethernet HWaddr 00:00:E2:1F:BA:C2 inet addr:172.16.23.1 Bcast:172.16.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:818667 errors:0 dropped:0 overruns:0 frame:0 TX packets:70673 errors:0 dropped:0 overruns:0 carrier:0 Collisions:0 Interrupt:3 Base address:0x9000loはループバックアドレスと呼ばれ、端末自身を指す。実際のインターフェイスは現在はeth0で表されるEthernetアドレスであり、ハードウェアアドレスがMACアドレスと呼ばれるボード固有の番号である。上の例では2行目にIPアドレス、ブロードキャストアドレス、ネットマスクが示されている。4行目以下に現在の状態が示され、最後の行にIRQが示されている。
routeコマンドを実行すると、現在設定されているネットワークに関して一覧が表示され、少しおくれてゲートウェイを探索した結果が表示される。ifconfigコマンドではLANのボードが付いていればeth0の情報は表示されるが、実際にゲートウェイ(情報の出入り口)に繋がっているかは分からない。routeコマンドにより、ゲートウェイが表示されれば繋がっていることが確認できる。数秒以上待ってもdefaultの行が表示されない場合はネットワークに不具合がある。
$ /sbin/route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface localnet * 255.255.0.0 U 0 0 39 eth0 127.0.0.0 * 255.0.0.0 U 0 0 2 lo default 172.16.3.254 0.0.0.0 UG 1 0 33 eth0
netstatはコマンドの字のごとく、ネットワークの状態を見るコマンドであるが、これが重要になるのは、複数のLANボードを持っている場合などにどのボードがどのネットワークに対応し、ゲートウェイに対応するのか、確認するような場合である。今の場合は、eth0しか、インターフェイスが無いので、情報はrouteコマンドと同じになる。
$ netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 172.16.0.0 0.0.0.0 255.255.0.0 U 1500 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 3584 0 0 lo 0.0.0.0 172.16.3.254 0.0.0.0 UG 1500 0 0 eth0
pingにより、特定のホストが生きているかどうか、また、そこまでの信号の伝達時間(往復)を知ることができる。以下に私の端末から近い順にpingを行った結果を示す。なお、pingコマンドはping信号を永久に送り続けるので、適当なところでCtrl+cを押して止める必要があるので注意すること。
$ ping 172.16.24.2 PING 172.16.24.2 (172.16.24.2): 56 data bytes 64 bytes from 172.16.24.2: icmp_seq=0 ttl=255 time=0.4 ms 64 bytes from 172.16.24.2: icmp_seq=1 ttl=255 time=0.3 ms 64 bytes from 172.16.24.2: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 172.16.24.2: icmp_seq=3 ttl=255 time=0.4 ms 64 bytes from 172.16.24.2: icmp_seq=4 ttl=255 time=0.4 ms --- 172.16.24.2 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 0.3/0.3/0.4 ms $ ping 172.16.3.254 PING 172.16.3.254 (172.16.3.254): 56 data bytes 64 bytes from 172.16.3.254: icmp_seq=0 ttl=255 time=2.4 ms 64 bytes from 172.16.3.254: icmp_seq=1 ttl=255 time=1.4 ms 64 bytes from 172.16.3.254: icmp_seq=2 ttl=255 time=1.4 ms 64 bytes from 172.16.3.254: icmp_seq=3 ttl=255 time=1.3 ms --- 172.16.3.254 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 1.3/1.6/2.4 ms $ ping 192.244.219.250 PING 192.244.219.250 (192.244.219.250): 56 data bytes 64 bytes from 192.244.219.250: icmp_seq=0 ttl=254 time=3.4 ms 64 bytes from 192.244.219.250: icmp_seq=1 ttl=254 time=1.5 ms 64 bytes from 192.244.219.250: icmp_seq=2 ttl=254 time=1.5 ms 64 bytes from 192.244.219.250: icmp_seq=3 ttl=254 time=1.5 ms 64 bytes from 192.244.219.250: icmp_seq=4 ttl=254 time=1.7 ms --- 192.244.219.250 ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 1.5/1.9/3.4 ms $ ping www.tottori-u.ac.jp PING rook.zim.tottori-u.ac.jp (160.15.186.14): 56 data bytes 64 bytes from 160.15.186.14: icmp_seq=0 ttl=248 time=122.2 ms 64 bytes from 160.15.186.14: icmp_seq=1 ttl=248 time=51.3 ms 64 bytes from 160.15.186.14: icmp_seq=2 ttl=248 time=50.1 ms 64 bytes from 160.15.186.14: icmp_seq=3 ttl=248 time=113.8 ms 64 bytes from 160.15.186.14: icmp_seq=4 ttl=248 time=36.5 ms 64 bytes from 160.15.186.14: icmp_seq=5 ttl=248 time=37.0 ms 64 bytes from 160.15.186.14: icmp_seq=6 ttl=248 time=39.7 ms --- rook.zim.tottori-u.ac.jp ping statistics --- 7 packets transmitted, 7 packets received, 0% packet loss round-trip min/avg/max = 36.5/64.3/122.2 ms $ ping www.kyoto-u.ac.jp PING www.adm.kyoto-u.ac.jp (130.54.116.10): 56 data bytes 64 bytes from 130.54.116.10: icmp_seq=0 ttl=245 time=50.5 ms 64 bytes from 130.54.116.10: icmp_seq=1 ttl=245 time=166.3 ms 64 bytes from 130.54.116.10: icmp_seq=2 ttl=245 time=115.5 ms 64 bytes from 130.54.116.10: icmp_seq=3 ttl=245 time=100.5 ms 64 bytes from 130.54.116.10: icmp_seq=4 ttl=245 time=82.5 ms 64 bytes from 130.54.116.10: icmp_seq=5 ttl=245 time=69.4 ms 64 bytes from 130.54.116.10: icmp_seq=6 ttl=245 time=120.4 ms 64 bytes from 130.54.116.10: icmp_seq=7 ttl=245 time=46.4 ms --- www.adm.kyoto-u.ac.jp ping statistics --- 8 packets transmitted, 8 packets received, 0% packet loss round-trip min/avg/max = 46.4/93.9/166.3 ms $ ping www.u-tokyo.ac.jp PING www.u-tokyo.ac.jp (133.11.124.165): 56 data bytes 64 bytes from 133.11.124.165: icmp_seq=0 ttl=245 time=139.5 ms 64 bytes from 133.11.124.165: icmp_seq=1 ttl=245 time=180.9 ms 64 bytes from 133.11.124.165: icmp_seq=2 ttl=245 time=181.7 ms 64 bytes from 133.11.124.165: icmp_seq=3 ttl=245 time=114.8 ms 64 bytes from 133.11.124.165: icmp_seq=4 ttl=245 time=185.2 ms 64 bytes from 133.11.124.165: icmp_seq=6 ttl=245 time=79.1 ms 64 bytes from 133.11.124.165: icmp_seq=7 ttl=245 time=82.6 ms 64 bytes from 133.11.124.165: icmp_seq=8 ttl=245 time=165.3 ms 64 bytes from 133.11.124.165: icmp_seq=9 ttl=245 time=116.1 ms --- www.u-tokyo.ac.jp ping statistics --- 10 packets transmitted, 9 packets received, 10% packet loss round-trip min/avg/max = 79.1/138.3/185.2 ms
nslookupコマンドによりホスト名からIPアドレスを検索したり、その逆を行ったりできる。もちろん、もともとの動作は自分のネームサーバを知るためのものである。以下に例を示す。
$ nslookup www.goo.ne.jp Server: ifse1.riko.shimane-u.ac.jp Address: 192.244.218.253 Non-authoritative answer: Name: www.goo.ne.jp Address: 210.150.25.37 $ nslookup 210.150.25.37 Server: ifse1.riko.shimane-u.ac.jp Address: 192.244.218.253 Name: www.goo.ne.jp Address: 210.150.25.37
目的のホストまでどのような経路で信号が伝達されるかを知るコマンドがtracerouteである。ネット上に異常があったりした場合に確認のために利用される。これも、システム管理者が利用することを前提としているので、ユーザからはコマンドパスが通っていない。以下に例をいくつか示す。最後の合衆国大統領官邸は途中で!Aで終わっている。これは、ここで応答が禁じられていることを示している。
$ /usr/sbin/traceroute www.yahoo.co.jp traceroute to www.yahoo.co.jp (210.140.200.61), 30 hops max, 40 byte packets 1 172.16.3.254 (172.16.3.254) 1.362 ms 1.28 ms 1.339 ms 2 192.244.219.250 (192.244.219.250) 3.587 ms 3.609 ms 3.571 ms 3 192.244.220.251 (192.244.220.251) 5.294 ms 4.34 ms 4.464 ms 4 tottori-A3-0-1.sinet.ad.jp (150.99.199.49) 64.406 ms * 90.821 ms 5 kyoto-1-A9-0-2.sinet.ad.jp (150.99.199.157) 111.314 ms 57.485 ms 59.517 ms 6 tokyo-10-A7-2-1.sinet.ad.jp (150.99.107.10) 77.836 ms 125.232 ms 120.241ms 7 tokyo-5-PC1.sinet.ad.jp (150.99.170.5) 124.823 ms 172.42 ms 153.578 ms 8 210.171.224.40 (210.171.224.40) 324.829 ms 274.461 ms * 9 lcisco020-fddi2-0.tokyo1.TokyoNet.AD.JP (203.183.255.37) 154.631 ms 105.123 ms 124.46 ms 10 lcisco024-fddi2-0.tokyo1.TokyoNet.AD.JP (203.183.255.4) 80.815 ms * 113.635 ms 11 www121.yahoo.co.jp (210.140.200.61) 154.177 ms 62.451 ms 89.029 ms $ /usr/sbin/traceroute www.kantei.go.jp traceroute to www1.kantei.go.jp (210.130.160.56), 30 hops max, 40 byte packets 1 172.16.3.254 (172.16.3.254) 1.462 ms 1.308 ms 1.417 ms 2 192.244.219.250 (192.244.219.250) 3.886 ms 3.54 ms 3.499 ms 3 192.244.220.251 (192.244.220.251) 5.076 ms 4.377 ms 4.384 ms 4 tottori-A3-0-1.sinet.ad.jp (150.99.199.49) 35.912 ms 35.637 ms 32.116 ms 5 kyoto-1-A9-0-2.sinet.ad.jp (150.99.199.157) 37.912 ms 41.455 ms 37.965 ms 6 nacsis-10-A4-3-1.sinet.ad.jp (150.99.103.1) 48.958 ms 48.833 ms 49.463 ms 7 otemachi-gate-A0-0-1.sinet.ad.jp (150.100.59.2) 50.734 ms 51.517 ms 60.443 ms 8 202.232.8.97 (202.232.8.97) 60.004 ms 51.402 ms 52.938 ms 9 Otemachi-bb5.IIJ.Net (202.232.1.148) 57.745 ms 51.437 ms 58.82 ms 10 Tsuzuki-bb0.IIJ.Net (202.232.0.70) 174.239 ms 182.171 ms 239.568 ms 11 Tsuzuki0.IIJ.Net (210.130.143.10) 261.593 ms 99.161 ms 122.41 ms 12 www1.kantei.go.jp (210.130.160.56) 114.383 ms * 102.274 ms $ /usr/sbin/traceroute www.whitehouse.gov traceroute to www.whitehouse.gov (198.137.240.92), 30 hops max, 40 byte packets 1 172.16.3.254 (172.16.3.254) 1.42 ms 1.379 ms 1.416 ms 2 192.244.219.250 (192.244.219.250) 3.815 ms 3.677 ms 3.65 ms 3 192.244.220.251 (192.244.220.251) 5.296 ms 4.45 ms 4.328 ms 4 tottori-A3-0-1.sinet.ad.jp (150.99.199.49) 41.104 ms 40.453 ms 32.182 ms 5 kyoto-1-A9-0-2.sinet.ad.jp (150.99.199.157) 38.14 ms 46.196 ms 39.31 ms 6 kyoto-gate-GEX-X-X.sinet.ad.jp (150.99.163.66) 260.184 ms 345.231 ms 357.213 ms 7 if-12-0-0-1.bb2.PaloAlto.Teleglobe.net (207.45.200.25) 179.567 ms 178.472ms 156.735 ms 8 if-2-3.core1.PaloAlto.Teleglobe.net (207.45.222.197) 166.35 ms 171.256 ms 174.797 ms 9 if-2-0.core1.LosAngeles.Teleglobe.net (207.45.222.230) 183.951 ms 165.049ms 164.089 ms 10 if-10-0-0.bb1.LosAngeles.Teleglobe.net (207.45.223.226) 168.951 ms 181.661 ms 187.525 ms 11 ix-2-0-1.bb1.LosAngeles.Teleglobe.net (207.45.211.242) 277.809 ms 178.702 ms 179.278 ms 12 se.isc.psi.net (38.1.4.197) 533.602 ms 549.501 ms 519.365 ms 13 rc5.se.us.psi.net (38.1.25.5) 536.918 ms 546.546 ms 603.179 ms 14 ip45.ci1.herndon.va.us.psi.net (38.146.148.45) 655.632 ms 633.475 ms 577.917 ms 15 198.137.240.33 (198.137.240.33) 616.792 ms !A * 316.993 ms !A
telnetコマンドによりtelnetを解放しているLinuxやUNIX端末へネットワーク越しにログインできる。(もちろん、その端末に自分のユーザアカウントがあることが前提である。)試しに、自分の隣のパソコンに張ってあるシールをみてIPアドレスを調べ、telnetでログインしてみよう。
$ telnet 172.16.1.* (*は隣のパソコンの番号)
とすると、ログイン画面となるはずである。ログインしたら、例えば、
$ xcalc &
のようにすると、自分の前の画面に電卓が表示される。しかし、この電卓が動いているのは隣のパソコンの中である。このように、どのホストにあるアプリケーションでもネットワーク越しに利用することが可能であるので、高速な計算用のホスト、かな漢字変換辞書をおいておくホスト、ゲームをする(^^;)ホストなど自分の部屋になくてもネットワークを利用すれば使い分けて利用できる。
ここで、教室の環境では自由に利用できたが、通常はどのディスプレイに画像を表示するか、また、そのようなアプリケーションの利用を認めるか、自分で設定しなければならない。
telnetでKtermなどを起動して複数の端末で作業する場合に注意しないといけないのは、そのコンソールがどのホストに属しているかの確認である。ファイルの消去などは注意が必要である。また、この教室特有の問題であるが、haltコマンドがユーザに解放されているので、間違ってネットワーク上の別の端末を停止させてしまう危険性がある。他の人が作業をしている途中だと、データの保存などお構いなしに停止させてしまうので細心の注意を払ってhaltコマンドを使用すること。(縄手は間違ってサーバを落としてしまったことがある;_;)