Policy routing через ip rule и fwmark решает split tunneling, но у него есть слабое место: любая ошибка в правилах или забытый PostDown — и трафик молча идёт мимо VPN тем же default route, что и всё остальное. Network namespace устроен иначе: это отдельное сетевое пространство с собственной таблицей маршрутов, собственными интерфейсами и собственным /etc/resolv.conf. Процесс, запущенный внутри такого namespace, физически не видит host-интерфейсы — если внутри нет маршрута через VPN, у него нет маршрута вообще, и трафик просто не уйдёт. Ниже — рабочая…
Подробнее →