at_keitaro.takahashi
2019年1月8日 14時03分
※本記事は、Linux4.9環境(Debian Stretch)のユーザーを対象としています。Linux3.14環境(Debian Jessie)での動作は保証していないためご注意ください。
Armadillo-IoT G3/G3L(以下Armadillo)で、NetworkManagerを使用し有線LAN・無線LAN・3G/LTEのコネクションを作成した際のメトリックは、デフォルトで有線LAN>無線LAN>3G/LTEという優先度になるように設定されます。
メトリックを確認する
例として、ArmadilloでNetworkManagerを使用し有線LAN・無線LAN・3G/LTEのコネクションを作成した場合に、それぞれの接続のメトリックを確認してみます。
routeコマンドを使用することで、接続のメトリックを確認することが可能です。
[armadillo /]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 172.16.0.1 0.0.0.0 UG 100 0 0 eth0
default 192.168.10.10 0.0.0.0 UG 600 0 0 wlan0
default 192.168.15.1 0.0.0.0 UG 700 0 0 usb1
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
172.16.0.0 0.0.0.0 255.255.0.0 U 100 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 600 0 0 wlan0
192.168.15.0 0.0.0.0 255.255.255.0 U 700 0 0 usb1
メトリック(5列目の「Metric」)が低いほど、接続が優先して使用されます。上記の例だと、eth0(有線LAN)が100、wlan0(無線LAN)が600、usb1(3G/LTE)の接続が700となっており、eth0が優先して使用されるようになっています。
接続の優先度を変更する
実際に、NetworkManagerを使用し、メトリックを変更した例を示します。
まず、以下のコマンドを実行し、メトリックを変更したい対象のUUIDを確認してください。
[armadillo /]# nmcli connection
確認したIDを指定し、ipv4.route-metricを変更することでメトリックを変更することができます。
以下は、3G/LTEのメトリックを50に設定した例です。
[armadillo /]# nmcli connection modify [LTEのUUID] ipv4.route-metric 50
[armadillo /]# nmcli connection down [LTEのUUID]
[armadillo /]# nmcli connection up [LTEのUUID]
実行すると、3G/LTEのメトリックが変更されていることを確認できます。
[armadillo /]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.15.1 0.0.0.0 UG 50 0 0 usb1
default 172.16.0.1 0.0.0.0 UG 100 0 0 eth0
default 192.168.10.10 0.0.0.0 UG 600 0 0 wlan0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
172.16.0.0 0.0.0.0 255.255.0.0 U 100 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 600 0 0 wlan0
192.168.15.0 0.0.0.0 255.255.255.0 U 50 0 0 usb1
この状態でインターネット等に接続すると、最もメトリックの低いusb1(3G/LTE)が優先して使用されます。