Raspberryに特定のネットワークからインターネットを取得させる


13

起動時にpppとwvdialをオンに設定して3Gドングルに接続するようにRPiを構成しました

/etc/network/interfaces

Piが起動し、インターネットに接続できます。パーフェクト。

私の問題は、イーサネットを介してPiをコンピューターに接続すると(このチュートリアルを使用して)インターネット接続が失われることです。コンピューターから切断した後も接続できないので、インターネットに再接続できるように再起動する必要があります。

Piをコンピューターへの接続を介して接続しようとする代わりに、ドングルのインターフェースを介してインターネットに接続したままにする方法はありますか?


両方の接続でDHCPを使用しますか?
ローレンス14

ifconfigの出力はどのように見えますか?
ベックス

eth0にppp0よりも高いメトリックを設定すると、目的を達成できます。低いメトリックは、優先度の高いメトリックです。
ローレンス

回答:


6

Linux(raspian、debianなど)での作業を想定しています:

2つの異なる質問をする場合、最初にタイトルの質問に答えます。

Raspberryに特定のネットワークからインターネットを取得させる

「インターフェイス」ではなく「ネットワーク」という言葉に固執し、純粋なIPの意味でこれに答えます。

インターネットを提供できる複数の接続がある場合は、ルートテーブルを介してどちらを使用するかを制御します。

私が通常使用するルーティングテーブルを表示するにはnetstat -rn-r「ルーティングを表示」、-n「番号を表示、DNSルックアップを試行しないでください。インターネットが正しく構成されていないとハングする可能性があります」)。本当に簡単な例は次のようになります。

pi@homeServer ~ $ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.9.1     0.0.0.0         UG        0 0          0 eth0
192.168.9.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
172.20.10.0     0.0.0.0         255.255.255.240 U         0 0          0 wlan0
pi@homeServer ~ $ 

IPパケットがどの方向に進むかを示すその出力の行は0.0.0.0、の宛先とgenmaskを持つ行であり0.0.0.0、通常はとして知られていますdefault route(のマスク0.0.0.0はすべてワイルドカードで、実際にはデフォルトルートのマーカーです)。現在、「192.168.9」の範囲の特定のアドレスを指しているため、インターネットトラフィックはイーサネットインターフェースを経由します。

インターネットを他のネットワークに切り替えたい場合は、(ルートとして)routeコマンドを使用します。この場合、wifi接続がポイントツーポイントではない場合、ルーターのIPアドレスを知る必要があります。そのネットワークからトラフィックを転送します(私の場合は172.20.10.1そうです)。

  1. 現在のデフォルトルートを削除する

    sudo route del default
    
  2. 他のネットワークの新しいデフォルトルートを追加する

    sudo route add default gw 172.20.10.1
    

FYIながらroute、私が使用するものですが、私はいくつかは、それが非推奨となり、代わりに使用することをお勧め考える参照ip routeコマンドを、構文については、以下の@Fredのコメントを参照してください。非推奨のリファレンス

ドングルのインターフェースを介して接続を維持する方法はありますか

、およびを使用して作業しpppwvdial構成(または少なくともそれらをセットアップする際のガイドへの参照)なしで作業してからしばらく経ちますが、実行中の問題を推測するのは非常に困難ですが、いくつかのアイデアがあります:

  • 接続が本当にダウンしているか、eth0が起動したときにデフォルトルートを失っただけですか?
    • との両方netstat -rnでこれを確認してくださいifconfig
    • インターフェースはnetstat -rn?もしそうなら、それへのデフォルトルートはありますか?
    • ではifconfig、あなたが(おそらくドングル用のインターフェイスを参照くださいppp)?それはUP
  • どこでppp/ wvdialログを記憶することはできませんが、それを確認する必要があります。そのログは接続状態を示し、何らかの理由でシステム全体がシャットダウンしたかどうかを知らせます。
  • インターフェイスが表示されている場合は、そのインターフェイス上でping何か(...何でも...)を試して、接続が確立するかどうかを確認します。
    • ppp/ wvdialコンボにはいくつかの自動接続機能があることがわかっています(構成によって異なります)
      • そのため、接続にpingが発生した場合(または接続がずっと停止しなかった場合):イーサネットを起動したときに失われた(ppp)デフォルトルートである可能性があります。
      • これが問題になる場合は、デフォルトルートを追加するだけで、システム全体がオンラインに戻ります。

2
ip route同じ構文をまったく使用していません。ただし、入力として使用する出力をコピーして貼り付けることができます。たとえば、が表示されている場合default via 192.168.9.1 dev eth0、を実行するだけでそのルートを削除できますip route del default via 192.168.9.1 dev eth0。出力をテンプレートとして簡単に使用して、新しいコマンドを追加できますip route add default via 172.20.10.1 dev wlan0
フレッド14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.