Powered by SmartDoc

情報通信ネットワーク論[演習](2003/06/06)
Ver. 1.2

2003年6月6日
栗野 俊一
日本大学 理工学部 数学科
kurino@math.cst.nihon-u.ac.jp
http://edu-gw2.math.cst.nihon-u.ac.jp/~kurino/2003/ccna/ccna.html
情報通信ネットワーク論[演習]2003/06/06 の資料

目次

目的

この演習の目的は次の三つです。

IP Networkの基本の復習
前回の実習の復習( Windowsの操作を除く)。
Linux固有の内容
  1. Linuxの基本的な操作方法。
  2. Linuxでの具体的なNetworkの設定方法。

演習

Linux pcを用いた、Network実習

Network 設定

Network 設定に必要な情報

Linuxの場合もWindows の場合と同様IP Network設定に必要な情報は、同じく、以下の4つです。

  1. IP Address
  2. subnet mask
  3. default gateway
  4. name server address

Network 設定の方法

Networkの設定方法も、同様に次の二通りがあります。

  1. DHCPを利用する(動的な設定)方法
  2. 手動で行う(静的な設定)方法

Linux への Login/Logout

Linuxで、Network関係の作業を行うためには、root での Loginを行う必要があります。

login の方法

Linux PCの電源を入れると、画面上にloginプロンプト(1)が表示(2)されています。

login プロンプト
LASER5 Linux XXXX..
Kernel 2.2.XXXX XXXX..

ZZZZ login:

rootでのloginを行うためには、まず、キーボードからrootと入力し、さらに[Enter]キーを押します。

すると、今度は、パスワードの入力が要求されます。

login プロンプト
login: root
Password: 

ここで、正しいパスワードを入力し、[Enter]キーを押せば、loginが成功するはずです。

このパスワードは、関係者以外の人には知らせてはいけないという約束になっているので、普通は教えられないのですが、この演習用のLinux PCのパスワードに関しては、特別に演習中にお知らせします。

なお、このパスワードは、必ず記憶してください。メモってはいけません。他人に教えること(3)も厳禁です。

唯一許されるのは、僕にコソっと尋ねることだけ(4)です。

なお、パスワードを入力しても、画面上は特に変化がなく、[Enter]キーを押して、初めて、何らかの変化があるということに注意してください。

login が成功した場合
LASER5 Linux XXXX..
Kernel 2.2.XXXX XXXX..

ZZZZ login: root
Password: 
Last login: XXXX ..
You hove mail.
[root@ZZZZ /root]# 

loginに成功すると、今度は、shellプロンプトが表示されます(5)

パスワードに誤りがあった場合は、Login incorrectというメッセージ(これは、「Loginに失敗した」という意味です)が表示され、もう一度、loginプロンプトが表示されます。

login が成功した場合
LASER5 Linux XXXX..
Kernel 2.2.XXXX XXXX..

ZZZZ login: root
Password: 
Login incorrect

login:

失敗した場合は、もう一度、rootと入力して、今度は、正しいパスワードを入れましょう(6)

  1. プロンプトというのは、「入力促進記号」、すなわち、何かをキーボードから入れてくださいね」と計算機が入力を促しているということをあらわす表示のことです。

    ある表示がプロンプトかどうかを確認するための簡単な方法は、単に[Enter]キーを入力してみることです。

    すると、プロンプトであれば、ほとんどの場合、単に改行が行われ、次の行以降に再度同じ文字列(つまり、これがプロンプト)が表示されます。

    逆に、異なる文字列が表示された場合は、その文字列は、プロンプトではなかった可能性があります。

  2. XXXXやZZZZの部分は、人によって異なるかもしれません。
  3. 当然、尋ねることも、大変失礼なことだと認識していてください。
  4. もちろん、お教えするのは、演習用のLinux PCの場合だけで、他の場合は、絶対にお教えません。
  5. さあ、すぐに[Enter]キーを押して、どの部分がshell プロンプトかを確認しておこう!!
  6. わずかな可能性ですが、そのLinux PCのrootのパスワードが、僕のお教えしたパスワードと異なる可能性もあります。

    もし、何度やっても、うまく行かない場合は、僕に申し出てください。

logout の方法

作業が終わったら、logoutを行う必要があります。

logoutの仕方は、単に、shellプロンプトが表示されている状態でlogoutとキーボードから入力し、[Enter]キーを押すだけです。

logoutに成功すると、画面がclearされ、再び、loginプロンプトが表示されます。

