ネットワークについて質問です。

linux ノートをルータとして、無線LAN接続を他のPCと共有しようとしています。
しかし、思い通りにならず困っています。
こちらに接続や設定、症状などの詳細を書こうとしたのですが、文字数制限にひっかかってしまい、書くことができませんでした。
なので、http://h.hatena.ne.jp/lieutar/243601189804924027 に詳しい質問を書かせていただきましたので、そちらを参照した上でご回答おねがいします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/08/25 07:10:19
  • 終了:2011/09/01 07:15:02

回答(1件)

id:km1981 No.1

km1981回答回数429ベストアンサー獲得回数492011/08/25 11:45:02

ポイント500pt

pc2をアクセスポイントにするためには

hostapdのようなデーモンを入れていると思いますが

これとWiFiカードのチップセットの適合はとれていないのだと思います

http://hostap.epitest.fi/hostapd/


使っているアクセスポイントと

WiFiカードの種類と

デバイスドライバの種類を教えてください

id:lieutar

ご回答ありがとうございます。

pc2 はルータ化しますが、無線LANアクセスポイントにはしません。

あくまで、pc2 の wlan0 はアドホックモードで、router1 との通信を、pc1 と有線により共有しようとしています。

とは言え、アクセスポイント化にも興味がありますので、後学のために参考にさせて頂きます。

