У меня на самом деле есть два сценария, чтобы применить это:
Multiseat Desktop: два сетевых подключения, оба с интернет-шлюзами, и две учетные записи, выполняющие задачи с высокой пропускной способностью на каждом. Я хочу разделить их, чтобы одна учетная запись использовала только eth0, а вторая - только eth1.
Сервер: у меня есть два IP-адреса на сервере, и я хочу убедиться, что почтовый пользователь отправляет электронную почту только со второго IP-адреса (псевдоним eth0: 1)
Второй может быть IPTabled (я просто не знаю как) для маршрутизации трафика электронной почты через этот интерфейс, но первый будет иметь дело со всеми видами трафика, поэтому должен быть основан на пользователях. Если есть решение на основе пользователя, я мог бы применить это в обоих местах.
-m owner
. Это довольно надежно с TCP и UDP, но другие типы не так надежны. Только надежный способ достижения этого 100% является с ВМ или контейнеров.Вы можете настроить две виртуальные машины на физическом компьютере и настроить мост сетевого интерфейса так, чтобы одна виртуальная машина использовала eth0, а другая виртуальная машина - eth1. См. Раздел документации по виртуальному блоку по мостовой сети .
источник
Я не уверен, что это возможно для первого пункта. Вы хотите сделать некоторые манипуляции с маршрутизацией на основе идентификатора пользователя пользователя. В прошлый раз, когда я проверял, я не видел этой возможности.
Во-вторых, это не iptables, который вы хотите использовать, а iproute2 (http://lartc.org/howto/ и http://www.policyrouting.org/iproute2.doc.html для полного документа). Это замена для команд ifconfig / route, поскольку они считаются устаревшими. iproute2 позволяет маршрутизировать пакеты в соответствии с их источником. Это то, что ты хочешь
источник