Порядок служб macOS не управляет маршрутами VPN
Порядок служб выбирает между обычными интерфейсами. VPN уже стоит выше них, а его включённые маршруты берутся из профиля, а не из этого списка.
Что-то на сайте не работает, коллега вспоминает, что существует порядок служб, и Wi-Fi перетаскивают выше Ethernet. Ничего не меняется, потому что этот список никогда не решал, куда идёт назначение VPN. Apple даёт VPN-подключениям приоритет перед обычными и держит их вне этой перестановки, поэтому переключатель отвечает на более узкий вопрос, чем задан. Сбою нужны выбранный маршрут и resolver, а не новый рейтинг.
Что меняет порядок служб и чего он никогда не касается
«Настроить порядок служб» находится в Системных настройках, Сеть, в меню Действие, и ранжирует обычные подключения, когда активны два или более. Этот порядок выбирает основную службу, которая поставляет маршрут по умолчанию и часть поведения resolver. Это решение между равными, а не переключатель для частных назначений за туннелем. Ноутбук с Wi-Fi и USB-Ethernet-адаптером использует его, чтобы ответить на разумный вопрос, и этот вопрос не о туннеле.
Профиль VPN несёт включённые маршруты, исключённые назначения и иногда правила по приложениям, и именно они решают, что попадает в туннель; меню порядка их не редактирует. Поэтому профиль с разделённым туннелем может оставить публичный трафик снаружи, пока VPN по-прежнему выше любого физического интерфейса. Перетаскивание Wi-Fi наверх не делает частный диапазон доступным и не останавливает назначение, которое профиль уже включает. Список двигает интерфейсы; профиль двигает префиксы. Apple документирует приоритет на своей странице порядка сетевых служб, которую стоит прочитать один раз, прежде чем что-либо переставлять.
Прочитайте маршрут, который машина действительно выбрала
Спросите машину, куда идёт конкретный адрес, командой route get 10.20.4.10, затем повторите для IPv6 командой route -n get -inet6 2001:db8::10. Два семейства — это отдельные решения, поэтому работающий маршрут IPv4 ничего не говорит о v6, а напрямую подключённая подсеть или более конкретный префикс в любом случае побеждает общую метку подключения, и именно поэтому метка продолжает вводить людей в заблуждение.
Если вывод называет интерфейс туннеля, профиль перехватил назначение, и порядок не имеет значения. Если он называет физический интерфейс, профиль этого не сделал, и никакое перетаскивание не изменит таблицу префиксов. Оба вывода также называют адрес источника, который использовала бы машина, и это то поле, которое нужно цитировать при сравнении двух запусков. Сохраните вывод до того, как что-то менять, потому что это единственное доказательство, которое у вас останется.
DNS разрешает по имени, а не по интерфейсу
Resolver'ы с областью действия и привязанные к домену означают, что ответ может различаться по имени, а не по интерфейсу. scutil --dns печатает конфигурацию resolver, которую система действительно использует, включая записи с областью действия. Порядок служб влияет на то, какая служба поставляет resolver по умолчанию, но область, привязанная к имени, всё равно может победить.
Поэтому ping по адресу может работать, пока имя хоста не разрешается, или наоборот. Прочитайте оба вывода, прежде чем выбирать виновника.
Измените профиль, затем снова прочитайте оба вывода
Когда политику назначений нужно изменить, владельцем является профиль VPN: включённые маршруты, исключённые маршруты и любые правила разделённого туннеля, которые поддерживает поставщик. Смена интерфейсов лишь переносит спор. На Mac с удалённым управлением сначала сохраните текущее состояние сети, потому что потеря туннеля на машине, до которой вы не доберётесь, — это поездка, а не откат.
Воспроизведите сбой, прочитайте маршрут, прочитайте resolver, измените одну вещь, затем снова прочитайте те же два вывода. Перемешивание нескольких служб и профилей сразу оставляет машину, которую никто не может объяснить, включая того, кто её починил. Тест завершён, когда оба вывода согласуются с задуманным изменением. Если они всё ещё расходятся, профиль и машина описывают две разные политики, и менять нужно профиль.