使用 Bird 进行多跳路由

使用 Bird 进行多跳路由

我想通过 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 找到两条等价路径),但它只会来自一个协议。

相关内容