Это на самом деле не что трудно создать deb's или об/мин из источника tarball. Тем путем можно использовать средства диспетчера пакетов дистрибутива для содержания системы в чистоте. Это - то, что я делаю большую часть времени: просто создайте немного об/мин.
echo 200 isp2 >> /etc/iproute2/rt_tables
ip rule add from <interface_IP> dev <interface> table isp2
ip route add default via <gateway_IP> dev <interface> table isp2
Вышеупомянутое не требует никакой пакетной маркировки с ipfilter. Это работает, потому что исходящее (ответ), пакеты будут иметь IP-адрес, который первоначально использовался для соединения с 2-м интерфейсом как источник (от) адреса на исходящем пакете.
Следующие команды создают альтернативную таблицу маршрутизации через eth1
для пакетов, которые имеют метку 1 (кроме пакетов к localhost). ip
команда от iproute2 комплекта (Ubuntu: iproute Установите iproute http://bit.ly/software-small, iproute-документ Iproute-документ установки http://bit.ly/software-small).
ip rule add fwmark 1 table 1
ip route add 127.0.0.0/0 table 1 dev lo
ip route add 0.0.0.0/0 table 1 dev eth1
Другая половина задания распознает пакеты, которые должны получить метку 1; затем используйте iptables -t mangle -A OUTPUT … -j MARK --set-mark 1
на этих пакетах, чтобы направить их через таблицу маршрутизации 1. Я думаю, что следующее должно сделать это (замените 1.2.3.4 адресом интерфейса non-default-route):
iptables -t mangle -A OUTPUT -m conntrack --ctorigdst 1.2.3.4 -j MARK --set-mark 1
Я не уверен, достаточно ли это, возможно, другое правило необходимо на входящих пакетах, чтобы сказать conntrack модулю отслеживать их.
У меня были проблемы с локально сгенерированными пакетами с решением, предложенным Питером. Я обнаружил, что следующее исправляет это:
echo 200 isp2 >> /etc/iproute2/rt_tables
ip rule add from <interface_IP> table isp2 priority 900
ip rule add from dev <interface> table isp2 priority 1000
ip route add default via <gateway_IP> dev <interface> table isp2
ip route add <interface_prefix> dev <interface> proto static scope link src <interface_IP> table isp2
ПРИМЕЧАНИЕ: Вы можете столкнуться с проблемами синтаксиса в 4-й строке выше. В таких случаях синтаксис 4-й команды может быть таким:
ip rule add iif <interface> table isp2 priority 1000
Я предполагаю, что вы используете Linux и, кроме того, используете дистрибутив на основе RedHat/CentOS -. Для других Unix и дистрибутивов потребуются аналогичные шаги -, но детали будут другими.
Начните с тестирования (обратите внимание, что это очень похоже на ответ @Peter. Я предполагаю следующее:
Команды следующие:
$ echo 200 isp1 >> /etc/iproute2/rt_tables
$ ip rule add from eno1 table isp1
$ ip route add default via 192.168.1.1 dev eno1 table isp1
Брандмауэр никоим образом не задействован. Ответные пакеты всегда отправлялись с правильного IP-адреса -, но раньше они отправлялись через неправильный интерфейс. Теперь эти пакеты с правильного IP будут отправляться через правильный интерфейс.
Предполагая, что описанное выше сработало,теперь вы можете сделать правила и изменения маршрута постоянными. Это зависит от того, какую версию Unix вы используете. Как и прежде, я предполагаю, что дистрибутив Linux основан на RH/CentOS -.
$ echo "from eno1 table isp1" > /etc/sysconfig/network-scripts/rule-eno1
$ echo "default via 192.168.1.1 dev eno1 table isp1" > /etc/sysconfig/network-scripts/route-eno1
Проверка того, что изменение сети является постоянным:
$ ifdown eno1 ; ifup eno1
Если это не сработало, в более поздних версиях RH/CentOS вам также потребуется один из двух вариантов:
или
Лично я предпочитаю устанавливать пакет правил, так как это более простой и поддерживаемый подход:
$ yum install NetworkManager-dispatcher-routing-rules
Еще одна настоятельная рекомендация — включить фильтрацию arp, поскольку это предотвращает другие проблемы, связанные с конфигурациями с двумя сетями. В RH/CentOS добавьте следующее содержимое в файл /etc/sysctl.conf:
net.ipv4.conf.default.arp_filter=1
net.ipv4.conf.all.arp_filter=1
dev
параметрический усилитель вip rule
команда, таким образом работаяip rule add from <interface_IP> table isp2
– cdauth 13.12.2015, 19:09up ip rule add from <interface_IP> table isp2
иup ip route add default via <gateway_IP> dev ppp0 table isp2
к Вашему/etc/network/interfaces под соответствующим интерфейсом. – g.rocket 05.04.2016, 07:59dev <interface>
отip rule
заставить это работать над моим полем. Если я понимаю право,dev <interface>
отфильтровывал пакеты, которые были так или иначе установлены в неправильном интерфейсе, который должен был быть вырван к корректному интерфейсу переопределенным маршрутом, но фильтрация правила по интерфейсу предотвращала это. – binki 02.10.2016, 06:52