ネットワークの活用


Linux(UNIX)はネットワークとの相性が良く利用の仕方によっては快適な環境を複数台の端末を自分の目の前の端末上に構築することができる。そのためにはいろいろと知識が必要であるが、少しずつ紹介していくことにする。


  1. 自分の端末の環境

    現在ネットワークと言う場合には通常はTCP/IPプロトコルによるネットワークのことを指す。インターネットが代表的なものである。その中に自分がどのようにして加わっているのかを理解するためにはTCP/IPの知識が当然必要になる。しかし、初めのうちは表面的なことだけでも良いので天下りに覚えておいて、徐々に理解を深めていけばよい。ここでは、自分の端末の状態を見ることから始める。

    • ifconfig

      このコマンドはインターフェイスのコンフィグレーションを設定したり、見たりするコマンドであり、コマンド名もその略となっている。通常は管理者が用いるコマンドであり、一般ユーザは当然設定変更はできない。しかし、現在の端末の状況を見ることも必要であるので実行して試してみよう。

      ただし、コマンドは/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:0x9000
      
      loはループバックアドレスと呼ばれ、端末自身を指す。実際のインターフェイスは現在はeth0で表されるEthernetアドレスであり、ハードウェアアドレスがMACアドレスと呼ばれるボード固有の番号である。上の例では2行目にIPアドレス、ブロードキャストアドレス、ネットマスクが示されている。4行目以下に現在の状態が示され、最後の行にIRQが示されている。

    • route

      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

      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
      
  2. ネットワークの状態を見るコマンド

  3. 他の端末へのログイン

    telnetコマンドによりtelnetを解放しているLinuxやUNIX端末へネットワーク越しにログインできる。(もちろん、その端末に自分のユーザアカウントがあることが前提である。)試しに、自分の隣のパソコンに張ってあるシールをみてIPアドレスを調べ、telnetでログインしてみよう。

    $ telnet 172.16.1.* (*は隣のパソコンの番号)
    

    とすると、ログイン画面となるはずである。ログインしたら、例えば、

    $ xcalc &
    

    のようにすると、自分の前の画面に電卓が表示される。しかし、この電卓が動いているのは隣のパソコンの中である。このように、どのホストにあるアプリケーションでもネットワーク越しに利用することが可能であるので、高速な計算用のホスト、かな漢字変換辞書をおいておくホスト、ゲームをする(^^;)ホストなど自分の部屋になくてもネットワークを利用すれば使い分けて利用できる。

    ここで、教室の環境では自由に利用できたが、通常はどのディスプレイに画像を表示するか、また、そのようなアプリケーションの利用を認めるか、自分で設定しなければならない。

    telnetでKtermなどを起動して複数の端末で作業する場合に注意しないといけないのは、そのコンソールがどのホストに属しているかの確認である。ファイルの消去などは注意が必要である。また、この教室特有の問題であるが、haltコマンドがユーザに解放されているので、間違ってネットワーク上の別の端末を停止させてしまう危険性がある。他の人が作業をしている途中だと、データの保存などお構いなしに停止させてしまうので細心の注意を払ってhaltコマンドを使用すること。(縄手は間違ってサーバを落としてしまったことがある;_;)