ネットワークへ接続できないとき、どうするか


はじめに

自分の意志を相手に伝えるとき、私たちは、相手に伝わる両者に共通の通信手段(例えば、日本語、英語、などの言語)を使う。私が話し、あなたが話しを理解するという過程を物理的な過程で解釈すると、次のようになるのでは。
1) 私があることを考える
2) 声帯が動いて、音波をつくる
3) 音波が空気中を伝わる
4) 鼓膜がその音波を感知する
5) あなたが私の考えを理解する
ある考えは、その考えを表す、ある物理的信号となり、その信号が相手にとどき、なおかつ、その信号を相手が理解できたとき、はじめて交信(Conversation)が成立する。

コンピュータどうしの交信にも、人の人との交信にも、同じようなプロセスがある。 ここでは、まず、コンピュータどうしの交信が、どのように成り立っているかを探る。 そして、コンピュータどうしの交信が成り立たないという逆の事態に、私たちが如何 に対応したらよいかを考えてみたい。

どうして、つながるの

OSI参照モデル

ISO(International Organization for Standardization)は、メーカや機種に囚われず に、コンピュータネットワークを構築できるように、通信手順(プロトコル)を次のよう に階層化した(OSI [Open Systems Interconnection]参照モデル)。
階層定められること
物理層ケーブルの種類やつなぎ方、信号の電気的特性
データリンク層やりとりするデータの単位、エラー検出、訂正を行う機能
ネットワーク層通信を中継する機能
トランスポート層データの紛失や重複を取り除く機能
セッション層ある通信があるコンピュータの中のどのプロセスなのか管理する機能
プレゼンテーション層文字コード、暗号、データの表現を変換する機能
応用層最終的に通信を利用するアプリケーションプログラムの機能

イーサネット

OSI参照モデルの物理層とデータリンク層を定めるもの。DEC、Intel、Xeroxの3社共通の仕様として、1980年に公開された。

イーサネットは、CSMA/CD(Carrier Sence Multiple Access/ Collision Detection)という方式で通信するインターフェイス\footnote{装置と装置を接続するのに必要な、それらの間で適合しなければならない、決めごと}である。イーサ(Ether)というのは、かつての物理学で信じられていた電磁波・光の伝播媒体である「エーテル」の英語式 発音に由来する。

CSMA/CDのネットワークは、バス型\footnote{他に、リング型、スター型がある。}である。また、通信方式はパケット通信\footnote{データを小さな単位に分割し、その単位で配送を行う。この方式は、大きなデータに回線が長時間専有されることがない。}である。

1) 送信したいコンピュータは、伝播媒体の状態をみる(Carrier Sense)。通信中の信号が検出されれば、その信号が検出されなくなるのを待つ。
2) 信号が検出されないので、データを送る。しかし、他のコンピュータの送ったデータと衝突した(Multiple Access)。
3)衝突したことを示す信号を、データを送った側は感知(Collision Detection)し、データの送信を中断。乱数に従う時間、待って、再度送信を行う。

MACフレ−ム

データリンク層で扱われる「データの単位」はフレームと呼ばれる。各フレームは、送信先/発信元の情報を含む。受信者はその情報の送信先の情報を自分と照合して、自分宛のデータを認識する。

自分と相手を認識するために、インターフェイスは特定の番号を持っている。この番号は、重複があってはならない。各々のインターフェイスのこの一意的な番号をMAC\footnote{Media Access Control}アドレスという。データは次のような、送信先/発信元のMACアドレスを含むフレームに分けらて、送受信されている。

プリアンブル
SFD
宛先MACアドレス
発信元MACアドレス
フレーム長
DSAP
SSAP
Control
データ
PAD
FCS


対応手段

traceroute

