Сохраните конфигурации ip route и ip rule для маршрутизации на основе политики (iproute2).

Вопрос или проблема

В настоящее время я использую Fedora Server 23 и ищу способ сохранить команды, такие как:

ip route add default via 10.0.2.1 dev ens32 table EXAMPLE_TABLE
ip rule add from 10.1.2.50 lookup EXAMPLE_TABLE prio 1000

или через nmcli (в идеале), или каким-либо другим, аналогично, разумным способом.

Я видел примеры с помещением в файл route-ifname, но, похоже, они не выполняют правило по умолчанию правильно.

Если вы выполните ip route show table EXAMPLE_TABLE после перезагрузки, вы поймете, что оно не сохраняется – по крайней мере, в моем опыте.

Любые идеи по этому поводу были бы замечательны, спасибо.

Самый простой способ, который я знаю, чтобы сохранить маршрут по умолчанию, – добавить пункт назначения маршрута по умолчанию в файл /etc/sysconfig/network-scripts/ifcfg-<device> в качестве значения для GATEWAY. Это создает маршрут по умолчанию каждый раз, когда интерфейс активируется, другие маршруты сохраняются через файлы route-<device> в той же директории.

rules, которые необходимо сохранить, следует поместить в:

/etc/sysconfig/network-scripts/rule-lo

routes, которые необходимо сохранить, следует поместить в:

/etc/sysconfig/network-scripts/route-lo

Вы, наверное, заметили, что я предлагаю использовать файлы rule-lo и route-lo независимо от того, для какого устройства вы сохраняете соответствующую конфигурацию, как если бы правила и маршруты были для интерфейса loopback. Некоторое время назад я наблюдал на CentOS 7.8, возможно, ту же проблему, которую вы наблюдаете здесь, когда правила PBR, сохраненные в своих соответствующих файлах устройств, игнорировались, но все правила, сохраненные в *-lo, выполнялись. Жаль, что я не могу пролить больше света на причины, почему так было, но я не исследовал ситуацию дальше в то время. Некоторые логи указывали на то, что за это несет ответственность NetworkManager-dispatcher.

Для полноты ответа, маршрутизирующие таблицы идентифицируются по своим номерам. Если вы хотите ссылаться на таблицу по имени, необходимо создать сопоставление имен. Например, чтобы ссылаться на таблицу с номером 100 по имени “EXAMPLE_TABLE”:

echo '100 EXAMPLE_TABLE' | sudo tee -a /etc/iproute2/rt_tables

Ответ или решение

Для решения задачи сохранения конфигураций маршрутизации и правил политической маршрутизации (Policy Based Routing) на Fedora Server 23, необходимо учесть ряд нюансов, особенно используя iproute2. Задача требует понимания не только как установить конфигурации, но и как обеспечить их устойчивость после перезагрузки системы.

Шаги для устойчивой конфигурации PBR

  1. Определение именованных таблиц маршрутизации:
    Чтобы воспользоваться именем таблицы маршрутизации, создайте его отображение с номером таблицы. Для этого отредактируйте файл /etc/iproute2/rt_tables:

    echo '100 EXAMPLE_TABLE' | sudo tee -a /etc/iproute2/rt_tables

    Это позволяет использовать человекочитаемые имена, вместо чисел, что упрощает сопровождение и конфигурацию.

  2. Конфигурация маршрутов:
    Для сохранения маршрутов, их необходимо добавить в специальные файлы внутри /etc/sysconfig/network-scripts/. В случае, если стандартные файлы для каждого интерфейса не работают, как ожидается, попробуйте использовать route-lo:

    echo 'default via 10.0.2.1 dev ens32 table EXAMPLE_TABLE' | sudo tee /etc/sysconfig/network-scripts/route-lo
  3. Конфигурация правил:
    Аналогично маршрутам, сохраните правила в файле rule-lo:

    echo 'from 10.1.2.50 lookup EXAMPLE_TABLE' | sudo tee /etc/sysconfig/network-scripts/rule-lo

    Применение данных файлов к интерфейсу lo, даже если правило касается другого интерфейса, может решить проблемы неисполнения настройки. Это может быть связано с поведением NetworkManager или NetworkManager-dispatcher.

  4. Использование NetworkManager и nmcli:
    Для интеграции с NetworkManager, стоит проверить, предлагают ли его версии поддержку для посредства сохраниения подобной конфигурации. Например, параметры могут быть добавлены напрямую в конфигурационные файлы интерфейсов, такие как /etc/sysconfig/network-scripts/ifcfg-ens32, используя параметры вроде GATEWAY.

Заключение

При решении задачи устойчивой конфигурации маршрутизации на Fedora Server 23, предложенные методы обеспечивают надёжное сохранение правил и маршрутов. Интеграция с NetworkManager пока может быть ограничена, поэтому выделенные файлы для сохранения маршрутов и правил являются оптимальным решением. Testing и поиск возможных обновлений может выявить улучшения в NetworkManager, если это будет необходимо.

Такое подход к сохранению конфигураций маршрутизации и правил позволяет эффективно управлять сетевой конфигурацией и адаптировать решения под специфические сценарии использования.

Оцените материал
Добавить комментарий

Капча загружается...