OSX Yosemite - Cara menambahkan rute yang memiliki dua gateway default

3

Saya menggunakan OSX Yosemite dan saya memiliki dua koneksi aktif yang berbeda ... - WIFI (en0) - Tethering 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

Sekarang ... Saya perlu menambahkan rute untuk menjelajahi beberapa situs web dengan menambatkan koneksi. Sebagai contoh, saya ingin menjalankan speedtest di speedtest.net menggunakan en7. Speedtest diselesaikan dengan DNS saya (192.168.1.1 yang menggunakan OpenDNS) ...

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

Sekarang ... saya menambahkan dua rute:

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

dan mencoba traceroute di speedtest.net tampaknya berfungsi dengan baik.

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

Masalahnya adalah ketika saya menggunakan browser saya. Menggunakan browser, lalu lintas selalu melewati en0 gw dan bukan en7 gw. Apakah masalah ini disebabkan oleh "dua" gateway default?

Saya mencoba menghapus en7 gw, tetapi selalu menghapus en0 gw saya:

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

Ada saran ?

Terima kasih!

Diego
sumber

Jawaban:

3

Saya menangani masalah serupa: Cara mengatur metrik antarmuka spesifik rute di bawah Mac OS X dan menemukan jawaban untuk pertanyaan Anda. Apa yang dilakukan Mac OS X adalah ini: karena ia melihat dua rute ke target, ia memilih rute dengan prioritas tertinggi (seperti yang dibahas dalam jawaban hebat ini: https://superuser.com/a/525592/169461 ). Tentu saja mengubah prioritas itu untuk setiap rute bukanlah yang Anda inginkan.

Yang ingin Anda lakukan adalah menambahkan rute ke IP khusus ini dengan antarmuka yang ditentukan:

sudo route add -host 216.146.46.10 -iface en7

Perhatikan bahwa setelah reboot rute ini akan hilang lagi. Saya belum dapat melanjutkan rute statis di OS X Yosemite (mencoba pendekatan menggunakan file .plist di / Library / LaunchAgents seperti yang dibahas di sini: https://www.jverdeyen.be/mac/persistent-static-routes -mac-os-x / ).

titusn
sumber