Ответ на тот же интерфейс как поступление?

Это на самом деле не что трудно создать deb's или об/мин из источника tarball. Тем путем можно использовать средства диспетчера пакетов дистрибутива для содержания системы в чистоте. Это - то, что я делаю большую часть времени: просто создайте немного об/мин.

53
30.11.2010, 01:19
4 ответа
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-м интерфейсом как источник (от) адреса на исходящем пакете.

62
27.01.2020, 19:33
  • 1
    Ничего себе, это точно, что я искал. В случае, если любой смотрит для основанных на RH дистрибутивов, можно поместить соответствующее правило и направить команды в файлах, названных 'правилом-eth0' или 'маршрутом-eth0' (например), который будет добавлен или удален на ifup/ifdown. Поместите эти файлы вместе с ifcfg-eth0 файлом. Для IPv6 существует 'route6-eth0' встроенная функциональность, но никакой 'rule6-eth0' (еще) не встроил. –  Kyle Brantley 30.12.2011, 05:58
  • 2
    Для меня это работало только, когда я не учел dev параметрический усилитель в ip rule команда, таким образом работая ip rule add from <interface_IP> table isp2 –  cdauth 13.12.2015, 19:09
  • 3
    Можно заставить их быть созданными, когда интерфейс повышается путем добавления up 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:59
  • 4
    я должен был удалить dev <interface> от ip rule заставить это работать над моим полем. Если я понимаю право, dev <interface> отфильтровывал пакеты, которые были так или иначе установлены в неправильном интерфейсе, который должен был быть вырван к корректному интерфейсу переопределенным маршрутом, но фильтрация правила по интерфейсу предотвращала это. –  binki 02.10.2016, 06:52

Следующие команды создают альтернативную таблицу маршрутизации через 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 модулю отслеживать их.

6
27.01.2020, 19:33
  • 1
    Хороший. Я забыл все о маркировке. Это должно получить меня там. –  Shawn J. Goff 30.11.2010, 04:33

У меня были проблемы с локально сгенерированными пакетами с решением, предложенным Питером. Я обнаружил, что следующее исправляет это:

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
6
20.08.2021, 13:38

Я предполагаю, что вы используете Linux и, кроме того, используете дистрибутив на основе RedHat/CentOS -. Для других Unix и дистрибутивов потребуются аналогичные шаги -, но детали будут другими.


Начните с тестирования (обратите внимание, что это очень похоже на ответ @Peter. Я предполагаю следующее:

  • eno0 является isp0 и имеет общий шлюз по умолчанию
  • eno1 является isp1 и имеет IP/диапазон 192.168.1.2/24 со шлюзом 192.168.1.1

Команды следующие:

$ 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 вам также потребуется один из двух вариантов:

  1. Не использовать значение по умолчанию NetworkManager.service ; Вместо этого используйте network.service . Я не исследовал точные шаги, необходимые для этого. Я бы предположил, что для включения/отключения служб используются стандартные команды chkconfig или systemctl .

или

  1. Установите пакет правил NetworkManager -диспетчера -маршрутизации -

Лично я предпочитаю устанавливать пакет правил, так как это более простой и поддерживаемый подход:

$ 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
6
20.08.2021, 13:38

Теги

Похожие вопросы