История изменений
Исправление router, (текущая версия) :
Зашёл чтобы именно это и предложить. Потрать пять минут, оно того стоит
Наконец понял, чем мне изначально не нравилась эта идея
namespace с точки зрения ОСи - это удалённый комп. Т.е. написать таблицу маршрутизации в namespace не достаточно. В обоих namespace'ах дефолтный маршрут будет вести через виртуальный линк на хост систему, если можно так выразиться
И маршрутизацией нужно будет рулить на уровне хост системы, а не неймспейса.
Создвать отдельные таблицы маршрутизации на хост-системе придётся в любом случае. Но я предпочту добавить на хост-систему по лишнему ip на каждого провайдера, и привязывать ( bind ) скрипт к дополнительному ip. И через «ip rule from IP1/32 table isp1» кидать его трафик в нужную таблицу маршрутизации
При этом мне не нужно будет включать форвардинг ( ! ), ограничивать форвардинг через iptables и морочиться с NAT/MASQUERADING
Вариант с namespace очень хорош с точки зрения универсальности - можно запускать так любой софт без модификации. Но т.к. скрипт я буду писать сам, мне проще биндить его к определённому адресу и не превращать хост-систему в гипервизор и маршрутизатор :)
З.Ы. да, ачивку «слоупок» я заслужил :)
Исходная версия router, :
Зашёл чтобы именно это и предложить. Потрать пять минут, оно того стоит
Наконец понял, чем мне изначально не нравилась эта идея
namespace с точки зрения ОСи - это удалённый комп. Т.е. написать таблицу маршрутизации в namespace не достаточно. В обоих namespace'ах дефолтный маршрут будет вести через виртуальный линк на хост систему, если можно так выразиться
И маршрутизацией нужно будет рулить на уровне хост системы, а не неймспейса.
Создвать отдельные таблицы маршрутизации на хост-системе придётся в любом случае. Но я предпочту добавить на хост-систему по лишнему ip на каждого провайдера, и привязывать ( bind ) скрипт к дополнительному ip. И через «ip rule from IP1/32 table isp1» кидать его трафик в нужную таблицу маршрутизации
При этом мне не нужно будет включать форвардинг ( ! ), ограничивать форвардинг через iptables и морочиться с NAT/MASQUERADING
Вариант с namespace очень хорош с точки зрения универсальности - можно запускать так любой софт без модификации. Но т.к. скрипт я буду писать сам, мне проще биндить его к определённому адресу и не превращать хост-систему в гипервизор и маршрутизатор :)