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

Как сделать маршрутизацию политики с помощью systemd?

Мне нужно выполнить маршрутизацию политики на моих экземплярах CoreOS, которые используют systemd. Но я не нашел никакой документации или примеров того, как это сделать с помощью systemd-network.

Как я могу это сделать?

Пока мне удалось создать еще одну таблицу маршрутизации, добавив запись в новый файл /etc/iproute2/rt_tables и это распознается инструментами командной строки.

В конечном итоге у меня есть два отдельных маршрутизатора в одной подсети. Я хочу, чтобы трафик, исходящий от одного маршрутизатора, предназначенного для моего хоста, возвращался тем же маршрутизатором.

Поддержка нескольких таблиц маршрутов сегодня недоступна в networkd. Это то, что, безусловно, можно было бы добавить; возможно, вы могли бы поделиться своей настройкой rt_tables и объяснить свой вариант использования на systemd-devel?

systemd добавляет поддержку маршрутизации политики в версии 235. Ты можешь использовать [RoutingPolicyRule] разделы для настройки маршрутизации политики, если ваш systemd версия 235 или выше.

Поддерживается параметры являются:

  • TypeOfService= Указывает тип службы, соответствующий числу от 0 до 255.
  • From= Задает префикс исходного адреса для сопоставления. Возможно, за ним следует косая черта и длина префикса.
  • To= Задает префикс адреса назначения для сопоставления. Возможно, за ним следует косая черта и длина префикса.
  • FirewallMark= Задает соответствующее значение метки брандмауэра iptables (число от 1 до 4294967295).
  • Table= Задает идентификатор таблицы маршрутизации для поиска, если селектор правила совпадает. Идентификатор таблицы для маршрута (число от 1 до 4294967295).
  • Priority= Задает приоритет этого правила. Priority = - целое число без знака. Чем больше число, тем ниже приоритет, и правила обрабатываются в порядке увеличения числа.