我使用 BIRD2 来管理下面的一些静态路由表。
并且我想先将 IP 设置为10.13.0.1
通过 vpn3 转至网关。
因此我将权重设置为 3,并将另外 2 个网关设置为 2 和 1。
但是现在流量总是通过10.12.0.1
,我设置权重= 2。
延迟:vpn3 = vpn1 > vpn2
似乎重量不起作用。如何设置仅使用vpn3
网关,当网关关闭时再切换到其他网关?
静态路由表:
route 15.235.0.0/16
via 10.13.0.1 % 'vpn3' bfd weight 3
via 10.12.0.1 % 'vpn2' bfd weight 2
via 10.11.0.1 % 'vpn1' bfd weight 1;
延迟:vpn3 = vpn1 > vpn2
protocol ospf v2 Out {
tick 2;
rfc1583compat yes;
ipv4 {
import filter Block_All;
export filter Block_All;
};
area 0 {
interface "vpn1" {
authentication none;
check link;
type ptmp;
hello 10;
retransmit 6;
cost 30;
transmit delay 5;
dead count 5;
wait 50;
bfd;
neighbors {
10.11.0.1;
};
};
interface "vpn2" {
authentication none;
check link;
type ptmp;
hello 10;
retransmit 6;
cost 20;
transmit delay 5;
dead count 5;
wait 50;
bfd;
neighbors {
10.12.0.1;
};
};
interface "vpn3" {
authentication none;
check link;
type ptmp;
hello 10;
retransmit 6;
cost 10;
transmit delay 5;
dead count 5;
wait 50;
bfd;
neighbors {
10.13.0.1;
};
};
};
答案1
体重并不是你想要的优先顺序——度量是。单个路由中的所有下一跳都被视为“同等成本“多路径”,其中所有选项都可用,并且权重仅调整每个下一跳被选中的相对机会。
在您的示例中,操作系统将从以下项中随机选择:
VPN3、VPN3、VPN3、VPN2、VPN2、VPN1
这意味着 vpn3 被选中的概率是 3/6。
如果下一跳具有不同的成本(例如延迟),并且您希望始终优先考虑成本最低的下一跳,那么您需要使用 2 或 3分离路由,每个路由都有一个网关和不同的“度量”值。只要 BFD 报告其已启动,则将始终使用度量最低(即成本最低)的路由。
在 BIRD 中,静态路由的度量是通过igp_metric
属性设置的。例如,如果 vpn3 的延迟最低(必须始终优先考虑),但 vpn2 和 vpn1 相等(在两者之间保持随机选择),则可以使用:
route 15.235.0.0/16
via 10.13.0.1 % 'vpn3' bfd
{ igp_metric = 10; };
route 15.235.0.0/16
via 10.12.0.1 % 'vpn2' bfd
via 10.11.0.1 % 'vpn1' bfd
{ igp_metric = 20; };
答案2
最后我设置了这个权重设置。250次连接将走248次vpn3,这就足够了。临时解决方案。哈哈哈
route 15.235.0.0/16
via 10.13.0.1 % 'vpn3' bfd weight 248
via 10.12.0.1 % 'vpn2' bfd weight 1
via 10.11.0.1 % 'vpn1' bfd weight 1;