У меня есть настройка Anycast для DNS с использованием BIRD OSPF: миграция Quagga на BIRD
Однако, используя "show routes" в команде birdc
, я вижу множество маршрутов, полученных OSPF из нашей внутренней сети.
Как бы то ни было, в этой настройке Anycast (и обычно) необходимо только объявлять маршруты, а не получать их.
Как создать фильтр в BIRD для игнорирования маршрутов OSPF?
Моя настройка OSPF такова:
protocol ospf {
tick 2;
rfc1583compat yes;
area 0.0.0.0 {
networks {
1.1.1.0/22;
};
stubnet 2.2.2.2/32 {
cost 100;
};
stubnet 3.3.3.3/32 {
cost 500;
};
stubnet 4.4.4.4/32 {
cost 1000;
};
stubnet 5.5.5.5/32 {
cost 900;
};
interface "eth0" {
cost 1000;
password "MySecretPassword" {
id 5;
};
authentication cryptographic;
};
interface "dummy0" {
stub;
};
interface "dummy1" {
stub;
};
interface "dummy2" {
stub;
};
interface "dummy3" {
stub;
};
};
}
Я нашел ответ здесь, Как перераспределить маршруты из таблицы ядра в протокол OSPF? и изменил конфигурацию OSPF для создания фильтра для удаления маршрутов, полученных от OSPF.
Модификация будет произведена соответствующим образом для всех элементов кластера anycast DNS.
Обратите внимание на фильтр импорта _OSPF, добавленный в измененную конфигурацию OSPF.
filter import_OSPF {
reject;
}
protocol ospf {
tick 2;
rfc1583compat yes;
import filter import_OSPF;
area 0.0.0.0 {
networks {
1.1.1.0/22;
};
stubnet 2.2.2.2/32 {
cost 100;
};
stubnet 3.3.3.3/32 {
cost 500;
};
stubnet 4.4.4.4/32 {
cost 1000;
};
stubnet 5.5.5.5/32 {
cost 900;
};
interface "eth0" {
cost 1000;
password "MySecretPassword" {
id 5;
};
authentication cryptographic;
};
interface "dummy0" {
stub;
};
interface "dummy1" {
stub;
};
interface "dummy2" {
stub;
};
interface "dummy3" {
stub;
};
};
}
После перезапуска BIRD диагностическая команда «show route» в birdc
уже не показывает импортированные маршруты OSPF, как предполагалось.