У меня есть сервер Linux под управлением CentOS 6.4, который используется в качестве цели iSCSI. Сервер является многосетевым с двумя сетевыми адаптерами, находящимися в одной подсети. iSCSI multipathing заботится о балансировке нагрузки / аварийном переключении, поэтому все, что мне нужно, - это чтобы каждая сетевая карта работала независимо. Как мне настроить эту систему, чтобы избежать всех странных проблем с маршрутизацией и ARP, которые всегда возникают при многосетевой настройке, например, трафик, возвращаемый на другой интерфейс от источника, или один интерфейс, принимающий трафик, отправляемый на IP-адрес Другой. Решение для связывания не подходит, поскольку у него есть проблемы с подключением iSCSI.
Важные вещи:
Я понял, что никогда не отвечал на этот вопрос. Использование отличных интернет-ресурсов Вот и Вот, Я придумал следующую конфигурацию. Надеюсь, это кому-то поможет.
Предположим, у вас есть два интерфейса, eth0
и eth1
с IP-адресами 10.1.1.242 и 10.1.1.243. Это все в сети / 22 со шлюзом по умолчанию 10.1.1.254.
Сначала создайте две таблицы маршрутизации, по одной для каждой сетевой карты:
echo "1 lan1" >> /etc/iproute2/rt_tables`
echo "2 lan2" >> /etc/iproute2/rt_tables`
Затем добавьте маршруты для каждого интерфейса в соответствующие таблицы:
ip route add 10.1.0.0/22 dev eth0 src 10.1.1.242 table lan1
ip route add default via 10.1.1.254 dev eth0 table lan1
ip route add 10.1.0.0/22 dev eth1 src 10.1.1.243 table lan2
ip route add default via 10.1.1.254 dev eth1 table lan2
Наконец, добавьте правила, чтобы определить, какая таблица используется:
ip rule add from 10.1.1.242/32 table lan1
ip rule add to 10.1.1.242/32 table lan1
ip rule add from 10.1.1.243/32 table lan2
ip rule add to 10.1.1.243/32 table lan2
Это должно препятствовать прохождению трафика через сетевые карты внутри, позволяя сохранить избыточность или использовать каждую сетевую карту для различных функций.
Вам нужно будет посмотреть на переменные arp_announce и arp_ignore, чтобы убедиться, что адаптеры реагируют так, как вы ожидаете.
Предлагаю ознакомиться с документацией Вот. Значения в этом документе для VIP, вероятно, будут подходящими.
В /etc/sysctl.conf:
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
Вы ищете ip route
и выполняя политику маршрутизации, каждый интерфейс будет иметь свою собственную таблицу маршрутизации и принимать решения о маршрутизации (в том числе, на какой интерфейс отправлять трафик и с какого адреса) на основе этих таблиц.
это отличный сайт, объясняющий концепции с самого начала, но вы можете сразу перейти к политика маршрутизации если хочешь ..