2011/08/25 16:58:03
  • id:fmht7
    pc2.eth0にてarp_ignore = 1となっているのがarpに応答しない理由のように思われますが、このように設定されているのは何か理由がありますか?
    もし支障なければarp_ignore = 0と変更したら何か変化ありますでしょうか?
    参考:
    http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43009&forum=10&start=8
    http://www.valinux.co.jp/contents/tech/techlib/eos/linux_arp/linux_arp.html
  • id:JULY
    おそらく、下記のページにある様に、eth0 側に eth1 側の IP アドレスで arp リクエストがあった時に応答しないようにするためでしょう。

    http://www.valinux.co.jp/contents/tech/techlib/eos/linux_arp/linux_arp.html

    これ自体は問題ないと思うのですが、むしろ、

    - pc2 から、192.168.10.0/24 に対する接続が、すべてループバックのように扱われてしまう。lo インターフェイスを覗いてみれば、192.168.10.0/24 に対するパケットがみえる
    - pc2 は、eth0 からときどき rip のパケットを出しているらしい

    が気になります。何かルーティング用のソフト(zebra とか)が動いていて、それが iptables にリダイレクトを入れている、とか、その辺の可能性はないでしょうか?
  • id:lieutar
    > ふむ さん

    arp_ignore の設定については、JULYさんに指摘していただいた通りです。

    http://www.nminoru.jp/~nminoru/diary/2008/02.html#20080206p1 にあるように、
    >>
    0 (default) では各インターフェイスはホストマシンの全ての IP アドレスに対して ARP レスポンスを返してしまう。
    1 を指定するとターゲットとなる IP アドレスの割り振られたインターフェイスだけが ARP レスポンスを返すようになる。
    <<
    なので、arp_ignore=1 は、arpを無視すると言う意味ではないようです。また、arp_ignore=0のときでも、質問のときのような状況はあり、上記ページ等を参照しつつ、パラメータを触ってみた結果、質問のような構成になっていると言った感じです。

    ---
    > JULY さん

    iptables については現状、全くノータッチでしたので、実機の前に戻り次第調査させて頂きます。
  • id:lieutar
    >JULYさん

    実機を今、さわっています。

    iptables -L の結果は、あらゆる chain が設定されておらず、表のキャプションと
    カラム見出しだけが表示されている状態です。
    あと、とくにルーティングソフトなどは導入していません。
  • id:JULY
    > iptables -L の結果は、あらゆる chain が設定されておらず、表のキャプションと
    > カラム見出しだけが表示されている状態です。
    > あと、とくにルーティングソフトなどは導入していません。

    そうですかぁ。う~ん、rip を勝手に吐くってことはあるのかなぁ...。

    仮に、wlan0 を落とすと、eth0 の arp 問題はどうなりますか? 気になるのは、eth1 と wlan0 が同一セグメントなので、そうするのであれば、ブリッジの設定が必要な気がします。

    ただ、そのことと、eth0 での arp の問題が結びつくか、となると、ちょっと疑問です。もし、wlan0 落として eth0 の arp 問題が解決するのであれば、何らかの因果関係があることになります。
  • id:lieutar
    >JULYさん

    RIPは、ip_forward = 1 と設定した結果吐いているように思っていたんですが、元の0にしてもやっぱり吐いていたので、ご指摘の通り何かサービスが動いているのかもしれません。
    slackware は、インストーラの推奨設定で導入して、どのようなサービスが動いているのか完全に把握できていません。

    インストーラの推奨設定といえば、bridge-utils も入っていたのでブリッジ接続を試みてみました。しかし、ブリッジにwlan0を追加することができず、結局は目的を達成するには、ルータとして設定するしかなさそうです。

    ところで、ここでの問題は、ご指摘の通りルータやブリッジとしての設定はともかく、eth0の振る舞いの奇妙さというのが大きく、他のインターフェイスを落としたり、上げたりしつつ動作の違いを観察しています。
    wlan0 を落としても振る舞いに差はありません。さすがにループバックを落とすと、ループバックされる問題は再現しませんが、arpも無視したままです。

    かといって、eth0がいつも使えないかといえば、そんなことなくて、今、pc2より、eth0 にイーサネットコンバータを繋いで、wlan0を落として、ルーティングテーブルを書き換えて書き込みをしています。eth0 は、192.168.1.128/24 になっていますが、192.168.10.1/24 の時のように同一ネットワーク上の存在しないIPに投げたパケットがループバックとなったりもしていませんし、なんか拍子抜けするぐらいに普通に接続できています…
  • id:JULY
    私も混乱してきたので(^^; 改めて Haiku の方に書かれた構成を見直していたのですが、pc2 に関して、nic は合計で3つあって、うち1つが wlan、残りが eth ということで合ってますか? だとすると、eth1 に関する情報が書かれていませんが、eth1 の IP とかはどうなってますか?

    私も勘違いしていて、なんとなく、eth1 は 192.168.1.0/24 のセグメントで、ルータと同一セグメントにつながっている、と思っていたのですが、よくよく見ると、eth1 に関して記述は無かったですね。

    だとすると、そもそもルータは、pc2 のどのインタフェースにつながっているのか、といった疑問もあります。eth0 側につながっているのですか?

    あと、RIP に関してですが、pc2 から吐いている、で間違い無いですか? ルータが吐いていてい、受け取っているパケットを見ている、という事はないですか? 本当に吐いているとしたら、やっぱり、何かが動いているのだと思います(先のコメントで Zebra って書きましたが、今時だと Quagga かな)。

    私が勝手に、「ルータは eth1 側につながっている」と思い込んでいたので、「eth0 を 192.168.1.128/24 にしたら繋がった。」というのが、かなり「?」な状態です。eth0 と eth1 でブリッジを構成しているなら、理解できるのですが...。
  • id:lieutar
    > JULYさん
    ども。コメントありがとうございます。
    pc2 の nic は 2つです。 eth1 はありません。

    pc2.eth0 が 192.168.10.0/24 のセグメントです
    pc2.wlan0 が 192.168.1.0/24 のセグメントです

    ルータは pc2 と直接は繋がっておりません。wlan0 と、router1 の無線通信です。
    pc2 に、有線LAN の 192.168.10.0/24 と、無線LAN の 192.168.1.0/24
    とを結ぶ役割をさせようとしています。

    RIP は、pc2 が吐いていると思っている(source は 192.168.10.1 なので)のですが、
    どのようなプロセスが吐いているのか把握できていません。
    この接続を試みようとしたとき、
    通常、何かルーティングソフトを入れるものだと言うことも知らなかったもので、
    何も意識的には入れなかったのですが、現状、quagga はビルド中です。
    (コンパイルエラーが起きるのでそのあたりを調査中)

    ブリッジについては、pc2.wlan0 と pc2.eth0 のブリッジを試みましたが、
    ブリッジに wlan を加えることはできないみたいで
    ( operation not supported とエラーメッセージがでる )
    ブリッジがだめなら、ルータ化できないかと試行錯誤中と言うのが現状です。
  • id:JULY
    > pc2 の nic は 2つです。 eth1 はありません。

    そうだったんですね。私の勘違いで、混乱させて申し訳ありません。

    > 通常、何かルーティングソフトを入れるものだと言うことも知らなかったもので、

    いや、そうではなくて、固定のルーティングテーブルの場合には、例の ip_forward = 1 で十分で、rip のように、動的にルーティングテーブルを更新する場合には、何らかのソフトを動かす必要がある、というものです。

    で、ふと思ったのですが、目的の構成だと、

    pc1-----(192.168.10.0/24)-----eth0=pc2=wlan-0----(192.168.1.0/24)----ルータ

    ということですよね。だとすると、ルータ側のルーティングテーブルに、「192.168.10.0/24 への通信は、192.168.1.128(pc2 の wlan0 の IP アドレス)をゲートウェイにする」という情報を追加する必要があります。もし、このルーティングテーブルへの追加を、自動で行おうとしたら、pc2 で quagga 等を動かして、ルータで rip を有効にしてやる、ということになりますし、ルータ側に手動で追加しても構いません(この場合は pc2 側にルーティングソフトは不要です)。

    ...でも、arp の件は説明できないなぁ...。
  • id:lieutar
    > JULYさん
    度々ありがとうございます。

    ルータ側のルーティングテーブルに、192.168.10.0/24 の情報を書き加えるのは、192.168.1.0/24 側から 192.168.10.0/24 への通信が必要ない場合にも必要なのでしょうか?
    現状、192.168.1.0/24 側に pc1 へのアクセスが必要そうな端末が無いため、ルータの方はノータッチ、もし必要なら、 pc2 に NAT の設定をすればよいのかと思っていました。

    arp の件ですが、通常、クロスケーブルや、ハブを挟んだストレートケーブルで接続した場合、それだけでクローズドなネットワークは作れるものだと考えており、今回のケースでは、pc2 が pc1 の arp 要求に答えない事が問題で、接続方法などには問題がないと考えていますが、この認識は正しいでしょうか?
  • id:JULY
    > ルータ側のルーティングテーブルに、192.168.10.0/24 の情報を書き加えるのは、
    > 192.168.1.0/24 側から 192.168.10.0/24 への通信が必要ない場合にも必要なのでしょうか?

    必要です。ポイントは、ルーティングはあくまでも、IP パケットの単位で行われる点です。

    おそらく、ルータで NAPT(いわゆる IP マスカレード)をしていると思いますが、今、仮にルータの外側の IP アドレス xxx.xxx.xxx.xxx、つなごうとしたインターネットにあるホストのアドレスを yyy.yyy.yyy.yyy だったとします。

    ルータから出ていく時のパケットは、発信元の IP アドレスが xxx.xxx.xxx.xxx に変換され、発信元ポート番号がその時点で使われていない、適当なポート番号が選択されます。仮に、そのポート番号が 10000 で、元々のパケットの発信元ポート番号が 20000 だったとすると、ルータ上の管理テーブルに下記のような情報が残ります。

    ---------------------------------------------
    ○オリジナルのパケット:
    発信元 IP アドレス .... 192.168.10.2
    発信元 ポート番号 .... 20000

    ○変換後のパケット:
    発信元 IP アドレス .... xxx.xxx.xxx.xxx
    発信元 ポート番号 .... 10000

    ○宛先情報
    宛先 IP アドレス .... yyy.yyy.yyy.yyy
    宛先ポート番号 .... 80
    ----------------------------------------------

    インターネット側から戻ってくるパケットは、下記のようなパケットになります。

    ----------------------------------------------
    発信元 IP アドレス .... yyy.yyy.yyy.yyy
    発信元ポート番号 .... 80
    宛先 IP アドレス .... xxx.xxx.xxx.xxx
    宛先ポート番号 .... 10000
    ----------------------------------------------

    この時、前述の保存してある情報と付きあわせて、このパケットを下記のように変換します。

    ----------------------------------------------
    発信元 IP アドレス .... yyy.yyy.yyy.yyy
    発信元ポート番号 .... 80
    宛先 IP アドレス .... 192.168.10.2
    宛先ポート番号 .... 20000
    ----------------------------------------------

    ここで、ルータはこのパケットを指定されている宛先に届けようとする訳ですが、192.168.10.2 は自分自身が直接つながっているセグメント(192.168.1.0./24)ではないので、どこかのゲートウェイに投げる必要があります。

    この時、192.168.10.0/24 へのゲートウェイが指定されていなければ、ルータから見たデフォルトゲートウェイ、つまり、ISP 側へパケットが送られる事になります。

    例えると、電話でこっちの声は相手に聞こえているのに、相手の声が聞こえないような状態になります。

    > もし必要なら、 pc2 に NAT の設定をすればよいのかと思っていました。

    それでも可能です。前述の理屈を考えれば分かると思いますが、ルータがパケットを受け取った時点で、192.168.10.0/24 のアドレスではなく、192.168.1.0/24 のアドレスになっていれば、戻りのパケットはルータから見て、直接つながっているネットワークなので、pc2 へ送られて、更に pc2 が NAPT をほどいて転送する事になります。

    > arp の件ですが、通常、クロスケーブルや、ハブを挟んだストレートケーブルで
    > 接続した場合、それだけでクローズドなネットワークは作れるものだと考えて
    > おり、今回のケースでは、pc2 が pc1 の arp 要求に答えない事が問題で、接続
    > 方法などには問題がないと考えていますが、この認識は正しいでしょうか?

    最終的に 192.168.10.0/24 のセグメントから pc2 を介して、インターネットへアクセスするには、前述のルータ上のルーティングテーブルの話が必要なのですが、そもそも、eth0 に 192.168.10.0/24 の IP アドレスを指定している時に、arp の応答がないのは、それ以前の問題、といった感じです。arp が返ってこない、という事は、そもそも、pc2 の eth0 へ ping を打っても応答がない、ということですよね。

    接続自体は、まぁ、「コンセント刺さってますか?」のレベルの可能性も 0 ではないので(たまに自分もやる(^^;。散々悩んだ挙句にケーブルが抜けてた、とか)、絶対大丈夫とは言えませんが、1つ前の私のコメントで書いた模式図で、pc1 と pc2 の eth0 の間が、クロスケーブルで直接つなごうが、間にハブが入っていようが、違いはありません。そのハブが、別のケーブルで直接ルータにつながっている、なんて事が無ければ。

  • id:lieutar
    > JULYさん
    丁寧なご回答、毎度恐縮です。
    NAPTの件、理解できました。
    ルーティングのプランも練り直すべきですが、一旦棚にあげ、現状自分の取り組むべき問題は、自信の所属するネットワークに対するpc2からの要求をループバックに委ねてしまう問題や、arpを無視しているというpc2.eth0のふるまいについての理解の問題と、ripを発行しているものがなにか特定する問題のように思えました。
    ところで、現状有効な回答は期待しにくくなってきているのではないかと思えますし、また、回答として頂いているものは質問の意図を少し捉え違えられているようにも思えます。
    現状、私の側でこの問題についての進捗は、JULYさんによってもたらされたものですし、現状のまとめであれ、「コメント参照」等の一言であれ、質問に対する回答という形での投稿を頂けないでしょうか?
  • id:JULY
    > ルーティングのプランも練り直すべきですが、一旦棚にあげ、
    > 現状自分の取り組むべき問題は、自信の所属するネットワークに
    > 対するpc2からの要求をループバックに委ねてしまう問題や、
    > arpを無視しているというpc2.eth0のふるまいについての理解の
    > 問題と、ripを発行しているものがなにか特定する問題のように
    > 思えました。

    そうですね。この「そもそも arp のリプライが無い」という状態が、なんとも不思議で、何か特殊な状態になってしまっているような気がします。

    ...って書いていて、思いついたんですが、ひょっとしたら NetworkManager が悪さをしているかもしれません。

    NetworkManager は、、ダイアルアップや無線 LAN、VPN など、ユーザ側の都合で繋いだり、切ったりする物を便利に使えるようにするもので、接続、切断時に様々なネットワーク周りの設定変更を自動的に行います。で、NetworkManager の機能で無線 LAN を有効にすると、「基本、無線 LAN 側で通信」という状態に変更されているのかもしれません。確か、Windows でダイアルアップ接続をすると、デフォルトゲートウェイや参照する DNS サーバなどが、ダイアルアップ側で設定されたものに変更されたと思うのですが、これに似た動きになります。

    ただ、私自身は、NetworkManager に明るくない(というか使ったことがない(^^;)ので、具体的な調査方法や解決策はわかりません。lieutar さんが今後、調査していく上での参考になれば幸いです。

    # CentOS/RHEL だと、/etc/sysconfig/network-scripts/ifcfg-eth0 といったファイル
    # の中身を編集すると、NetworkManager の管理下から外す事ができたはず。

    > 現状のまとめであれ、「コメント参照」等の一言であれ、
    > 質問に対する回答という形での投稿を頂けないでしょうか?

    時間切れになってしまいましたね(^^;。

    コメントを書いている間に、「ここが怪しい!」というポイントが見つかれば回答の方に書こうと思っていたのですが、最初にネットワーク構成を勘違いしてこともあって、うまく、回答に結び付ける事ができなくて残念でした。

    まぁ、私のコメントも、問題の回答じゃなくて、周りくどい話が多かったので、適切な回答にはならないですが、多少なりとも lieutar のお役に立てたのであれば嬉しいです。
  • id:lieutar
    > JULY さん

    なんだかフォーカスはルーティングと言うよりは、さらに下のレベルの問題となったので別質問でも立てた方がスジかなぁとか、そんな気がしてきていたので、一旦この質問を閉じたいと思ってました。前のコメントまでは。

    で、懸案事項の、arp の無視とか、192.168.10.0/24 がそもそも繋がらないって事ですが……原因不明のまま現象が再現しなくなってしまいました。
    pc2 の奇妙な振舞いは、その後ネットワークだけに留まらないようになり、最終的にはマウントしたドライブが読み書き出来ているにも関わらず、mount コマンドを実行してもマウントされていないように表示されたりとか、なんだかわけがわからなくなってきたので一旦再起動してみたんです……そしたら現象が再現しなくなって……

    で、今、pc2 に ipマスカレードの設定をして、pc1 から書き込んでいます。
    目的の状態に、とりあえずは漕ぎ着けることができました。
    多分、ここでのやりとりがなければ、iptables の設定をするまでにもうしばらく迷ったと思うので、arp の現象が再現しなくなった途端、現状のような接続が出来ているのは、JULYさんとのやりとりのおかげだと思います。

    あまりに奇妙な振舞いをしえるのは、もしかして pc2 のハード的問題があるのかもしれません。でも、それは現象が頻繁に再現するようになってから考えるとして…とりあえずは満足…とりあえずお礼がしたいです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません