Raspberry Piで有線・無線のどちらでネットにつなぐかを設定する(Raspberry Pi以外でも可?)


背景

Raspberry Pi3(以下 ラズパイ)の有線・無線LANをそれぞれ異なるルータに接続した。
しかし、有線LAN側のルータは外部のネットワークにつないでいない。
この状態で外部のネットワークに接続しようとすると、有線LANの方に接続を試みようとしてしまい、結果的に接続ができない。
どうにかして無線LANの方を通してインターネットに接続させたい。

この設定は私の環境でしか試していないため、他の環境で正しく動作するかはわからない。
また、もっと良い設定方法があるのかもしれない。

【追記】
この設定を行ってから、一部のアクセス(SSLを用いている?)ができなくなった。設定のせいなのか、ルータ等の設定が悪いのかはわからない。
試す場合はそのことを頭に入れておいて下さい。

環境

  • Raspberry Pi3 model B
  • Raspbian 8.0(jessie)
  • 有線も無線もDHCP設定

解決策

メトリックとか優先順位とかいろいろあってよく分からなかったが、とりあえず以下の方法を見つけた。

有線LAN側のデフォルトゲートウェイを設定させなければ、無線LANのデフォルトゲートウェイが使用されるらしい。
/etc/dhcpcd.confの設定を書き換える(追記する)。

# root権限で編集する。vimの部分はお好きなエディタを(nanoとか)
$ sudo vim /etc/dhcpcd.conf
# 有線LANのデフォルトゲートウェイを無効にするための設定
# static routers:デフォルトゲートウェイ
# static domain_name_servers:NDSサーバ
# 全てを無効(0.0.0.0)にする
interface eth0
static routers=0.0.0.0
static domain_name_servers=0.0.0.0

ラズパイを再起動する。インタフェースの再起動では無理(?)。

$ sudo reboot

おわりに

固定IPを使用している場合については試していないが、おそらく期待した動作をしてくれると思う。
Raspberry Pi以外の環境でも設定手順は異なるだろうが、同じ設定でいけると思う。

また、Windowsでも同様に有線・無線LANが接続されている状態で、有線LANのデフォルトゲートウェイを設定しなければ、無線LANの方でインターネットに接続してくれる。