traceroute ******と打つと
 1  kurage.sci.hokudai.ac.jp (133.87.45.1)  0.62 ms  0.468 ms  0.558 ms
 2  * 133.50.134.1 (133.50.134.1)  15.188 ms  14.746 ms
 3  daikeir1.sys.hokudai.ac.jp (133.87.4.1)  1.082 ms  1.014 ms  0.979 ms
 4  133.87.10.21 (133.87.10.21)  1.22 ms  1.102 ms  1.104 ms
 5  eczgw01.ec.hokudai.ac.jp (133.87.36.2)  1.59 ms  1.555 ms  1.591 ms
 6  eczgw06.ec.hokudai.ac.jp (133.87.38.3)  2.245 ms  2.284 ms  2.293 ms
 7  rcen00.ec.hokudai.ac.jp (133.87.38.137)  3.189 ms  3.119 ms  3.233 ms

ping

ping ***.sci.hokudai.ac.jpと打つ。
PING neptune.sci.hokudai.ac.jp (133.50.134.187): 56 data bytes

64 bytes from 133.50.134.187: icmp_seq=0 ttl=253 time=81.8 ms
64 bytes from 133.50.134.187: icmp_seq=1 ttl=253 time=0.7 ms
64 bytes from 133.50.134.187: icmp_seq=2 ttl=253 time=0.7 ms
64 bytes from 133.50.134.187: icmp_seq=3 ttl=253 time=0.8 ms
64 bytes from 133.50.134.187: icmp_seq=4 ttl=253 time=0.7 ms
64 bytes from 133.50.134.187: icmp_seq=5 ttl=253 time=0.7 ms
64 bytes from 133.50.134.187: icmp_seq=6 ttl=253 time=0.6 ms

--- neptune.sci.hokudai.ac.jp ping statistics ---
7 packets transmitted, 7 packets received, 0% packet loss
round-trip min/avg/max = 0.6/12.2/81.8 ms

/etc/hosts

以下はwww-epのhostsというファイルです。
127.0.0.1	localhost
133.87.45.21	www-ep.sci.hokudai.ac.jp	www-ep

133.87.45.20	ep.sci.hokudai.ac.jp	ep
133.87.45.22	news-ep.sci.hokudai.ac.jp	news-ep
133.87.45.23	p-curry.sci.hokudai.ac.jp	p-curry
133.87.45.24	gyutoro.sci.hokudai.ac.jp	gyutoro

133.87.45.6	msta09.sci.hokudai.ac.jp	msta09
以下はepのhostsというファイルです。
127.0.0.1	localhost
133.87.45.20		ep.sci.hokudai.ac.jp	ep
以下はsgeoのhostsというファイルです。
####################################################################
#  北海道大学 Hosts File  Ver.1.01-0   96/08/05修正                #
####################################################################
127.0.0.1       localhost
################
#水産学部
################
#IPアドレス	ホスト名     別名	   コメント
133.87.200.21	ecfgw01				#
133.87.204.1	ecfgw02				#
133.87.204.2	cf01				#
133.87.204.10	ff00				#
\end{verbatim}
\begin{center}
$\cdots$ 中略 $\cdots$
\end{center}
\begin{verbatim}
################
#理学部(地物)
################
#IPアドレス	ホスト名     別名	   コメント
#133.50.16.166	ecsgw03				#
#133.50.166.1	ecsgw04				#
#133.50.166.2	hs03				#
133.50.166.4	fs01				#
133.50.166.5	ws0200				#
133.50.166.6	ws0201				#
133.50.166.7	ws0202				#
133.50.166.8	ws0203				#
133.50.166.9	ws0204				#
133.50.166.10	ws0205				#
#133.50.166.3	hs04				#
133.50.166.11	ws0206				#
133.50.166.12	ws0207				#
133.50.166.13	ws0208				#
133.50.166.14	ws0209				#
133.50.166.15	ws0210				#
133.50.166.16	ws0211				#
133.50.166.17	pss601				#
\end{verbatim}
\begin{center}
 $\cdots$ $\cdots$ $\cdots$ $\cdots$
\end{center}

netstat

