| |
次のページ
前のページ
目次へ
さて難しい作業もやっと終わり、いよいよ IP マスカレードの本格的なテストをする時が来ました。まだであれば Linux ボックスを再起動して /etc/rc.d/rc.firewall が正常に実行されることを確認しましょう。その確認が終ったら次は内部 LAN の接続と、Linux ホストからインターネットへの接続のどちらも正しく動作していることを確認してください。
マスカレードの設定が全て正しく行われていることを確認するために、以下の 10 ステップのテストを行ってください。
-
- ステップ 1 - ローカル PC の接続テスト
マスカレードされているネットワークの内部のコンピュータで、自分の
ローカル 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
-
- ステップ 2 - 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
-
- ステップ 3 - Linux の外部接続のテスト
次に、マスカレード・サーバのインターネットに接続された
ネットワークインターフェースカードの外部 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
ご覧の通り、この例において外部 IP アドレスは "12.13.14.15" です。
"ifconfig" コマンドを実行することで IP アドレスがわかったので、この
外部 IP アドレスに ping を打ちます。
これはマスカレード・サーバが確かにネットワークに接続していることを
確かめることになります。
出力結果は以下のようになるはずです (ping を中止するには Control-C を
押してください)。
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 の前のほうで推奨している通りに正しく設定されているか確認することを忘れないでください。
-
- ステップ 4 - ローカル PC から Linux への接続テスト
マスカレードされているネットワーク内部のコンピュータから、マスカレードしている 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 ライトが点灯していることを確認してください。
-
- ステップ 5 - 内部マスカレードの ICMP 転送のテスト
マスカレードされているネットワーク内部のコンピュータから、
上記ステップ 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 マスカレード・サーバ上で
次のコマンドを走らせてその出力結果を見てください -
-
- "ifconfig" - インターネットに接続されている
インターフェース(ppp0 や eth0 など)が正しく動作していて、
正しいインターネット接続の IP アドレスが得られていることを確認します。
この出力結果の一例は上記ステップ3の中で示されています。
- "netstat -rn" - デフォルト・ゲートウェイ
(Gateway の列の中にある IP アドレスを持つ列) が設定されていることを
確認してください。
この出力結果の一例は以下のようになります。
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
0.0.0.0 で始まっている最後の行に注目してください。
その Gateway フィールドに IP アドレスがありますね。
そのフィールドの中に設定した IP アドレスが見えなければなりません。
- "cat /proc/sys/net/ipv4/ip_forward" - その結果が "1" になっていることを確認してください。そうなっていれば Linux のフォワーディングは有効となっています。
- 2.2.x ユーザなら "/sbin/ipchains -n -L" という
コマンドを、或は 2.0.x ユーザなら "/sbin/ipfwadm -F -l"
というコマンドを実行してみてください。
特にフォワーディングの章を調べて、あなたがマスカレードを有効に
しているか確認してください。
単純な rc.firewall ルールセットを使ったユーザーの場合、 IPCHAINS の
出力結果の一例は以下のようになるでしょう。
.
.
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
.
.
-
- ステップ 7 - DNS を使わないマスカレード機能のテスト
さて遠隔の 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.
-
- ステップ 9 - 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 マスカレード・モジュールを組み込むために # の文字を
削除します)。
次のページ
前のページ
目次へ
|