LINUX.ORG.RU

История изменений

Исправление 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 очень хорош с точки зрения универсальности - можно запускать так любой софт без модификации. Но т.к. скрипт я буду писать сам, мне проще биндить его к определённому адресу и не превращать хост-систему в гипервизор и маршрутизатор :)