次のページ 前のページ 目次へ

5. IP マスカレードのテスト

さて難しい作業もやっと終わり、いよいよ IP マスカレードの本格的なテストをする時が来ました。まだであれば Linux ボックスを再起動して /etc/rc.d/rc.firewall が正常に実行されることを確認しましょう。その確認が終ったら次は内部 LAN の接続と、Linux ホストからインターネットへの接続のどちらも正しく動作していることを確認してください。

マスカレードの設定が全て正しく行われていることを確認するために、以下の 10 ステップのテストを行ってください。

5.1 ローカル PC の接続テスト

  • ステップ 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
    

5.2 Linux の内部接続のテスト

  • ステップ 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
    

5.3 Linux の外部接続のテスト

  • ステップ 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 の前のほうで推奨している通りに正しく設定されているか確認することを忘れないでください。

5.4 ローカル PC から Linux への接続テスト

  • ステップ 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.5 内部マスカレードの ICMP 転送のテスト

  • ステップ 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
      .
      .  
        
      

5.6 マスカレードされた ICMP の外部転送のテスト

  • ステップ 6 - マスカレードされた ICMP の外部転送のテスト

    マスカレードされているネットワーク内部のコンピュータから、 インターネット上の外部の固定 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 が正しい外部インターフェースを 指していることを確めてください。

5.7 DNS を使わないマスカレード機能のテスト

  • ステップ 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.
    

5.8 DNS を使ったマスカレード機能のテスト

  • ステップ 8 - DNS を使った MASQ 機能のテスト

    それでは、遠隔の HOSTNAME への TELNET を試みてください (例えば、 "telnet metalab.unc.edu" (152.2.254.81))。 これが動作するなら、DNS もうまく動作していることを意味します。 もしステップ 6 が動作したのにこれが動作しなかった場合、 マスカレードされているクライアント・コンピュータの DNS サーバ設定が クライアントの設定 の章で説明したように正しく設定されていることを確かめてください。

5.9 DNS を使ったマスカレード機能の追加テスト

  • ステップ 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 マスカレード・モジュールを組み込むために # の文字を 削除します)。

5.10 その他の機能、性能に関する事項

  • ステップ 10 - その他の機能、性能に関する事項

    もし、あなたのシステムがこれら全てのテストに合格したのに、 WWW ブラウジングや FTP または他のタイプのトラフィックが 不安定であれば、7 章の FAQ の中にある MTU 問題 を読むことをお奨めします。 FAQ の中には、いままで多くのユーザーの役に立ったように、あなた の役に立つ項目がきっとあることでしょう。


次のページ 前のページ 目次へ

[