無線LANに接続するときにルートを自動的に追加するにはどうすればよいですか?

無線LANに接続するときにルートを自動的に追加するにはどうすればよいですか?

私は Debian 9.9 Linux を使用する Beaglebone Black デバイスを持っています (UI なし、これにはターミナルを使用しています)。 (Beaglebone Black の最新イメージhttps://beagleboard.org/latest-images

conmannctl を使用して Wi-Fi を有効にし、正常に接続しました。(https://fis.gatech.edu/how-to-configure-bbw-wifi/

Wi-Fi に接続したときに、外部 (8.8.8.8 または www.google.com) に ping できません。

次の方法でルートを手動で追加する必要があります: ip route 192.168.1.1 dev wlan0 経由でデフォルトを追加 外部から接続できるようになります。自宅のIP範囲は192.168.1.xです

これを異なるWLAN IP範囲(例えば192.168.10.x)の場所で実験して使用したいのですが、そのためには以下を実行する必要があります。 ip ルートは 192.168.10.1 dev wlan0 経由でデフォルトを追加します

IP ルートを入力して追加することなく、異なる WLAN IP 範囲を持つ別の場所に接続できる方法を探しています。

昨日からこの件について調査していましたが、どうやら ip route add コマンドだけにインターフェースを提供することはできず、IP を常に提供する必要があるようです。(あるいは、Google のキーワードを正しく入力していないのかもしれません。)

インターフェイス (無線 LAN) に接続するたびにルートを自動的に設定する方法はありますか? USB を LAN に接続することも試しましたが、外部から接続するには ip route コマンドを手動で発行する必要もあります。

現在、ifconfig 出力に対して正規表現解析を実行し、wlan0 の IP の最初の 3 つの数字 (例: 192.168.10) を取得して .1 を追加し、これを使用して Python 内で ip route add コマンドを実行する Python スクリプトを作成することを考えています。

ただし、Ubuntu マシンで Wi-Fi に接続すると (UI を使用)、Wi-Fi が接続されるとすぐにインターネットを閲覧できるため、これには Linux プロセスが組み込まれているのではないかと考えています。

答え1

これを解決する通常の方法は、すべての LAN セグメントで DHCP サーバーを実行し、この LAN セグメントに接続するすべてのマシンで DHCP クライアントを実行することです。

DHCPプロトコルデフォルト ゲートウェイなどのルーティング情報や、使用する DNS サーバーなどのその他の情報を配布できます。

Ubuntu マシンで動作する場合、WLAN セグメント (おそらく AP 上) で DHCP サーバーが実行されている可能性があります。

したがって、Beaglebone で DHCP クライアントを実行してみてください (Beaglebone ディストリビューションが使用するものは何でも、dhclientディストリビューションでよく使用されます)。そして、何かが得られるか確認してください。

次に、接続時にこれを自動的に実行するように Beaglebone を構成します (Beaglebone ディストリビューションで他に何が実行されているかに応じて、これを行う方法はいくつかあります)。

関連情報