У меня есть конфигурация маршрутизации, целью которой является маршрутизация всего трафика через туннель (utun3) в клиент openvpn, который затем подключается к серверу openvpn (64.120.44.114) через мой физический интерфейс (en0).
Я хочу направить определенные приложения напрямую через физический интерфейс (en0), а не через туннель (utun3).  В настоящее время пара маршрутизации 0/1 и 128.0/1 форсирует весь интернет-трафик через туннель.
Я подумал, что если бы я отправлял трафик на интернет-адрес из приложения, которое связывает его исходящий адрес с физическим интерфейсом (т.е. 10.0.1.15), тогда этот трафик будет направляться через оставшийся маршрут по default для интерфейса этого адреса (en0).  К сожалению, операционная система просто не может вместо этого направить эти пакеты:
$ ping 8.8.8.8          # or mtr 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=55 time=40.835 ms
$ ping -b utun3 8.8.8.8 # or mtr -a 10.12.44.16 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=55 time=42.036 ms
$ ping -b en0 8.8.8.8   # or mtr -a 10.0.1.15 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
ping: sendto: No route to host
Могу ли я что-нибудь сделать, чтобы пакеты, отправленные с исходящим адресом, который был несовместим с переопределенным маршрутом 0/1 , 128.0/1 вместо этого использовали совместимый маршрут по default ?  Если нет, существуют ли какие-либо другие способы настройки таблицы маршрутизации, которые могли бы служить для маршрутизации через en0 для конкретных приложений, но для маршрутизации через utun3 "по умолчанию"?  Если такого метода в отношении маршрутизации не существует, можете ли вы порекомендовать какие-либо программные решения для выполнения маршрутизации для конкретного приложения или игнорирования таблицы маршрутизации?  В моем случае в идеале программа должна работать на macOS.
У меня есть следующие интерфейсы:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    ether 60:03:08:8b:96:88
    inet6 fe80::1c29:1e13:e8ba:fd3%en0 prefixlen 64 secured scopeid 0x5
    inet 10.0.1.15 netmask 0xffffff00 broadcast 10.0.1.255
    nd6 options=201<PERFORMNUD,DAD>
    media: autoselect
    status: active
utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
    inet 10.12.44.16 --> 10.12.44.16 netmask 0xfffffc00
У меня есть следующее в моей таблице маршрутизации:
default            10.0.1.1           UGSc            0        0     en0
10.0.1.1           0:24:36:a0:86:a5   UHLWIir         4      106     en0
64.120.44.114/32   10.0.1.1           UGSc            1        0     en0
0/1                10.12.44.1         UGSc          101        2   utun3
128.0/1            10.12.44.1         UGSc           12        0   utun3
10.12.44/22        10.12.44.16        UGSc            1        0   utun3
10.12.44.16        10.12.44.16        UH              3      170   utun3
 