具体的な例を示すと、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 ですが、答えはわかりません。
ほとんどのシステムは、使用するルートを選択するときに次のルールに従います。
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つのルートを追加しますが、それぞれがデフォルトよりも具体的であるため、勝ちます。
メトリックが等しい複数のデフォルトルートを持つルーティングテーブルは、負荷分散を行います。ただし、Macの場合、インターフェイスリストにある最初のインターフェイスが選択されます。リストを表示して変更する場合は、「オープンネットワーク設定」に移動します。ここには、イーサネット、空港、モバイルまたは3G経由のPPPなどのネットワークインターフェースのリストが表示されます。リストの下に、アスタリスクの形が表示されます。下矢印付きのオプション。これをクリックして、「サービス注文の設定」を設定します。ここで、特定のインターフェースの設定を変更できます。
http://www.sustworks.com/site/prod_ipnrx_help/html/AlternateRouteHelp.html