ルーティング(routing):経路制御

$\bullet$ルーティングとは、パケットを送る経路を決めること。動的ルーティングと静的ルーティングがある。ルーティングするためには、前者には、routed、後者にはrouteコマンドがある。 IP層では、IPアドレスから、どのホストに送ったらよいのかを決定する。イーサネットで直結されている場合に、直接相手のホストにパッケトを送ることも、決定することに含む。そうでないときには、別のホストに渡して中継してもらう。パケットを中継するホストをルータ、またはゲートウェイという。 ルーティングの表を見るには、netstatコマンドに-rオプションをつけて調べる(rはRouting tablesの "r")。

netstat -rn

netstat -rnと打つ
\begin{verbatim}
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
133.87.45.0     0.0.0.0         255.255.255.224 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         133.87.45.1     0.0.0.0         UG     1500 0          0 eth0
\end{verbatim}
Destinationは、ホスト用の場合、パケットの最終目的地のIPアドレスそのものを表す。ネットワーク用の場合、最終目的地のIPアドレスのネットワーク部を表す。Gatewayは、実際にパケットを送るルータのIPアドレス、MSS(システムによってはUse)は総使用回数、Ifaceは、ルータのつながったインターフェイスを表す。FlagsのUは、使用可能を、Gはルータ経由、ここには表示されていないが、Hは対ホストの経路であることを示す。

netstat -a

