並列の構成から 直列の 構成に 変更 してみましょう、まず 並列の構成
adsl-modem IP:192.168.0.1 ----hub------pc1;eth0:192.168.0.5 | pc1;eth1:192.168.2.1 | --------pc2;eth0:192.168.0.8
次に 直列の 構成
adsl-modem ---- hub----pc1;eth0:IP adr:192.168.0.5
pc1;eth1:IP adr:192.168.2.1 -----pc2;eth0:IP adr:192.168.2.8
注意 動作中の ケーブルの 抜きさし は 厳重に 禁 止です 計算機が 故障する 恐れが ありますので 一度 計算機を 停止 した 後 に 作業を してください。切替での 試行を してみる 並列で 動作中 pc2 の lan ケーブル(ストレー ト のもの)を 抜く そうして 別の lan ケーブル (クロスのもの)で pc1 の eth1 側と pc2 を 接続そのうち 画面に このような 物が表示されて 切れる。
# Read from remote host 192.168.0.8: No route to host Connection to 192.168.0.8 closed.
pc1 から ssh での 操作不能 (当り前)であるので pc2 の 場所に 移動し て pc2 の 設定変えを 行う。
$ su - Password: # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:00:E2:1A:A4:E7 inet addr:192.168.0.8 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:35623 errors:0 dropped:0 overruns:0 frame:0 TX packets:26809 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:12295264 (11.7 Mb) TX bytes:5400555 (5.1 Mb) Interrupt:10 # netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
現状の 確認 当然 何も していない 状態 なので 並列の 構成の ままである。 駄目押し確認
# ping -c3 192.168.0.5
PING 192.168.0.5 (192.168.0.5): 56 octets data
--- 192.168.0.5 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
# ping -c3 192.168.2.1
PING 192.168.2.1 (192.168.2.1): 56 octets data
--- 192.168.2.1 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
# ping -c3 192.168.0.8
PING 192.168.0.8 (192.168.0.8): 56 octets data
64 octets from 192.168.0.8: icmp_seq=0 ttl=64 time=0.1 ms
64 octets from 192.168.0.8: icmp_seq=1 ttl=64 time=0.1 ms
64 octets from 192.168.0.8: icmp_seq=2 ttl=64 time=0.0 ms
--- 192.168.0.8 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.0/0.0/0.1 ms
ifconfig にて 設定 変更
# ifconfig eth0 192.168.2.8 broadcast 192.168.2.255 netmask 255.255.255.0 # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:00:E2:1A:A4:E7 inet addr:192.168.2.8 Bcast:192.168.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:35624 errors:0 dropped:0 overruns:0 frame:0 TX packets:26819 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:12295324 (11.7 Mb) TX bytes:5401143 (5.1 Mb) Interrupt:10 # netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
この時点で gw 消滅 してる事に 注意 多摩たまか 必然かは 不明 ping 試験 確認
# ping -c3 192.168.2.8 PING 192.168.2.8 (192.168.2.8): 56 octets data 64 octets from 192.168.2.8: icmp_seq=0 ttl=64 time=0.1 ms 64 octets from 192.168.2.8: icmp_seq=1 ttl=64 time=0.0 ms 64 octets from 192.168.2.8: icmp_seq=2 ttl=64 time=0.1 ms --- 192.168.2.8 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.0/0.0/0.1 ms # ping -c3 192.168.2.1 PING 192.168.2.1 (192.168.2.1): 56 octets data 64 octets from 192.168.2.1: icmp_seq=0 ttl=64 time=0.4 ms 64 octets from 192.168.2.1: icmp_seq=1 ttl=64 time=0.2 ms 64 octets from 192.168.2.1: icmp_seq=2 ttl=64 time=0.2 ms --- 192.168.2.1 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.2/0.2/0.4 ms
ここまでは 特に 言う事は 無いでしょう さて pc1 の eth0 IP Adr 192.168.0.5 への ping 試験は :pc2 から pc1の eth0 への 場合
# ping -c3 192.168.0.5 PING 192.168.0.5 (192.168.0.5): 56 octets data sendto: Network is unreachable ping: sent 64 octets to 192.168.0.5, ret=-1 sendto: Network is unreachable ping: sent 64 octets to 192.168.0.5, ret=-1 sendto: Network is unreachable ping: sent 64 octets to 192.168.0.5, ret=-1 --- 192.168.0.5 ping statistics --- 3 packets transmitted, 0 packets received, 100% packet loss
では まず gateway を 設定 してみよう これが 解決に なるかは 不明だが、 現状再確認
# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
gateway を 設定 と 其結果
# route add default gw 192.168.2.1 # netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0
ほたら ping 試験
# ping -c3 192.168.0.5 PING 192.168.0.5 (192.168.0.5): 56 octets data 64 octets from 192.168.0.5: icmp_seq=0 ttl=64 time=0.3 ms 64 octets from 192.168.0.5: icmp_seq=1 ttl=64 time=0.1 ms 64 octets from 192.168.0.5: icmp_seq=2 ttl=64 time=0.1 ms --- 192.168.0.5 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.1/0.1/0.3 ms
美味い ほんなら ついでに adsl-modem IP Adr 192.168.0.1 には どうなる の
# ping -c3 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 octets data --- 192.168.0.1 ping statistics --- 3 packets transmitted, 0 packets received, 100% packet loss
不味い この 状態は ”pc2 eth0 192.168.2.8 --- pc1 eth1 192.168.2.1 --eth0 192.168.0.5” までは 届くが pc1 から adsl- modem の192.168.0.1 には 届かない(ここで くどい 様であるが pc1 と adsl-modem の 間 というのは pc2 から 出ていって pc1 に ついて そこから adsl-modem へ ということであり pc1 と adsl-modem の 直接の 関係では 無いと 言う事 ; pc2--pc1--adsl-modem ;の 間というこ とです)
adsl-modem ---------- pc1 eth0 ========= pc1 eth1 -------- pc2 eth0 IP Ad 192.168.0.1 IP Ad 192.168.0.5 IP Ad 192.168.2.1 IP Ad 192.168.2.8 ping test1 eth1 OK eth0 ping test2 eth0 OK eth0 ping test3 adsl NO eth0
ここで にゃんたろうの 誤解 してた事は ”ping test2”も 駄目に なると 思って 潮来とです(いたことです)実際は ”ping test3”が 駄目 ということ です。そこで pc1 の ip_forward を 1 にしなくては ということが 考えられ る事に なるのです。 やって なんぼ の 世界です。では pc1 の場所に に 戻っ て ”/proc/sys/net/ipv4/ip_forward”を 変更してみましょう
pc2 で 直列 の 条件に なるように 設定 したので もう pc1 から ssh で pc2 の 操作が 出来るように なっている 筈です
$ ssh -l mm 192.168.2.8
Password: /* 以降 192.168.2.8 pc2 での 操作と 同じ 事です */
$ ping -c3 192.168.0.5
PING 192.168.0.5 (192.168.0.5): 56 octets data
64 octets from 192.168.0.5: icmp_seq=0 ttl=64 time=0.2 ms
64 octets from 192.168.0.5: icmp_seq=1 ttl=64 time=0.1 ms
64 octets from 192.168.0.5: icmp_seq=2 ttl=64 time=0.2 ms
--- 192.168.0.5 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.1/0.2 ms
$ ping -c3 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 octets data
--- 192.168.0.1 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
ここまで 先ほどの pc2 での 確認 事項と 同じ 結果が 得られます。
pc1 にて ”/proc/sys/net/ipv4/ip_forward”の 値を 変えてみましょう。
# cat /proc/sys/net/ipv4/ip_forward 0 # echo 1 > /proc/sys/net/ipv4/ip_forward # cat /proc/sys/net/ipv4/ip_forward 1
そうして pc2 から adsl-modem への ping 試験です
on 192.168.2.8 pc2
$ ping -c3 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 octets data
64 octets from 192.168.0.1: icmp_seq=0 ttl=254 time=1.2 ms
64 octets from 192.168.0.1: icmp_seq=1 ttl=254 time=0.8 ms
64 octets from 192.168.0.1: icmp_seq=2 ttl=254 time=0.7 ms
--- 192.168.0.1 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.7/0.9/1.2 ms
ということで、pc1 と pc2 が 直列の 時に” /proc/sys/net/ipv4/ip_forward” の フラグは有効であることが にゃんたろう にも 理解できました では ここいらで 五話三(ごわさん)にして 再起動して 見ましょう つまり 元の 並列の 条件に 戻すのです 今回は 真っ当に 計算機の 電源を 切ってから 再起動 しましょう。
on 192.168.2.8 pc2
# shutdown -h now
The system is going down for system halt NOW!
# Connection to 192.168.2.8 closed by remote host.
Connection to 192.168.2.8 closed.
192.168.0.5 pc1 側 にて
# cd /etc/rc.d/ # mv stop_rc.inet1 rc.inet1 # shutdown -h now
ケーブルを 元の 状態に 接続 してください pc1 と pc2 の lan ケーブルは クロスケーブル でしたので わかり易い 印が ついているか 確認後 何処かへ 収納 しておいて 下さい、そうして 元の ケーブルを これは ストレート ケーブル を pc2 と hub 間に 再度 接続 してください その後 計算機を起動してください (蛇足 pc1 pc2 停止後 adsl-modem の 電源も 切る事を忘れないで 下さい ;だれも このようには しないかも しれませんが )ここまでで ifconfig と route に ついて 少し 理解 出来たと 思います 又合わせて ”/proc/sys/net/ipv4/ip_forward”の ip_forward が 唐突に 出てきたが forward の 事も 少し 理解出来たと 考えます。
にゃんたろう 拝!
2005年11月 4日 (金) 21:55:23 JST 作成
✈