我想通过 192.168.12.117 路由 192.168.117.0/24。
主机 192.168.12.117 连接了两条链路
192.168.12.117 dev ppp12
192.168.12.117 dev ppp0
我更喜欢 BIRD 的动态路由。我想添加多跳路由,例如
ip route add 192.168.117.0/24 nexthop via 192.168.12.117 dev ppp0 nexthop via 192.168.12.117 dev ppp12
并在建立新的链接时添加/更改下一跳。
我该如何配置它?
我有一些带有 OSPF/RIP 的路由器,但有些路由器没有。
答案1
看鸟类记录静态路由的语法与iproute2类似:
protocol static {
ipv4;
route 192.168.117.0/24 via 192.168.12.117 % 'ppp0'
via 192.168.12.117 % 'ppp12';
}
要添加新的 nexthops,只需编辑 bird.conf 并重新加载。请注意,无论接口启动或关闭,Bird 都会自动更新内核路由。
Bird 2 自动为 OSPF 生成多路径路由 - 只要有多条路径具有相同的成本,您就会自动看到具有多个下一跳的路由。(在 Bird 1 中,您必须ecmp on
在每个 OSPF 协议内进行配置;现在这是默认设置。)
# birdc show route protocol ospf4
10.147.1.3/32 unicast [ospf4 2021-05-30] * I (150/8) [193.219.181.229]
via 10.147.240.3 on gre-xxx weight 1
via 10.147.240.4 on gre-yyy weight 1
最后,如果您希望 Bird 使用来自不同协议的网关(例如静态和 OSPF 网关的混合)添加多路径路由,您将需要merge paths
内核协议选项:
protocol kernel {
ipv4 { ... };
merge paths on;
};
如果没有此选项,则只会导出一条“最佳”路由 - 它可能仍然是一条多路径路由(例如,如果 OSPF 找到两条等价路径),但它只会来自一个协议。