トップ回答者
cmd の netstat -r と powershell の Get-NetIPInterface で表示されるメトリック値について

質問
-
私の自宅には複数の Windows PC があり、それぞれ有線 LAN の NIC と無線 LAN の NIC を持っています。それぞれのネットワークアダプターについて、自動 DHCP は使わず、IP v4 アドレスを手動で決め打ちし、IP v6 は無効にしています。
ローカルでは有線 LAN で IP アドレス直打ちで相互通信し、インターネットには無線 LAN で接続しています。(当然、デフォルトゲートウェイは無線ネットワークアダプターにのみ設定しています)
Windows 7 の時までは、これで何の不満も無かったのですが、各 PC を Windows 10 に乗り換えたところ、「有線 LAN の IP アドレスを直打ちで指定しているのに、実際に使われるのは無線 LAN」という現象が多発するようになりました。このため、ローカルの相互通信が遅くなり、不満があります。
調べてみたところ、各ネットワークアダプターの「メトリック」を自動ではなく手動設定すれば、各ネットワークアダプターの優先順位を設定できると分かり、とりあえずその設定をしてみたのですが、その結果確認として標記のコマンドを打ち込んでみたところ、それぞれ表示されるメトリック値が異なります。
「設定」「ネットワークとインターネット」「アダプターのオプションを変更する」で変更したメトリック値は、powershell の Get-NetIPInterface では正しく反映されていますが、cmd の netstat -r では全く異なる値が表示されます。
これは、「Windows 10 の netstat は『古い』ものであり非推奨、powershell を使うべき」なのか、「netstat の結果値の『見方』がある」のか、あるいはまさかと思いますが「netstat のバグ」なのか、多少調べてみましたが判然としません。
この「netstat -r で表示されるメトリック値」について、明確な答えが知りたいです。よろしくお願い致します。
倉田
回答
-
Windows 10 1803 の環境で、デフォルトゲートウェイを設定している NIC のメトリック値を手動設定して、それぞれ netstat -r と Get-NetIPInterface を実行してみましたが、 netstat -r ではデフォルトルートに、Get-NetIPInterface では設定した NIC にメトリック値が正しく反映されていました。
Fan さん (flingmin さん) が仰っている通り、問題のスクリーンショットや出力結果を共有頂けると何かしら分かるかもしれませんね。
なお、 netstat -r はルーティングテーブルの表示、Get-NetIPInterface はネットワークインターフェースの情報を表示している認識です。
また、その様に複数のネットワークインターフェースを持つ環境で、特定の宛先には特定のインターフェースを使いたい場合は、以下の後半で解説されている様に route add コマンドで静的ルートを追加する方が適切だと思います。
https://www.atmarkit.co.jp/ait/articles/0212/14/news002.html
route add コマンドについては、以下も確認しておくと良いでしょう。
https://www.infraexpert.com/study/routing4.html
https://www.atmarkit.co.jp/ait/articles/0301/11/news003.html
https://blogs.technet.microsoft.com/jpntsblog/2014/12/24/route-add-if/
- 回答の候補に設定 flingminMicrosoft contingent staff, Moderator 2019年6月26日 7:44
- 回答としてマーク Haruka6002Microsoft contingent staff, Moderator 2020年3月24日 1:41
すべての返信
-
こんにちは。フォーラムオペレーターのFanです。
フォーラムにご投稿くださいましてありがとうございます。
問題のスクリーンショット等、詳細な状況を共有いただくことで他のユーザー様よりのご意見が集まりやすくなります。
上記の問題点につきまして経験がある方、ご意見を共有頂ければ本当に有難いです.
どうぞよろしくお願いいたします。
Fan
Please remember to mark the replies as an answers if they help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com
-
Windows 10 1803 の環境で、デフォルトゲートウェイを設定している NIC のメトリック値を手動設定して、それぞれ netstat -r と Get-NetIPInterface を実行してみましたが、 netstat -r ではデフォルトルートに、Get-NetIPInterface では設定した NIC にメトリック値が正しく反映されていました。
Fan さん (flingmin さん) が仰っている通り、問題のスクリーンショットや出力結果を共有頂けると何かしら分かるかもしれませんね。
なお、 netstat -r はルーティングテーブルの表示、Get-NetIPInterface はネットワークインターフェースの情報を表示している認識です。
また、その様に複数のネットワークインターフェースを持つ環境で、特定の宛先には特定のインターフェースを使いたい場合は、以下の後半で解説されている様に route add コマンドで静的ルートを追加する方が適切だと思います。
https://www.atmarkit.co.jp/ait/articles/0212/14/news002.html
route add コマンドについては、以下も確認しておくと良いでしょう。
https://www.infraexpert.com/study/routing4.html
https://www.atmarkit.co.jp/ait/articles/0301/11/news003.html
https://blogs.technet.microsoft.com/jpntsblog/2014/12/24/route-add-if/
- 回答の候補に設定 flingminMicrosoft contingent staff, Moderator 2019年6月26日 7:44
- 回答としてマーク Haruka6002Microsoft contingent staff, Moderator 2020年3月24日 1:41
-