私はOSXYosemiteを使用しており、2つの異なるアクティブな接続があります...- WIFI(en0)-テザリングUSB(en7)
SnakeBook:~ root# netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 14 4 en0
default 192.168.42.129 UGScI 0 0 en7
今...私は接続をテザリングすることによっていくつかのウェブサイトを閲覧するためのルートを追加する必要があります。たとえば、en7を使用してspeedtest.netでspeedtestを実行したいとします。 Speedtestは私のDNS(OpenDNSを使用する192.168.1.1)によってこのように解決されます...
SnakeBook:~ root# nslookup speedtest.net
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: speedtest.net
Address: 216.146.46.10
Name: speedtest.net
Address: 216.146.46.11
今...私は2つのルートを追加しました:
SnakeBook:~ root# route add -Host 216.146.46.10 192.168.42.129
add Host 216.146.46.10: gateway 192.168.42.129
SnakeBook:~ root# route add -Host 216.146.46.11 192.168.42.129
add Host 216.146.46.11: gateway 192.168.42.129
SnakeBook:~ root# netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 14 4 en0
default 192.168.42.129 UGScI 0 0 en7
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 3 13259 lo0
169.254 link#4 UCS 0 0 en0
169.254 link#12 UCSI 0 0 en7
192.168.1 link#4 UCS 3 0 en0
192.168.1.1/32 link#4 UCS 1 0 en0
192.168.1.1 0:1c:f0:38:4e:49 UHLWIir 17 509 en0 1199
192.168.1.4/32 link#4 UCS 0 0 en0
192.168.1.7 30:59:b7:a6:3b:cf UHLWI 0 0 en0 1155
192.168.1.8 64:9a:be:ee:43:93 UHLWI 0 0 en0 1105
192.168.1.255 ff:ff:ff:ff:ff:ff UHLWbI 0 3 en0
192.168.42 link#12 UCS 1 0 en7
192.168.42.114/32 link#12 UCS 1 0 en7
192.168.42.129/32 link#12 UCS 1 0 en7
192.168.42.129 76:0:b4:4:cc:38 UHLWIir 3 2 en7 713
192.168.42.255 ff:ff:ff:ff:ff:ff UHLWbI 0 3 en7
216.146.46.10 192.168.42.129 UGHS 0 0 en7
216.146.46.11 192.168.42.129 UGHS 0 0 en7
speedtest.netでtracerouteを試してみると、問題なく動作しているようです。
SnakeBook:~ root# traceroute speedtest.net
traceroute: Warning: speedtest.net has multiple addresses; using 216.146.46.11
traceroute to speedtest.net (216.146.46.11), 64 Hops max, 52 byte packets
1 192.168.42.129 (192.168.42.129) 0.760 ms 0.192 ms 0.366 ms
...
...
12 * *^C
問題は、ブラウザを使用するときです。ブラウザを使用すると、トラフィックは常にen7gwではなくen0gwを通過します。この問題は「2つの」デフォルトゲートウェイが原因ですか?
En7 gwを削除しようとしましたが、常にen0gwが削除されます。
SnakeBook:tmp root# netstat -nr | grep default
default 192.168.1.1 UGSc 30 4 en0
default 192.168.42.129 UGScI 0 0 en7
SnakeBook:tmp root#
SnakeBook:tmp root#
SnakeBook:tmp root# route delete default 192.168.42.129
delete net default: gateway 192.168.42.129
SnakeBook:tmp root#
SnakeBook:tmp root#
SnakeBook:tmp root# netstat -nr | grep default
default 192.168.42.129 UGScI 0 0 en7
なにか提案を ?
ありがとう!
私は同様の問題に取り組んでいました: Mac OS Xでルート固有のインターフェイスメトリックを設定する方法 そしてあなたの質問への答えに出くわしました。 Mac OS Xが行うことは、これです。ターゲットへの2つのルートを確認するため、優先度が最も高いルートを選択します(このすばらしい回答で説明されているように: https://superuser.com/a/525592/169461 )。もちろん、すべてのルートでその優先順位を変更することは、あなたが望むことではありません。
あなたがしたいことは、指定されたインターフェースでこの特定のIPにルートを追加することです:
Sudo route add -Host 216.146.46.10 -iface en7
再起動後、このルートは再び失われることに注意してください。 OS X Yosemiteで静的ルートを永続化することはまだできません(ここで説明するように、/ Library/LaunchAgentsの.plistファイルを使用してアプローチを試みました: https://www.jverdeyen.be/mac/persistent -static-routes-mac-os-x / )。