Làm thế nào để Mac OSX ưu tiên các giao diện mạng khi định tuyến?


20

Để đưa ra một ví dụ cụ thể, OSX chọn mục nào trong số các mục mặc định này netstat -nrđể định tuyến đến?

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 

Từ những gì tôi có thể nói với OSX sử dụng các số liệu trên các giao diện của nó chứ không phải trên các mục trong bảng định tuyến của nó. Nhưng theo mặc định, tất cả các số liệu giao diện đó là 0, vậy nó chọn như thế nào? Giao diện được tạo lần cuối?

Tôi đã thấy một số người đề xuất thứ tự trong các tùy chọn Mạng, nhưng trong trường hợp của tôi, giao diện ppp0 (từ SonicWall NetExtender) không được liệt kê ở đó.

Có một số cuộc thảo luận trong chủ đề này , nhưng không có câu trả lời mà tôi thấy.


Bạn đã tìm hiểu làm thế nào để thiết lập số liệu tuyến đường?
endryha

Câu trả lời:


8

Hầu hết các hệ thống tuân theo các quy tắc này khi chọn sử dụng tuyến đường nào:

  • Tìm những cái cụ thể nhất (nghĩa là những cái có tiền tố phù hợp dài nhất).
  • Chọn một trong những ưu tiên cao nhất .

Ưu tiên trên Linux (và, tôi nghĩ, trên Windows) được xác định theo số liệu , nhưng đó không phải là trường hợp trên macOS như bạn đã chỉ ra một cách chính xác. Thay vì chỉ định số liệu cho các tuyến riêng lẻ, macOS chỉ định mức độ ưu tiên cho giao diện . Bạn có thể sử dụng networksetup -listnetworkserviceorderđể xem thứ tự này và networksetup -ordernetworkservicesthay đổi nó.

Bây giờ, tuyến đường này từ đầu ra của bạn khiến tôi nghĩ rằng trong trường hợp cụ thể của bạn cũng đóng vai trò của nó:

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

Tuyến đường này bao gồm nửa dưới của không gian địa chỉ và do đó tôi cũng sẽ tìm thấy:

128.0/1            10.10.99.100       UGSc            0        0    ppp0

trong bảng định tuyến của bạn. Đây là một mẹo tiêu chuẩn mà phần mềm VPN sử dụng để ưu tiên các tuyến của nó hơn default: nó bổ sung hai tuyến cùng nhau bao gồm tất cả các địa chỉ IP, nhưng mỗi tuyến đều cụ thể hơn mặc định, vì vậy chúng sẽ giành chiến thắng.


Trên Linux, mức độ ưu tiên chỉ được xác định theo số liệu cho các trường hợp bảng định tuyến đơn, tuy nhiên các quy tắc ưu tiên cao hơn có thể ghi đè số liệu của các tuyến đường từ các bảng khác có mục nhập quy tắc thấp hơn trong nhiều trường hợp bảng định tuyến. Ngoài ra với định tuyến động, người ta phải xem xét khoảng cách hành chính thấp nhất.
Moreaki

Cảm ơn bạn rất nhiều vì: "Đây là một thủ thuật tiêu chuẩn mà phần mềm VPN sử dụng để ưu tiên các tuyến của nó hơn mặc định". Điều này cuối cùng đã giúp tôi hiểu WTF đang diễn ra trong trường hợp của tôi.
ipmcc

15

Bất kỳ bảng định tuyến nào có nhiều tuyến mặc định có số liệu bằng nhau sẽ cân bằng tải. Mặc dù vậy, trường hợp với mac là nó sẽ chọn giao diện đầu tiên trong danh sách giao diện. Nếu bạn muốn xem và thay đổi danh sách, hãy chuyển đến "tùy chọn mạng mở", tại đây bạn sẽ thấy danh sách các giao diện mạng như ethernet, sân bay, ppp qua điện thoại di động hoặc 3g, v.v ... Bên dưới danh sách, bạn sẽ thấy hình hoa thị tùy chọn với một mũi tên xuống. Nhấp vào đây và đặt "đặt dịch vụ đặt". Tại đây bạn có thể thay đổi sở thích của giao diện cụ thể của bạn.

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


3
Có nguồn nào bạn có thể tham khảo xác nhận điều này không? Nếu bạn có thể tham khảo một trang web sẽ làm cho câu trả lời của bạn đáng giá hơn và mọi người sẽ bỏ phiếu.
slm

1
"Đặt đơn hàng dịch vụ" có thể được xác nhận tại đây: OS X Mountain Lion: Thay đổi mức độ ưu tiên của các kết nối mạng của bạn
David Moles
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.