Linux リテラシ - 第5回 演習問題 解答

問題(1)
現在使用している IP アドレスを調べよ。

ifconfig コマンドを使用します。

[root@Alixia root]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:D0:B7:2A:40:5D
          inet addr:192.168.1.54  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:56 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5455 (5.3 Kb)  TX bytes:5455 (5.3 Kb)

eth0inet addr が現在の IP アドレスです。

問題(2)
現在使用しているネットワークのゲートウェイアドレスを調べよ。

講義中で補足説明した route コマンドを使用します。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

defaultGateway がゲートウェイアドレスです。

問題(3)
ゲートウェイアドレスを 2 進数で表してみよ。

192.168.1.1 を 2 進数であらわすと・・・

192 = 11000000
168 = 10101000
  1 = 00000001
  1 = 00000001

なので、11000000.10101000.00000001.00000001 となります。

問題(4)
http://cis.k.hosei.ac.jp/ が運用されているサーバの IP アドレスを調べよ。

nslookup コマンドを使用します。

[root@Alixia root]# nslookup cis.k.hosei.ac.jp
Server:         192.168.1.1
Address:        192.168.1.1#53

Non-authoritative answer:
Name:   cis.k.hosei.ac.jp
Address: 133.25.90.34

これより、133.25.90.34 であることがわかります。

問題(5)
問題(4)で調べたIPアドレスに対して、PING を打ってみよ。
[root@Alixia root]# ping 133.25.90.34
PING 133.25.90.34 (133.25.90.34) 56(84) bytes of data.
64 bytes from 133.25.90.34: icmp_seq=0 ttl=62 time=0.393 ms
64 bytes from 133.25.90.34: icmp_seq=1 ttl=62 time=0.324 ms
64 bytes from 133.25.90.34: icmp_seq=2 ttl=62 time=0.380 ms
64 bytes from 133.25.90.34: icmp_seq=3 ttl=62 time=0.371 ms
64 bytes from 133.25.90.34: icmp_seq=4 ttl=62 time=0.351 ms

--- 133.25.90.34 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.324/0.363/0.393/0.034 ms, pipe 2
問題(6)
ブラウザで http://cis.k.hosei.ac.jp:80/ でアクセスするとどうなるか調べてみよ。

情報科学部の Web サイトが表示されるはずです。

問題(7)
ブラウザで http://cis.k.hosei.ac.jp:81/ でアクセスするとどうなるか調べてみよ。

ページを表示できません などと表示されるはずです。

問題(8)
80 と 81 で結果が異なるのはなぜか。

問題(7) では、cis.k.hosei.ac.jp のポート 81 にアクセスしています。しかし、一般の Web サーバー同様 cis.k.hosei.ac.jp でも Web サービスはポート 80 で実行されているためにこのような結果になります。

問題(9)
telnet で cis.k.hosei.ac.jp のポート 80 にアクセスし、「HEAD / HTTP/1.0」 と入力して Enter を2回押すとどうなるか調べ、それが何を意味するか考えよ。
[root@Alixia root]# telnet cis.k.hosei.ac.jp 80
Trying 133.25.90.34...
Connected to cis.k.hosei.ac.jp.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 22 Jun 2005 01:41:35 GMT
Server: Apache/2.0.54 (Unix) mod_ssl/2.0.54 OpenSSL/0.9.7g Resin/3.0.13 PHP/5.0.4
Last-Modified: Sun, 19 Jun 2005 04:56:34 GMT
ETag: "bc409d-1d0c-b134480"
Accept-Ranges: bytes
Content-Length: 7436
Vary: Accept-Encoding
Connection: close
Content-Type: text/html

Connection closed by foreign host.

問題(6)-(8) で、cis.k.hosei.ac.jp のポート 80 で Web サービスが実行されていることがわかりました。よって、この問題は実際に Web サーバーに接続し、文字列を送信していることになります。「HEAD / HTTP/1.0」は、「/ という URI のヘッダー」を要求する HTTP リクエストです。Enter を 2 回押したのは、HTTP のリクエストが空行で区切られるからです。HTTPについては、RFC 2616 を参照してください。

問題(10)
www.google.co.jp にはどのようなネットワーク経路を辿ってアクセスしているの確認せよ。

traceroute コマンドを使用します。

[root@Alixia root]# traceroute www.google.co.jp
traceroute: Warning: www.google.co.jp has multiple addresses; using 66.102.7.147
traceroute to www.l.google.com (66.102.7.147), 30 hops max, 38 byte packets
 1  gw-in.klab.k.hosei.ac.jp (133.25.236.65)  0.240 ms  0.169 ms  0.131 ms
 2  133.25.82.2 (133.25.82.2)  0.425 ms  0.350 ms  0.368 ms
 3  133.25.112.242 (133.25.112.242)  1.301 ms  1.111 ms  1.467 ms
 4  133.25.112.225 (133.25.112.225)  2.691 ms  1.493 ms  1.475 ms
 5  noukou-FE4-0-0.sinet.ad.jp (150.99.139.1)  1.218 ms  1.407 ms  1.217 ms
----- (以下略) -----
問題(11)
ループバックアドレスに PING を打ってみよ。
[root@Alixia root]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.102 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.100 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.056 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.053 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.092 ms

--- 127.0.0.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.053/0.080/0.102/0.023 ms, pipe 2
問題(12)
iptables でループバックアドレスからの ICMP 要求を許可しないように設定し、有効にせよ。

/etc/sysconfig/iptables が以下のような内容であればよいでしょう。


----- (略) -----

-A INPUT -p icmp -s 127.0.0.1 -j REJECT
-A INPUT -i lo -j ACCEPT

----- (略) -----
問題(13)
再度ループバックアドレスに PING を打ってみよ。
[root@Alixia root]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

--- 127.0.0.1 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 3999ms
問題(14)
現在使用しているネットワーク設定を記録し、手動で設定し直し、設定を有効にしてネットワークに接続できるか確認せよ。
[root@Alixia root]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp

この例では、ネットワーク設定は DHCP による自動割り当てです。
netconfig コマンドでIPアドレスを 10.20.30.40 に変更してみます。IP アドレス以外の項目はデフォルトのままでかまいません。変更後は network を restart します。

[root@Alixia root]# netconfig -d eth0
[root@Alixia root]# /etc/init.d/network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Setting network parameters:                                [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]

接続できるかは実際に telnet などで確認してください。

問題(15)
固定した IP アドレスを元に戻してみよ。

元の設定が自動割当だったので、netconfig コマンドで 動的 IP 設定を使用する にチェックをつけます。

問題(16)
コンピューターに接続した LAN ケーブルをいったん抜いて、また挿しなおし、ネットワークに接続できるか確認せよ。

いったん抜いて、充分時間がたった後に 挿しなおすと接続できなくなっているはずです。

問題(17)
network デーモンを再起動して、ネットワークに接続できるか確認せよ。
[root@Alixia root]# /etc/init.d/network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Setting network parameters:                                [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]

接続できるようになるはずです。