![为 BIRD 移植 OSPF 路由过滤规则](https://linux22.com/image/10172/%E4%B8%BA%20BIRD%20%E7%A7%BB%E6%A4%8D%20OSPF%20%E8%B7%AF%E7%94%B1%E8%BF%87%E6%BB%A4%E8%A7%84%E5%88%99.png)
我有一个使用 BIRD 的 DNS 选播设置OSPF:将 Quagga 迁移到 BIRD
但是,在命令中使用“showroutes”,birdc
我看到许多 OSPF 从我们的内部网络学到的路由。
事实上,在这种任播设置中(通常情况下),只需要通告路由,而不需要接收它们。
如何在 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;
};
};
}
答案1
我在这里找到了答案如何将内核表中的路由重新分配到 OSPF 协议?,并修改了 OSPF 配置以创建过滤器以丢弃从 OSPF 获知的路由。
修改将相应地针对所有元素进行选播DNS 集群。
请注意修改后的 OSPF 配置中添加的 import_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 路由,正如其预期的那样。