logout と入力したところ
[root@ZZZZ /root]# logout

内部時計の扱い

時計を合わせよう

Note-PCによっては、内部時計が狂っていることがあります。そこで、dateコマンドを使って、時計を確認したり、補正したりすることを考えます。

時計の確認

現在、設定されている時計の内容を確認するには、dateコマンドを利用します。

date コマンドで現在の設定内容を確認する
[root@ZZZZ /root]# date
Tue Jun  4 16:36:09 JST 2003
[root@ZZZZ /root]# 

これが正しければ特に、行うことはありません。

時計の補正

時計が狂っている場合、補正する必要があります。

時計の補正も、dateコマンドを使用します。時計を補正する場合は、dateコマンドの後ろに、月、日、時、分、をそれぞれ2桁で、年だけは、4桁の数字で、それを続けて指定します。

なお、6月のように数値が1桁の場合は、0を補って、必ず、2桁にする必要があることに注意してください。

date で時計を補正する
[root@ZZZZ /root]# date 060416552003
Tue Jun  4 16:55:09 JST 2003
[root@ZZZZ /root]# 

上記の例では、「6月4日16時55分2003年」と指定するために、「060416552003」を指定しています。

なお、この内容は電源を切ると、そのまま消えてしまうので、これを保存し、次回以降は、何度も、設定せずに済むようにするには、次の、setclockコマンドを実行します。

setclock で時計を保存する
[root@ZZZZ /root]# setclock
[root@ZZZZ /root]# 

もう一度、dateコマンドで、時間を確認すると良いでしょう。

PC Card の扱い

Note-PCの場合Networkへ接続するためには、PC Cardが必要です。

一般に、PC Cardは、単にPC Card Slot(7)に刺すだけです。

しかし、Note-PCによって(8)は、Cardを刺しただけでは、だめな場合があるので、次の作業を行ってください。

  1. Slotが上下二段になっている場合は、下の方にまず、最初に刺す習慣をつけてください。
  2. というか、演習で利用するNote-PCは、ほとんど...これなので..。

Card の切り離し

Cardを刺すと、普通は、「ピッ」、「ピッ」と比較的、澄んだ音(9)が刺した後の直後に一回、そして、その後しばらくして、一回と合計、二度鳴るはずです。

これは、Note-PCが、Cardを認識し、利用できるようになったことを示しています。

こうなれば、実は何も問題はないのですが、この「ピッ」という音が鳴らない場合があります。

これは、Note-PCが、Cardの認識に失敗した場合に起きます。

そこで、面倒を避けるために、とりあえず、Cardの認識に成功しているか失敗しているかに無関係に、Cardを一度、強制的に切り離し、再度、強制的に認識を要求させることにします。

Cardを強制的に切り離すには、cardctl ejectというコマンドを利用します。

Card の切り離し
[root@ZZZZ /root]# cardctl eject
[root@ZZZZ /root]# 

通常は、この場合も、「ピッ」、「ピッ」となります(10)

  1. 「ブッ」といった感じの音がした場合は、僕に申し出てください。多分、トラブルが生じています。
  2. もちろん、鳴らないこともありますが、それでも問題が生じているかどうかは判断できません。

    なぜなら、内臓スピーカーの音量が最低限に設定されその音があまりにも小さくて、聞き取れない可能性もあるからです。

    本当に問題が生じているかどうかは、次のPC Cardの認識を試してみないと、分からないということです。

Card を認識させる

今度は、Cardを認識させるコマンドを実行します。

それは、cardctl insertです。

Card の認識
[root@ZZZZ /root]# cardctl insert
[root@ZZZZ /root]# 

通常は、この場合も、「ピッ」、「ピッ」となります。

なお、Cardが認識されている状況で、cardctl insertを行うと、Error Messageが表示され、失敗します。

二度認識しようとすると出るエラー
[root@ZZZZ /root]# cardctl insert
ioctl(): Device or resorce busy
[root@ZZZZ /root]# 

Card が認識できているかどうかの確認

Cardが認識できているかどうかの確認は、ifconfig eth0で行います。

Cardがちゃんと認識されている場合は、MAC Address ( HWaddrの後ろに表示されている:で区切られた6つの16進2桁の数値のことです)が表示されます。

ifconfig eth0 の表示(成功例)
[root@ZZZZ /root]# ifconfig eth0
eth0	link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
        UP ..
        ...

[root@ZZZZ /root]# 

カードの認識に失敗した場合は、Error Messageが出力されます。