netstat -a と打つと
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:sunrpc                *:*                     LISTEN     
tcp        0      0 *:discard               *:*                     LISTEN     
tcp        0      0 *:daytime               *:*                     LISTEN     
tcp        0      0 *:time                  *:*                     LISTEN     
tcp        0      0 *:ftp                   *:*                     LISTEN     
tcp        0      0 *:telnet                *:*                     LISTEN     
tcp        0      0 *:shell                 *:*                     LISTEN     
tcp        0      0 *:login                 *:*                     LISTEN     
tcp        0      0 *:exec                  *:*                     LISTEN     
tcp        0      0 *:smtp                  *:*                     LISTEN     
tcp        0      0 *:finger                *:*                     LISTEN     
tcp        0      0 *:auth                  *:*                     LISTEN     
tcp        0      0 *:cvspserver            *:*                     LISTEN     
tcp        0      0 *:pop-3                 *:*                     LISTEN     
tcp        0      0 *:printer               *:*                     LISTEN     
tcp        0      0 *:ssh                   *:*                     LISTEN     
tcp        0      0 *:2049                  *:*                     LISTEN     
tcp        0      0 *:728                   *:*                     LISTEN     
tcp        0      0 *:canna                 *:*                     LISTEN     
tcp        0      0 *:22273                 *:*                     LISTEN     
tcp        0      0 *:domain                *:*                     LISTEN     
tcp        0      0 *:www                   *:*                     LISTEN     
tcp        0      0 www-ep.sci.hokudai.:ssh hikari.sci.hokudai:1022 ESTABLISHED
tcp        0      0 *:6010                  *:*                     LISTEN     
tcp        0      0 www-ep.sci.hokud:telnet neptune.sci.hokuda:1289 ESTABLISHED
tcp        0      0 www-ep.sci.hokud:telnet ws0204.ec.hokudai.:1142 ESTABLISHED
udp        0      0 *:syslog                *:*                                
udp        0      0 *:sunrpc                *:*                                
udp        0      0 *:discard               *:*                                
udp        0      0 *:daytime               *:*                                
udp        0      0 *:time                  *:*                                
udp        0      0 *:ntalk                 *:*                                
udp        0      0 *:talk                  *:*                                
udp        0      0 *:2049                  *:*                                
udp        0      0 *:725                   *:*                                
udp        0      0 localhost:domain        *:*                                
udp        0      0 www-ep.sci.hokud:domain *:*                                
udp        0      0 *:domain                *:*                                
raw        0      0 *:1                     *:*                                
Active UNIX domain sockets (including servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  1      [ ACC ]     STREAM     LISTENING     379    /dev/log
unix  2      [ ]         STREAM     CONNECTED     385    
unix  2      [ ]         STREAM                   409    /dev/log
unix  2      [ ]         STREAM     CONNECTED     447    
unix  2      [ ]         STREAM                   448    /dev/log
unix  1      [ ACC ]     STREAM     LISTENING     519    /dev/printer
unix  2      [ ]         STREAM     CONNECTED     569    
unix  2      [ ]         STREAM                   570    /dev/log
unix  2      [ ]         STREAM     CONNECTED     586    
unix  2      [ ]         STREAM                   587    /dev/log
unix  2      [ ]         STREAM     CONNECTED     632    
unix  2      [ ]         STREAM                   634    /dev/log
unix  2      [ ]         STREAM     CONNECTED     662    
unix  2      [ ]         STREAM                   663    /dev/log
unix  1      [ ACC ]     STREAM     LISTENING     732    /tmp/.iroha_unix/IROHA
unix  1      [ ACC ]     STREAM     LISTENING     791    /tmp/jd_sockV4
unix  1      [ N ]       STREAM     CONNECTED     363557 
unix  2      [ ]         STREAM     CONNECTED     367291 
unix  2      [ ]         STREAM                   367292 /dev/log
unix  2      [ ]         STREAM     CONNECTED     375873 
unix  2      [ ]         STREAM                   375874 /dev/log
これは、サーバプロセスのソケットを含めた全ソケットの状態を表示している。TCP、UDPというのは、通信回線を通して他のマシン上のプロセスと通信するプロトコルである。

ifconfig

ifconfig le0と打つ le0: flags=63 inet 133.50.134.187 netmask fffffe00 broadcast 133.50.135.255
le0というインターフェイスの、\\
IPアドレスが   133.50.134.187\\
ネットマスクが fffffe00 $\longrightarrow$ 255.255.239.0\\
放送アドレスが 133.50.135.255\\
であることを表している。IPアドレスが自分のホストのIPアドレスと異なるとき、

/etc/ifconfig le0 IPアドレス

と入力して正す。

nslookup

www-epでnslookupと打ったら
\begin{verbatim}
Default Server:  localhost
Address:  127.0.0.1
\end{verbatim}
sgeoでnslookupと打ったら
\begin{verbatim}
Default Server:  fs01.ec.hokudai.ac.jp
Address:  133.50.166.4
\end{verbatim}
となった。これは、ネームサーバの設定情報を確認するコマンドである。

センター(cen5)でwww-epのIPアドレスをたずねてみた。

> www-ep.sci.hokudai.ac.jp

Non-authoritative answer:
Name:   www-ep.sci.hokudai.ac.jp
Address: 133.87.45.21
正しいIPアドレスが紹介されなければ、訂正する必要がある。exitでnslookupコマンドを終了する。あるいは、Ctrl+Dでもよい。

arp

arp -aと打ってみる。
Address			HWtype	HWaddress	    Flags Mask		  Iface
kurage.sci.hokudai.ac.j	ether   00:E0:YE:CD:EX:8X   C     *               eth0
ep.sci.hokudai.ac.jp   	ether   00:10:4Y:79:X6:Y6   C     *               eth0
gachapin.sci.hokudai.ac	ether   00:00:E8:YA:4Y:XE         *               eth0
カーネルのメモリから読み出せる全エントリーを表示する。addressは、メモリに格納されているMACアドレスのホスト名を表す。HWaddressはホストに対応するMACアドレス。-SオプションでMACアドレスを登録できる。
%%%%%%%%%%%%%%% 参考文献 %%%%%%%%%%%%%%

The UNIX Super Text [下]
技術評論社

つなげてみよう 
特修科情報管理課程研修「LANシステム実習」資料

日立CSMA/CDネットワークCD(TCP/IP)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

履歴 奥山(1998/11/13)