Назад | Перейти на главную страницу

Простая проблема с многосетевым сервером Linux

У меня есть сервер 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 и выполняя политику маршрутизации, каждый интерфейс будет иметь свою собственную таблицу маршрутизации и принимать решения о маршрутизации (в том числе, на какой интерфейс отправлять трафик и с какого адреса) на основе этих таблиц.

это отличный сайт, объясняющий концепции с самого начала, но вы можете сразу перейти к политика маршрутизации если хочешь ..