web-dev-qa-db-ja.com

Mac OSXはルーティング時にネットワークインターフェイスをどのように優先しますか?

具体的な例を示すと、OSXはどのデフォルトエントリをnetstat -nrからルーティング先に選択するのですか?

Destination        Gateway            Flags        Refs      Use   Netif Expire
0/1                10.10.99.100       UGSc            0        0    ppp0
default            192.168.1.1        UGSc            5        0     en0
default            192.168.1.1        UGScI           1        0     en1
default            192.0.2.1          UGScI         157        2    ppp0 

OSXがルーティングテーブルのエントリではなく、インターフェイスのメトリックを使用していると私が知ることができたことから。しかし、デフォルトでは、これらのインターフェースメトリックはすべて0なので、どのように選択するのでしょうか。最後に作成されたインターフェース?

一部の人々がネットワークの設定でその順序を提案しているのを見てきましたが、私の場合、(SonicWall NetExtenderからの)ppp0インターフェースはそこにリストされていません。

これにはいくつかの議論があります thread ですが、答えはわかりません。

21
studgeek

ほとんどのシステムは、使用するルートを選択するときに次のルールに従います。

  • 最も特定のもののもの(つまり、最長の一致する接頭辞を持つもの)を見つけます。
  • 最も高い優先順位を持つものを選択します。

Linuxでは(そして、おそらくWindowsでは)、優先順位はmetricによって決定されますが、macOSでは正しく指摘されていません。メトリックを個々のルートに割り当てる代わりに、macOSは インターフェースへの優先度 を割り当てます。 networksetup -listnetworkserviceorderを使用してこの注文を表示し、networksetup -ordernetworkservicesを使用して変更できます。

さて、あなたの出力からのこのルートは、あなたの場合には特異性もその役割を果たすと思います:

Destination        Gateway            Flags        Refs      Use   Netif Expire
0/1                10.10.99.100       UGSc            0        0    ppp0

このルートはアドレス空間の下半分をカバーしているため、次のことも期待されます。

128.0/1            10.10.99.100       UGSc            0        0    ppp0

ルーティングテーブル内。これは、VPNソフトウェアがdefaultよりもルートを優先するために使用する標準的なトリックです。すべてのIPアドレスをカバーする2つのルートを追加しますが、それぞれがデフォルトよりも具体的であるため、勝ちます。

9
kirelagin

メトリックが等しい複数のデフォルトルートを持つルーティングテーブルは、負荷分散を行います。ただし、Macの場合、インターフェイスリストにある最初のインターフェイスが選択されます。リストを表示して変更する場合は、「オープンネットワーク設定」に移動します。ここには、イーサネット、空港、モバイルまたは3G経由のPPPなどのネットワークインターフェースのリストが表示されます。リストの下に、アスタリスクの形が表示されます。下矢印付きのオプション。これをクリックして、「サービス注文の設定」を設定します。ここで、特定のインターフェースの設定を変更できます。

http://www.sustworks.com/site/prod_ipnrx_help/html/AlternateRouteHelp.html

15
Samir Sogay