ネットワーク – Ubuntuでネットワーク接続の優先度を設定するには?

connection networking ubuntu

Ubuntu 11.04のマシンがWiFiと3Gを同時に接続している場合、アプリケーション(ブラウザなど)を先にWiFiを使わせる優先順位を設定するにはどうすればいいのでしょうか?それができない場合は3Gを使うはずです

基本的には、ネットワーク接続の使用順序を設定したいと思います

編集:私はちょうど快適で、Ubuntu/Linuxの専門家ではない人のために有用であろう簡単なアプローチを探しています

  51  None  2011-09-04


ベストアンサー

これを行うための最も簡単なコマンドに誰も言及していないことに驚いています。ifmetric.sudo apt-get install ifmetricを使ってインストールすることができます。このコマンドは任意のインタフェースのメトリックを変更するために使用することができます。インターネットの場合は、メトリックの低いインタフェースが好まれます

これを使うには、まずrouteコマンドを使ってメトリクスを見ます

$ route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.42.0.1       0.0.0.0         UG    100    0        0 eth0
0.0.0.0         10.42.0.2       0.0.0.0         UG    600    0        0 wlan0

ここでは、eth0はメトリックが低いので、wlan0よりも優先されます。wlan0を優先したい場合は、そのメトリックを下げてください

sudo ifmetric wlan0 50

さて、ルーティングテーブルは次のようになります

$ route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.42.0.2       0.0.0.0         UG    50     0        0 wlan0
0.0.0.0         10.42.0.1       0.0.0.0         UG    100    0        0 eth0

これでLinuxはインターネットにwlan0を使うようになります。この変更はすぐに反映されます

44  shivams  2017-10-20


メトリックを設定することで、優先順位を変更することができます。高いメトリックは使用するためにより「高価」なので、OSはトラフィックをルーティングする必要がある場合、メトリックが最も低いインタフェースを使用します。このような場合には、特定のネットワーク/デスティネーションに向けてトラフィックをルーティングするために使用できる唯一のインターフェイスであるため、より低いメトリックのインターフェイスがシャットダウンされている場合には、より高いメトリックのインターフェイスを使用します

メトリクスはファイル /etc/network/interfaces で指定されており、リンク先はドキュメントを指しています

テキストエディタを使ってファイルを編集し、ネットワークを識別し、metricパラメータを変更して保存するだけです。再起動は、ネットワークサービスの再起動のようなマニアックな詳細に触れることなく、すべての値をリセットする最も簡単な方法です

15  harrymc  2011-09-09


  1. 一般的なトラフィックのためのインタフェースの優先順位付けは、ルーティングメトリクスを操作することによって行われます。各ルートには、ホップ数や帯域幅などの関連するパラメータがあります。routeコマンドのman-pageの “metric “オプションを参照してください

    $ route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref     Use Iface
    0.0.0.0         192.168.1.254   255.255.255.255 U     0      0        0 eth0
    192.168.1.0     0.0.0.0         255.255.255.0   U     256    0        0 eth0
    
  2. ネットワークリソースへのアプリケーションアクセスの優先順位付けは、しばしば “トラフィックシェーピング “によって対処されている – 私はUbuntuやルータがそれを行うことができるかどうかを確認するために、Web検索エンジンを使用すると思います


Footnote.

MS Windowsではnetstat -nrコマンドはroute printと同じ情報を出力しますが、Linuxでは出力しません。ルーティングメトリクスを含む

7  RedGrittyBrick  2011-09-04


実際に試したことはないのですが、NCD(Network Configuration Daemon – 1)を使えばネットワーク設定を簡単にすると謳っています。構文は簡単なようです

#ネットワーク接続を待つ。eth0の前に置いてeth1を優先する。 list(“NET-eth1”, “NET-eth0”) pnames;

(1) – http://code.google.com/p/badvpn/wiki/NCD

3  Praveen Sripati  2011-09-10


これはすべてルートメトリックが原因です。メトリックの低いデフォルトのルートを削除してから、メトリックの高い古いルートを元に戻したいとします。以下のコマンドを実行してください

あなたのルーティングテーブルは次のようになっているとします

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.16.87.254    0.0.0.0         UG    100    0        0 ens38
0.0.0.0         192.168.151.2   0.0.0.0         UG    101    0        0 ens33
10.16.86.64     0.0.0.0         255.255.255.248 U     100    0        0 ens38
10.16.87.254    0.0.0.0         255.255.255.255 UH    100    0        0 ens38
10.16.88.6      10.16.87.254    255.255.255.255 UGH   100    0        0 ens38
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens38
192.168.151.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

デフォルトのゲートウェイを削除します

# route delete default gateway

これで古いデフォルトゲートウェイを元に戻します(この場合のメトリックは現在のデフォルトルート101よりも102が高いことに注意してください)

# route add default gw 10.16.87.254 metric 102 dev ens38
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.151.2   0.0.0.0         UG    101    0        0 ens33
0.0.0.0         10.16.87.254    0.0.0.0         UG    102    0        0 ens38
10.16.86.64     0.0.0.0         255.255.255.248 U     100    0        0 ens38
10.16.87.254    0.0.0.0         255.255.255.255 UH    100    0        0 ens38
10.16.88.6      10.16.87.254    255.255.255.255 UGH   100    0        0 ens38
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ens38
192.168.151.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

3  PnotNP  2016-08-03


更新] Ubuntu 18.04 LTS (サーバ) では、netplanがネットワーク管理のデフォルトのラッパーとなっています。Netplan の設定は YAML ファイルを介して行われ、デフォルトでは /etc/netplan/01-netcfg.yaml (詳細は こちら)

Routing メトリックは”metric“オプションによって定義され、正の整数を期待します(一般的には100がデフォルト値です)。参考ページのを以下に示します

network:
version: 2
renderer: networkd
ethernets:
eno1:
addresses:
- 10.0.0.10/24
- 11.0.0.11/24
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
routes:
- to: 0.0.0.0/0
via: 10.0.0.1
metric: 100
- to: 0.0.0.0/0
via: 11.0.0.1
metric: 100

metric(パス長)が最も低いルートが「優先ゲートウェイ」になります。(変更を有効にするには sudo netplan try を使用します)

ローミング環境(複数の接続、オンとオフを繰り返す)では、optional (boolean) パラメータを true (デフォルトは false) に設定した方が良いかもしれないことに注意してください

network:
version: 2
ethernets:
enred:
dhcp4: yes
dhcp4-overrides:
route-metric: 100
engreen:
dhcp4: yes
dhcp4-overrides:
route-metric: 200
# this is plugged into a test network that is often
# down - don't wait for it to come up during boot.
optional: true

DHCP接続の場合、ルートメトリックの構文が若干異なることに注意してください

また、NetworkManagerをレンダラとして使うこともできます

renderer
(scalar)

この定義には、指定されたネットワーキングバックエンドを使用します。現在サポートされているのは networkdNetworkManager です。このプロパティは、networks:でグローバルに指定したり、デバイスタイプ(例: ethernets:)に対して指定したり、特定のデバイス定義に対して指定したりすることができます。デフォルトは networkd です

(参考ページの最後の「大きな」例では、両方のレンダラーをハイブリッドで使用しています)

この質問(askubuntu)も参照してください

0  ΦDev  2019-08-08


タイトルとURLをコピーしました