- ベストアンサー
複数のLinuxパソコンでインターネットの共有方法
- モデム回線(tun0)を使用し、携帯電話をUSB接続したLinuxパソコンでインターネットに接続する方法を解説します。
- ルータのWAN側とモデムにつながったパソコンのeth0をつなぐことで、携帯電話でのインターネット回線を複数のLinuxパソコンで共有することができます。
- 利用ディストリビューションはVine4.2を前提としています。ifconfigコマンドを使用してネットワークインターフェース状況を確認できます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> やはり「パソコンVのデフォルトゲートウェイを携帯電話にする」必要があり、それをどこかから教えてもらう必要がありますね。 ああ、う~ん。あのー、そうでは無くってですな。ではパソコンV単独の話をしましょう。今はLAN内のそれ以外は忘れてちゃぶだい。 今、パソコンVは、携帯電話(tun0)でインターネットできてるんだよね? つまり、/etc/sysconfig/networkのGATEWAY=192.168.1.254は無効になってて、パソコンVからインターネット向けのパケットは61.25.24.13(本当はあまりこういうIPアドレスは表示するべきではないです)に飛ぶようになっている。ダイヤルアップPPPってのは、・・・・ええと、そもそもPPPってのは、2点間(ここではパソコンVと携帯電話の通話先のプロバイダ)が一つのIPセグメントになる。IPセグメントになるって事は、本来IPアドレスが4つ必要なのね。ネットワークアドレス、パソコンVのアドレス、相手のアドレス、ブロードキャストアドレス。このうち、tun0経由のデフォルトゲートウェイってのは、本当は相手のアドレスになる。んだけど、現在ではそれはごにょごにょして一つのIPアドレスで済むようになっているものが多い。という訳で、難しい話をはしょるとANo.1の1番は既に済んでるって事なの。 ・・・・多分。 正確なところは確かに会社に問い合わせんと分からんね。 ルーティングの設定は、ANo.1の # echo 1 > /proc/sys/net/ipv4/ip_forward これが、「今電源が入っている状態でルーティング(パソコンVがeth0で受け取って宛先が分からないパケットをtun0に渡し、tun0で受け取って宛先がLAN内であるパケットをeth0に渡す処理を言う)できるようにする」ためのコマンドだ。で、次に電源入れた時にも同じ効果を得るには/etc/sysctl.confの、上と似たような風な行を0から1に変える。詳しくは検索の事。 次に、上の設定で普通にルーティングしただけではパソコンAからインターネット向けに「ローカルアドレスが送信元である」パケットが飛んでいってしまうのでまずい(まぁ、次のルータではじかれるけどね)。なので、インターネット向けにはあくまで「送信元がパソコンVのtun0」であるようなパケットに変換して送り出さないといけない。でないと帰ってこれんけんね。で、帰ってきたパケットが正しく本当の送信元に帰っていくように「宛先がパソコンAであるパケット」に変換するわけだ。これがIPマスカレード。ここまで言うと分かるだろうけど、ブロードバンドルータはこの動きをあの小さな筐体で実現した機器だって事やね。IPマスカレの詳しい話はまた別途検索してください。 一番簡単な書式だと、 # iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE でいける・・・・んじゃないかなぁ・・・・。もうちっと細かな書式もあるはずなのでこれも検索ね。もちろん次回起動時にも有効にするために # /etc/init.d/iptables save も忘れずに。
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
Vineのパソコンがeth0とtun0があるパソコンという事かな。 では、以下の構成を考えてみよう。VineをパソコンVとし、LAN内のもう一つのパソコンをパソコンAとする。 インターネット | 携帯電話 | tun0 xxx.xxx.xxx.xxx パソコンV eth0 192.168.1.1 | 家庭内LANー192.168.1.254 ルータ | 192.168.1.yyy パソコンA 上の構成を見ていただくと分かるように。パソコンVの携帯経由でパソコンAがインターネットに接続するには、ルータではなくパソコンVがゲートウェイになる。つまり、 ・パソコンVのデフォルトゲートウェイを携帯電話にする。 これは、Vineで携帯電話でインターネットする設定はよくわかんないのでマニュアルに従ってください。 ・パソコンAのデフォルトゲートウェイをパソコンV(192.168.1.1)にする。 これは普通に設定すれば良い。 ・パソコンVがルーティングできるようにする。 # echo 1 > /proc/sys/net/ipv4/ip_forward するのと、iptablesでIPMASQUERADEするくらいでしょーか。/etc/sysctl.confも修正しよう。 の3つが必要になる。 もし、パソコンAとパソコンVの間にルータがくるようにするためには、パソコンVールータ間とルーターパソコンA間のセグメントを変える事になる。具体的にはパソコンVのeth0が192.168.2.254になり、ルータのWAN側が192.168.2.1になる。 tun0 パソコンV eth0 192.168.2.254 | 192.168.2.1 ルータ 192.168.1.254 | eth0 192.168.1.yyy パソコンA ルータが何を目的にどう絡んでくるのか分からないのでひょっとしたら全然関係ない事を言っているかも知れない。ルータでインターネットしている訳ではないのかな?
補足
anmochi様、ありがとうございます。 1.パソコンVのデフォルトゲートウェイを携帯電話にする。 やはり「パソコンVのデフォルトゲートウェイを携帯電話にする」必要があり、それをどこかから教えてもらう必要がありますね。「マニュアルに従って」ということですが、マニュアルには書かれていませんので、電話会社に照会する必要がありそうです。 現在、携帯電話(モデム)をUSBにつないでモジュールを組み込むと勝手につながります。これはtun0インターフェースがDHCPでアドレスの配布を受けているのかと思うのですが、この状態の時にデフォルトゲートウェイを確認する方法はないでしょうか。 2.パソコンVがルーティングできるようにする。 iptablesの勉強も、このようなことをしている理由のひとつなのですが、勉強未着手でわかりません。 というわけで、「iptablesでIPMASQUERADEする」「/etc/sysctl.confも修正」の具体的な方法がわかりません。ぼちぼち勉強します。 2008年2月4日
お礼
携帯電話(EM・ONE)モデム・Linuxパソコン・ルータを利用して、携帯電話回線インターネットと家庭内LANを接続することができました。 構成は次のとおりです。 ゲートウェイパソコンVとルータWAN側をクロスケーブルでつなぐことを偶然発見するまで随分試行錯誤しました。 アドレス変換・フィルタリングにはiptablesを利用していますが、各種ウェブサイトにアップされている設定を自宅環境のアドレスに変える程度で殆どそのまま利用しています。ゲートウェイパソコンとルータの2回のアドレス変換が行われていますが、いまのところ不具合ないです。 インターネット | 携帯電話(EM・ONE) | USB tun0(不特定アドレス) ゲートウェイパソコンV eth0 192.168.2.254 ゲートウェイアドレスは指定せず | (クロスケーブル) | (WAN側)192.168.2.1 ゲートウェイアドレス:192.168.2.254 ルータ (LAN側)192.168.1.254 | eth0 192.168.1.yyy ゲートウェイアドレス:192.168.1.254 パソコンA 2008年2月25日
補足
anmochi様、親切なアドバイスをありがとうございます。 tun0についてですが、「4つのIPアドレスが1つのアドレスになってしまう」ということですが、tun0経由のデフォルトゲートウェイは、今回の例の場合はtun0自身のアドレスである61.25.24.13と考えればよいということでしょうか。そうだとしても、61.25.24.13はクライアント側で設定したものではなく、接続するたびにアドレスが異なっており、DHCPで与えられているように思われます。接続するたびにアドレスが異なっていますので、アドレスを特定できません。 パソコンVをインターネットへのゲートウェイにして、その後ろにルータを付けた場合、ルータのWAN側ポートのゲートウェイアドレスは61.25.24.13にすればよいように思われますが、そのアドレスは特定できないと思うのですが、どのようにすればよいでしょうか。 ルーティングの設定は意味は理解できるものの実際にできるかどうかまだこれからのなので、不明点があれば改めてお伺いすることとします。 2008年2月5日