ifconfig eth0 の表示(失敗例)
[root@ZZZZ /root]# ifconfig eth0
eth0: error fetching interface information: Device not found
[root@ZZZZ /root]# 

DHCP を用いた自動設定

dhcpcd の利用

DHCPによる設定を行うには、dhcpcdコマンドを実行します。

dhcpcd の実行
[root@ZZZZ /root]# dhcpcd
[root@ZZZZ /root]# 

dhcpが実行されているかどうかを確認するには、次のpsコマンドを利用すると良いでしょう。

ps コマンドの実行
[root@ZZZZ /root]# ps auxww | grep dhcpcd | grep -v grep
root	15392 x.x x.x xxx xxx ?        S xx:xx x:xx    dhcpcd
[root@ZZZZ /root]# 

この様に、一行出ればOkeyです。

もし、dhcpcdが動いていなければ、一行も出ないでしょう。

設定情報の確認

dhcpcdにより、設定が行われていれば、次のコマンドを実行することによって、その設定内容が確認できると思います。

ip address / subnet mask

ip addressとsubnet maskを確認するには、先ほど紹介したifconfigを利用します。

ifconfig での ip address 確認
[root@ZZZZ /root]# ifconfig eth0
eth0	link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
inet addr: 169.254.1.xx Bcast: 169.254.255.255 Mask: 255.255.0.0
        UP ..
        ...

[root@ZZZZ /root]# 

先ほどとの違いは、二行目に、ip addrで始まる行が増えていることで、これによって、次の情報が得られます。

ip address
inet addr:の後ろの数値です。この例では、169.254.1.xxとなっています。
subnet mask
Mask:の後ろの数値です。この例では、255.255.0.0となっています。
default gateway

default gatwayを知るには、netstatコマンドあるいは、routeコマンドを実行します(11)

netstat/route コマンドで default gateway address を確認
[root@ZZZZ /root]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.1.0 * 255.255.0.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
0.0.0.0 169.254.0.1 0.0.0.0 UG 0 0 0 eth0
[root@ZZZZ /root]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.1.0 * 255.255.0.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
0.0.0.0 169.254.0.1 0.0.0.0 UG 0 0 0 eth0
[root@ZZZZ /root]# 

ここで、通常は3行表示されますが、この中でdefault gatewayと関係するのは、3行目の0.0.0.0で表示されている行です。特に、default gatewayのaddressは、その行の左から二番目の場所にあるもので、この例では、169.254.0.1となっています。

Name server addres (DNS Server)

最後の情報は、Name Serverのaddressです。これは、実は、/etc/resolv.confという名前のファイルの中に保存されています。したがって、この内容を見るには、次のcatコマンドを利用します。

cat コマンドで resolv.conf の内容を見る
[root@ZZZZ /root]# cat /etc/resolv.conf
search xxx.xxx.xx
nameserver 192.168.3.1
[root@ZZZZ /root]# 

ここでは、二行目のnameserverで始まる行だけが重要で、その左から二番目にある192.168.3.1がname serverのip addressです。

上記のコマンドで、DHCPを利用して、4つの情報を入手できたわけですから、これを、ちゃんとメモして置きましょう。

  1. 結果は、似たようなものである。

dhcpcd の終了

DHCPが利用できる場合は、dhcpcdで簡単に設定可能なわけですが、手動で設定する場合は、dhcpcdは使いません。また、すでに、dhcpcdが動いていると、手動で設定した値が、dhcpcdによって、書き換えられてしまうこともあります。

そこで、dhcpcdを終了させる方法を説明します。

まず、前回紹介したpsコマンドを利用して、dhcpcdの動作を確認します。もし、psで、dhcpcdが表示されていなければ、特に止める必要もないわけです。

ps コマンドでプロセス ID を調べる
[root@ZZZZ /root]# ps auxww | grep dhcpcd | grep -v grep
root	15392 x.x x.x xxx xxx ?        S xx:xx x:xx    dhcpcd
[root@ZZZZ /root]# 

もし、例の様に、dhcpcdが動いている場合は、これを止めるためにkillコマンドを利用します。

ただし、killコマンドを利用して、dhcpcdを止めるためには、実は、dhcpcdのプロセス IDを知る必要があります。

実は、このプロセスIDは、上記のpsでの出力の中の、左から二番目に表示されている数で、この例では、15392になっています。

そこで、これを利用して、次のようにkillコマンドで、dhcpcdを停止することができます。

kill コマンドでdhcpcd を停止
[root@ZZZZ /root]# kill 15392
[root@ZZZZ /root]# 

