Как настроить policy-routing при одном физическом интерфейсе на linux? Доброго всем дня. Есть некоторая локальная сеть, в которой одновременно существуют несколько роутеров с своим провайдером и белым ip на входе. Узлы сети имеют разные шлюзы по умолчанию, каждому нужен свой ip, общая локальная сеть организована из-за того, что есть необходимость в обмене между узлами с разными шлюзами. Такой бардак вышел из-за того, что изначально все это добро жило в разных точках города и не знало друг о друге, но волею судьбы попало в одно помещение и попало под общую модернизацию и т.д. Все это потихоньку разгребается и данный бардак будет устранен. Конкретно сейчас, на одном из узлов с одной сетевой картой под управлением slackware linux, есть необходимость в доступе к нему по двух белых адресах с маршрутизацией "откуда пришел тудой и ушел". Возможно ли решение данной задачи с одним IP -адресом в локальной сети или же необходимо строить подинтерфейс с отдельным IP и настраивать обычным образом policy-routing? Или может есть другие способы решения данной задачи? Заранее спасибо за ответ.
Для решения данной задачи настройка Policy Routing является наиболее подходящим методом. Однако, так как у вас только один физический интерфейс, возможно вам придется использовать виртуальные интерфейсы (subinterfaces) для создания дополнительных IP адресов.
Вот пример того, как можно настроить Policy Routing на Linux с использованием виртуальных интерфейсов:
Создайте виртуальный интерфейс с помощью команды ifconfig:ifconfig eth0:0 192.168.1.2 netmask 255.255.255.0 upНастройте альтернативный маршрут для нового IP адреса:ip route add 192.168.1.2 via 192.168.1.1 dev eth0:0Создайте новую таблицу маршрутизации и добавьте маршрут для нового IP адреса в эту таблицу:echo "200 out2" >> /etc/iproute2/rt_tables ip route add table out2 default via 192.168.1.1 dev eth0:0Настройте правила маршрутизации для Policy Routing, указывающие какая таблица использовать в зависимости от исходного IP адреса:ip rule add from 192.168.1.1 table main ip rule add from 192.168.1.2 table out2Убедитесь, что IP forwarding включен в системе:echo 1 > /proc/sys/net/ipv4/ip_forward
После выполнения этих шагов, ваш узел сможет использовать разные шлюзы в зависимости от исходного IP адреса. Пожалуйста, убедитесь, что айдишники столбцов в командах выставить свои, чтобы не наложить каши на систему.
Для решения данной задачи настройка Policy Routing является наиболее подходящим методом. Однако, так как у вас только один физический интерфейс, возможно вам придется использовать виртуальные интерфейсы (subinterfaces) для создания дополнительных IP адресов.
Вот пример того, как можно настроить Policy Routing на Linux с использованием виртуальных интерфейсов:
Создайте виртуальный интерфейс с помощью команды ifconfig:ifconfig eth0:0 192.168.1.2 netmask 255.255.255.0 upНастройте альтернативный маршрут для нового IP адреса:ip route add 192.168.1.2 via 192.168.1.1 dev eth0:0Создайте новую таблицу маршрутизации и добавьте маршрут для нового IP адреса в эту таблицу:echo "200 out2" >> /etc/iproute2/rt_tablesip route add table out2 default via 192.168.1.1 dev eth0:0Настройте правила маршрутизации для Policy Routing, указывающие какая таблица использовать в зависимости от исходного IP адреса:ip rule add from 192.168.1.1 table main
ip rule add from 192.168.1.2 table out2Убедитесь, что IP forwarding включен в системе:echo 1 > /proc/sys/net/ipv4/ip_forward
После выполнения этих шагов, ваш узел сможет использовать разные шлюзы в зависимости от исходного IP адреса. Пожалуйста, убедитесь, что айдишники столбцов в командах выставить свои, чтобы не наложить каши на систему.