さて難しい作業もやっと終わり、いよいよ IP マスカレードの本格的なテストをする時が来ました。まだであれば Linux ボックスを再起動して /etc/rc.d/rc.firewall が正常に実行されることを確認しましょう。その確認が終ったら次は内部 LAN の接続と、Linux ホストからインターネットへの接続のどちらも正しく動作していることを確認してください。
マスカレードの設定が全て正しく行われていることを確認するために、以下の 10 ステップのテストを行ってください。
マスカレードされているネットワークの内部のコンピュータで、自分の ローカル IP アドレスに ping を打ってください (つまり ping 192.168.0.10 )。 このテストは TCP/IP がローカルの PC で正しく動作していることを 確認します。 最近のほとんどのオペレーティングシステムには最初からping コマンドが あります。 ローカルの IP アドレスへの ping が正常に動作しない場合、この HOWTO で 前述の クライアントの設定 で説明した通りに クライアント PC 上で TCP/IP が正しく設定されているかを確かめてください。 出力結果は以下のようになるはずです(ping を中止するには Control-C を 押してください)。
masq-client# ping 192.168.0.10 PING 192.168.0.10 (192.168.0.10): 56 data bytes 64 bytes from 192.168.0.10: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 192.168.0.10: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 192.168.0.10: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 192.168.0.10: icmp_seq=3 ttl=255 time=0.5 ms --- 192.168.0.10 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms
マスカレードサーバで、ネットワークインターフェースカードの 内部 IP アドレスに ping を打ってください (つまり ping 192.168.0.1)。 出力結果は以下のようになるはずです(ping を中止するには Control-C を押してください)。
masq-client# ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes 64 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=0.5 ms --- 192.168.0.1 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms
次に、マスカレード・サーバのインターネットに接続された ネットワークインターフェースカードの外部 IPアドレスに ping を 打ってください。 このアドレスは PPP、イーサネット等で ISP に接続されたアドレスです。 この IP アドレスがわからなければ、インターネット・アドレスを 調べるためにマスカレード・サーバ上でLinuxコマンド "/sbin/ifconfig" を実行してください。 出力結果は以下のようになるはずです(eth0 の IP アドレスを調べている場合)。
eth0 Link encap:Ethernet HWaddr 00:08:C7:A4:CC:5B inet addr:12.13.14.15 Bcast:64.220.150.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6108459 errors:0 dropped:0 overruns:0 frame:0 TX packets:5422798 errors:8 dropped:0 overruns:0 carrier:8 collisions:4675 txqueuelen:100 Interrupt:11 Base address:0xfcf0
masq-server# ping 12.13.14.15 PING 12.13.14.15 (12.13.14.15): 56 data bytes 64 bytes from 12.13.14.15: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 12.13.14.15: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 12.13.14.15: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 12.13.14.15: icmp_seq=3 ttl=255 time=0.5 ms --- 12.13.14.15 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms
もしこれらのテストのどちらかが動作しないなら、元に戻ってネットワークの ケーブル接続を再確認し、 "dmesg" コマンドを実行したときに マスカレード・サーバの2つの NIC が表示されるか確認する必要があります。 この出力結果の例は "dmesg" コマンドの出力の最後のほうが以下のように なるでしょう -
. . PPP: version 2.3.7 (demand dialling) TCP compression code copyright 1989 Regents of the University of California PPP line discipline registered. 3c59x.c:v0.99H 11/17/98 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/ vortex.html eth0: 3Com 3c905 Boomerang 100baseTx at 0xfe80, 00:60:08:a7:4e:0e, IRQ 9 8K word-wide RAM 3:5 Rx:Tx split, autoselect/MII interface. MII transceiver found at address 24, status 786f. Enabling bus-master transmits and whole-frame receives. eth1: 3Com 3c905 Boomerang 100baseTx at 0xfd80, 00:60:97:92:69:f8, IRQ 9 8K word-wide RAM 3:5 Rx:Tx split, autoselect/MII interface. MII transceiver found at address 24, status 7849. Enabling bus-master transmits and whole-frame receives. Partition check: sda: sda1 sda2 < sda5 sda6 sda7 sda8 > sdb: . .
また、 お使いの Linux ディストリビューションでの NIC の設定が、この HOWTO の前のほうで推奨している通りに正しく設定されているか確認することを忘れないでください。
マスカレードされているネットワーク内部のコンピュータから、マスカレードしている Linux ボックスの内部ネットワークのイーサネット・カードの IP アドレスに ping を打ちます(つまり ping 192.168.0.1)。これは、内部ネットワーク及びルーティングが正しいことを検証します。出力結果は以下のようになるはずです(ping を中止するには Control-C を押してください)。
masq-client# ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes 64 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=0.5 ms --- 192.168.0.1 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms
もしうまくいかないのなら、マスカレード・サーバ及び クライアント・コンピュータのイーサネット・カードの "link" ランプが 点灯していることを確かめてください。 一般的には各イーサネット・カードの後部にある LED とハブやスイッチを 使用している場合はその LED が点灯します。 もし点灯していないならば、マスカレードされているネットワークの内部の コンピュータが クライアントの設定 の章で説明したように 正しく設定されていることを確かめてください。 マスカレードされているクライアントに問題が無ければ、 ネットワーク・ケーブルの配線を再確認し、マスカレードされている クライアント・コンピュータの NIC と Linux ボックスの内部 NIC の 両方の LINK ライトが点灯していることを確認してください。
マスカレードされているネットワーク内部のコンピュータから、 上記ステップ 3 で得られたマスカレード・サーバの外部 IP アドレスに ping を打ってください。 このアドレスは PPP、イーサネット等で ISP に接続されたアドレスです。 この ping は、マスカレードが動作することをテストします(特に ICMP は マスカレードされています)。
もしうまくいかない場合、まずマスカレードされているクライアント PC の デフォルト・ゲートウェイがマスカレード・サーバの内部 NIC の IP アドレスを正しく指しているか確かめてください。 また /etc/rc.d/rc.firewall のスクリプトがエラー無しに走ることを 再確認してください。 テストのため /etc/rc.d/rc.firewall のスクリプトを再度走らせてみて、 それが走るかどうか見てください。 またほとんどのカーネルはデフォルトで有効になっていますが、 カーネル・コンフィギュレーションの中の "ICMP Masquerading" と /etc/rc.d/rc.firewall スクリプトの中の "IP Forwarding" を 有効にしていることを確かめてください。
それでもまだうまく動作しないなら、Linux マスカレード・サーバ上で 次のコマンドを走らせてその出力結果を見てください -
masq-server# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.0.1 0.0.0.0 255.255.255.255 UH 0 16384 0 eth1 12.13.14.15 0.0.0.0 255.255.255.255 UH 0 16384 0 eth0 12.13.14.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 16384 0 lo 0.0.0.0 12.13.14.1 0.0.0.0 UG 0 16384 0 eth0
. . Chain forward (policy REJECT): target prot opt source destination ports MASQ all ------ 192.168.0.0/24 0.0.0.0/0 n/a ACCEPT all ----l- 0.0.0.0/0 0.0.0.0/0 n/a . .
マスカレードされているネットワーク内部のコンピュータから、 インターネット上の外部の固定 TCP/IP アドレスに対して ping を 打ちます(つまり ping 152.19.254.81 これは http://metalab.unc.edu - MetaLabs Linux Archive の home です)。 これが動作する場合、ICMP マスカレーディングがインターネット上で 動作していることを意味します。 もしうまくいかなかった場合、再度インターネット接続をチェックしてください。 それでもまだ動作してくれない場合、単純な rc.firewall ルールセットを 使用しているか、また Linux カーネルで ICMP Masqurading を有効にして コンパイルしていることを確かめてください。 またルールセットの中で enable IP MASQ が正しい外部インターフェースを 指していることを確めてください。
さて遠隔の IP アドレスへの TELNET を行ってみてください(すなわち telnet 152.2.254.81) (metalab.unc.edu - このサーバーはすごく忙しいのでログインプロンプトが現れるまで時間がかかるかもしれません)。 しばらくしてログイン・プロンプトが現れましたか。 現れたなら、TCP のマスカレードはうまく動作しています。もし現れなければ、198.182.196.55 (www.linux.org) のような TELNET が使えそうな他のいくつかのホストへ TELNET をしてみてください。 これがなお働かない場合、今のところ simple rc.firewall ルールセットを使用していることを確かめてください。この出力結果の一例は以下のようになるでしょう(TELNET から抜けるには Control-D を押してください)。
masq-client# telnet 152.2.254.81 Trying 152.2.254.81... Connected to 152.2.254.81. Escape character is '^]'. SunOS 5.7 ******************** Welcome to MetaLab.unc.edu ******************* To login to MetaLab as a user, connect to login.metalab.unc.edu. This machine allows no public telnet logins. login: Connection closed by foreign host.
それでは、遠隔の HOSTNAME への TELNET を試みてください (例えば、 "telnet metalab.unc.edu" (152.2.254.81))。 これが動作するなら、DNS もうまく動作していることを意味します。 もしステップ 6 が動作したのにこれが動作しなかった場合、 マスカレードされているクライアント・コンピュータの DNS サーバ設定が クライアントの設定 の章で説明したように正しく設定されていることを確かめてください。
最後のテストとして、マスカレードされているクライアント・マシンの 1 つからいくつかの 'インターネット' WWW サイトをブラウズ してみてください。 そして、それらにアクセスできるかどうか見てください。 例えば、 Linux Documentation Project site へアクセスしてみてください。 もしこれができるなら、すべてがうまく動作している!と考えられます。 もし他のサイトでは問題が無いのに、いくつかのサイトに問題がある場合、 以下のステップにある解決策を見てください。
もし、 Linux Documentation Project のホームページが見えたなら おめでとう! うまくいきましたね! もし、その WWW サイトが正しく見られるなら、 PING, TELNET, SSH や、 関連する IP マスカレード・モジュールがロードされた FTP, Real Audio, IRC DCCs, Quake I/II/III, CuSeeme, VDOLive など、他の標準的な ネットワーク接続は全てうまく動作するはずです。 もし、FTP, IRC, RealAudio, Quake I/II/III 等が動作しないか、あるいは 動作が不完全ならば、 "lsmod" を実行して、それらに必要な マスカレード・モジュールがロードされていることを確かめてください。 また、デフォルトでは組み込まれないサービスに必要なポートのモジュールを ロードしているかを確認してください。 もし必要なモジュールが見つからなければ、あなたの /etc/rc.d/rc.firewall スクリプトがそれらのモジュールをロードしている ことを確かめてください (つまり、IP マスカレード・モジュールを組み込むために # の文字を 削除します)。
もし、あなたのシステムがこれら全てのテストに合格したのに、 WWW ブラウジングや FTP または他のタイプのトラフィックが 不安定であれば、7 章の FAQ の中にある MTU 問題 を読むことをお奨めします。 FAQ の中には、いままで多くのユーザーの役に立ったように、あなた の役に立つ項目がきっとあることでしょう。