ここで、killの後に書いてある15392は、psで調べた、dhcpcdのプロセスIDです。

killコマンドで、dhcpcdの停止に成功していれば、もう一度psを実行しても、dhcpcdが現れないはずです(確かめてみましょう)。

Network 関係のコマンド

ここでは、Networkに関係する、いくつかのコマンドを説明します。

とりあえず、dhcpcdを起動し、通信できる状態にして、以下のコマンドを試してみなさい。

ping

MS-Windowsと同様pingコマンドが利用できます。

pingコマンドの後に、通信の宛先( IP Addressまたは、Domain Name )を指定することによって、そことの通信が可能かどうかを判定する。

[root@ZZZZ /root]# ping 133.43.98.131
PING 133.43.98.131(133.43.98.133) from 169.254.1.xx : 56 data \
    byte

64 bytes from 133.43.98.131: icmp_seq=0 ttl=238 time=76.9 ms
64 bytes from 133.43.98.131: icmp_seq=1 ttl=238 time=41.3 ms
64 bytes from 133.43.98.131: icmp_seq=2 ttl=238 time=86.9 ms
                 ...

[root@ZZZZ /root]#

windowsと異なり、放っておくと、何行もで続けることに注意してください。

表示を途中で止め(て、プロンプトを出し)たい場合は、Control-C ( [Ctrl]キーを押した状態で、[C]キーをポンと押す)を入力すれば止まります。

次のaddressを試してみなさい。

自分のPC
まず、最初に自分のip addressを試してみよう。
友人のpc
友人のip addressを聞いて、そことの通信を試そう。
133.43.98.133
直接接続していないHostの例。
www.yahoo.co.jp
domain nameを指定する場合の例。この場合に、pingの出力の中にyahooのip addressも書かれているので、それもメモしておこう。
traceroute

Windowsでは、tracertでしたが、linuxでは、tracerouteコマンドとなります。

tracerouteコマンドの後に、通信の宛先を指定することによって、そことの通信をするときに、追加するRouterのIP AddressのListを表示する。

[root@ZZZZ /root]# traceroute -n www.yahoo.co.jp
traceroute to www.yahoo.co.jp (211.14.13.255), 30 hops max, 30 \
    byte packets

  1   169.254.0.1 6.22 ms 7.12 ms 5.95 ms 
  2   192.168.0.254 7.53 ms 6.69 ms 7.29 ms 
  3   43.240.175.252 8.35 ms 7.69 ms 7.91 ms 
  4   10.18.5.41 7.98 ms 8.22 ms 8.53 ms 
  5   10.18.5.17 8.83 ms 9.02 ms 8.55 ms 
             ...
[root@ZZZZ /root]# 

このコマンドは、放っておけば、普通は止まりますが、長い時間がかかり、途中で、止めたいと思った場合は、pingと同様Control-Cで止めることができます。

arp

arpも、Windowsと共通です。

これによって、IP AddressとMAC Addressの対応関係を知ることがでます。

[root@ZZZZ /root]# arp -a
? (169.254.0.1) at xx:xx:xx:xx:xx:xx
? (169.254.1.yy) at xx:xx:xx:xx:xx:xx
[root@ZZZZ /root]# 

ここで、左側の括弧の中が、ip addressで、右側の:で区切られた6つの16進2桁の数がMAC Addressです。

その他

ここでも、他のネットワーク関係コマンドを列挙しておきます。

(12)

  1. ftp :主にunix hostとのファイルのやり取りに利用される。
  2. telnet :主にrouterやunix hostを、Networkを経由して操作する場合に利用される。
  3. ssh :主にunix hostを、Networkを経由して操作する場合に利用される。

    telnetと違って、通信が暗号化されるので、より安全。

  1. 利用法については、次回以降の実習で説明します。

手動でのNetwork 設定

linuxでも、手動でNetworkの設定を行う方法を説明します。

とりあえず、dhcpcdを停止し、ip addressや、default gatewayの設定が失われていることを確認しなさい。

また、name serverの設定は、dhcpcdを止めても、clearされない可能性があるので、次のコマンドを実行し、強制的に、name serverの設定をclearしなさい。

name server の強制 clear
[root@ZZZZ /root]# echo > /etc/resolv.conf
[root@ZZZZ /root]# 

ip address / subnet mask の設定

ip addressとsubnet maskの設定(これは、同時に行う)は、次の様にifconfigを利用して行います。

