На моем Mac у меня есть два адаптера, я хотел бы использовать WiFi как WAN и Ethernet как LAN, настроив некоторую настраиваемую маршрутизацию.
Порядок обслуживания установлен на WiFi, а затем на Ethernet, который в таблице маршрутизации выглядит примерно так ...
netstat -nr
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 33 0 en0
default 10.1.1.1 UGScI 1 0 en2
По сути, я хочу добавить маршрут с приоритетом выше по умолчанию для диапазона адресов 10.0.0.0/8 к существующему шлюзу. В Windows я могу сделать это, изменив "метрику" маршрутов по умолчанию и добавив новый маршрут с более низкой метрикой, но в OSX метрики не связаны с маршрутами.
Я пробовал несколько комбинаций вещей, и ничего не работает
route add 10.0.0.0/8 10.1.1.1
- это добавлено после маршрутов по умолчанию и не поднято.
route change 10.0.0.0/8 -interface en2
- изменил шлюз, а не маску подсети и раздавил интерфейс.
route delete default
- попытался удалить все значения по умолчанию и добавить только явный набор маршрутов
- 0.0.0.0 интерпретируется как значение по умолчанию и перераспределяется в начало списка.
Может быть, я обманываю себя, думая, что это должно быть проще, чем на самом деле ...
ОБНОВЛЕНИЕ: я возился с этим в течение почти трех часов, а не 5 минут после того, как я отправил сообщение, мне пришло в голову проверить настройки DNS.
Когда я попробовал # 1 выше и пинговал, это работало нормально, поэтому DNS был виновником. Мне пришлось вручную добавить DNS-серверы в список другого адаптера по умолчанию. Не совсем уверен, почему это необходимо на Mac, так как я предполагал, что DNS-серверы всех адаптеров будут искать. Я не эксперт, но это имело бы для меня смысл.
РЕШЕНИЕ:
route add 10.0.0.0/8 10.1.1.1
networksetup -setdnsservers Wi-Fi 10.1.1.1 10.1.1.2