Назад | Перейти на главную страницу

Могу ли я иметь разные таблицы маршрутизации для разных пользователей?

У моей Linux-машины две учетные записи. Я хочу установить разные шлюзы по умолчанию для разных учетных записей. Как я могу это сделать, если это возможно?

Таблица маршрутизации является общесистемной, а не специфичной для пользователя. Так что это не совсем просто.

Шаги следующие:

1: Создайте несколько таблиц маршрутизации с широким использованием ip route и ip rule команды.

2: Настройте iptables для маркировки исходящих пакетов на основе UID процесса отправителя.

3: Настройте таблицы маршрутизации на основе меток (которые исходящие пакеты получали из iptables).

Решением будет то, что все процессы, принадлежащие пользователю, будут использовать альтернативную таблицу маршрутизации.


Расширение №1: К сожалению, ip route и ip rule не очень хорошо документирован. Но вы можете создать несколько таблиц маршрутизации с разными правилами. Осторожно: это таблицы маршрутизации, совершенно другое дело, чем iptables! А уловка в том, что вы можете «помечать» пакеты в iptables, что по сути означает, что вы можете дать им одно целое значение. И, наконец, вы можете настроить правила iptables для маршрутизации помеченных пакетов другими способами (с другими таблицами маршрутизации). Это чистая и хорошо работающая функция, но не очень хорошо документированная.

Расширение №2: Насколько мне известно ip rule - это команда для обработки нескольких объектов таблицы маршрутизации. С участием ip route вы также можете указать, в какую таблицу маршрутизации вы хотите вставить (изменить) данный маршрут.

Расширение № 3: Изменить таблицы маршрутизации исходящих пакетов с помощью iptables нетривиально, эта почта делает то, что и мной работало.