ip address と subnet mask の設定
[root@ZZZZ /root]# ifconfig eth0 169.254.1.xx netmask 255.255.0.0
[root@ZZZZ /root]# 

ここでは、ip addressとして、169.254.1.xxを、subnet maskとして、255.255.0.0がそれぞれ指定されています。

もちろん、実習では、先ほど、DHCPで取得し、メモした情報を利用しましょう。

default gateway の設定

default gatewayの設定は、routeコマンドを使います。(13)

route コマンドによる default gateway の設定
[root@ZZZZ /root]# route add -net 0.0.0.0 gw 169.254.0.1
[root@ZZZZ /root]# 

ここで、default gateway addressとして、169.254.0.1を指定しています(14)

もちろん、実習の際は、メモを参照しましょう。

  1. ip addressの設定と、その確認はifconfigコマンドを利用しました。default gatewayの設定と、その確認もrouteコマンドです。特定な情報、設定の指定と設定の確認が同じコマンドなのは、覚えやすいかもしれない。
  2. その他の部分は、おまじないとして、そのまま入力すればよい。

name server の設定

name serverの設定は、ファイル/etc/resolv.confに、そのip addressを書き込むことで行いますが、まだ、ファイルの変更方法を学んでいない(15)ので、次の方法で代用することにします。

/etc/resolv.conf の変更
[root@ZZZZ /root]# echo nameserver 169.254.0.1 > /etc/resolv.conf
[root@ZZZZ /root]# 
  1. そのうちやります。

以上の様にして、4つの情報を指定することができることが理解できたと思います。

そこで、以下に、この方法を利用して、実際にip addressを設定してみましょう。

Network 実習

実習

dhcpcdとDHCP
  1. ネットワークケーブルを接続せずにPCを起動しなさい
  2. ifconfigや、netstat -nr, cat /etc/resolv.confを実行し、どのような表示になるか確認しなさい。
  3. ケーブルを接続しても、pingでwww.yahoo.co.jpと通信できないことを確認しなさい。
  4. dhcpcdを実行しなさい。
  5. この状態であれば、www.yahoo.co.jpが参照できることを確認しなさい。
  6. この状態で、IP接続に必要な4つの情報と、自分MAC Addressを記録しなさい。
ping/arp/tracert
  1. arp -aを実行し、現在のarp tableには、何もないことを確認しなさい。
  2. 二人一組になり、一方から、他方にpingしてみよう。
  3. pingの後にもう一度、arp -aを実行し、通信相手のIP Addressや、MAC Addressを確認しよう。
  4. 上記の実験をいろいろな人に対して行ってみよう。
  5. traceroute -n www.yahoo.co.jpなどとして、自分のPCから、yahooまで、どれくらいのrouterを経由するかを確認しなさい。

    このときについでに、yahooのip addressも確認しておくこと。

手動による設定
  1. ifconfigを利用して、先ほどメモした、情報の内、ip addressとnetmaskだけを設定してください。
  2. この状態で、PC同士は、pingが可能だが、外(例えば、yahoo )とは通信できないことを確認しよう。

    pingを使ったときに、ip addressを指定した場合と、www.yahoo.co.jpとした場合のメッセージの違いも確認しよう。

  3. 今度は、default gatewayを設定してみよう。
  4. 同様にping/tracerouteを利用して、今度は、ip addressを指定した場合にのみ、yahooと通信できることを確認しよう。

    domain name ( www.yahoo.co.jp )をつけたらどうなるだろうか?

  5. 最後に、name serverも設定してみよう。
  6. やはり、ping/tracerouteで、yahooと通信( IP Address, Domain Nameの両方)を確認しよう。

    また、tracerouteで-nをつけた場合に、どうなるかも確認すること。

Hub 接続

PC間を結ぶには、HUBだけがあれば十分です。いくつかのグループ分かれて、Hubに自分のPCを接続し、それぞれ、IP Address (とNetmask)を手動で設定して、PC間の通信ができることを確認しなさい。

当然のことながら、Routerが接続されていないので、yahooとは通信できないことも確認しよう。

Cross Cable 接続

二人一組になって、Cross Cableで接続し、Hubと同様な実験を行いなさい。

電源の切り方

windows同様、linuxでも、いきなり電源を切ってはいけない。

電源を切るには、次のコマンドを実行しよう。

電源の切り方
[root@ZZZZ /root]# shutdown -h now
             ......

しばらくすると、自動的に電源が切れるはずです。

電源を切ったら、次の人に代わってあげよう。