Возможно ли в bird менять metric по условию в filter? filter metric { metric = 10; # Setting the default metric accept; } protocol kernel { ipv4 { import filter metric; }; scan time 15; } если метрику указать в протоколе работает, но во через фильтре не удается, ошибка синтаксиса, может есть другой метод или другая что поддерживает. Заранее спасибо.
В Bird изменения метрики в фильтре действительно являются ограниченным функционалом, и вы не можете напрямую задавать значение метрики через фильтр в вашем конфигурационном файле.
Попробуйте использовать конструкцию, которая назначает значение метрики при импорте маршрутов. Пример использования фильтра для назначения метрики может выглядеть следующим образом:
filter set_metric { if net [192.0.2.0/24]net ~ [192.0.2.0/24]net[192.0.2.0/24] then { metric = 20; # Задаем метрику для определенной подсети } else { metric = 10; # Задаем метрику по умолчанию } accept; } protocol kernel { ipv4 { import filter set_metric; }; scan time 15; }
В данном примере мы создаем фильтр set_metric, который проверяет сеть и устанавливает метрику в зависимости от условия. Таким образом, вы можете менять метрику по условиям, используя if в фильтре.
Это даст вам возможность более гибко управлять метрикой маршрутов, импортируемых в протоколе kernel.
В Bird изменения метрики в фильтре действительно являются ограниченным функционалом, и вы не можете напрямую задавать значение метрики через фильтр в вашем конфигурационном файле.
Попробуйте использовать конструкцию, которая назначает значение метрики при импорте маршрутов. Пример использования фильтра для назначения метрики может выглядеть следующим образом:
filter set_metric {if net [192.0.2.0/24]net ~ [192.0.2.0/24]net [192.0.2.0/24] then {
metric = 20; # Задаем метрику для определенной подсети
} else {
metric = 10; # Задаем метрику по умолчанию
}
accept;
}
protocol kernel {
ipv4 {
import filter set_metric;
};
scan time 15;
}
В данном примере мы создаем фильтр set_metric, который проверяет сеть и устанавливает метрику в зависимости от условия. Таким образом, вы можете менять метрику по условиям, используя if в фильтре.
Это даст вам возможность более гибко управлять метрикой маршрутов, импортируемых в протоколе kernel.