我已经在路由器上配置了 BGP(使用 Entware)以通过 VPN 发送一些路由。它起作用了。但现在我需要从中排除一个设备(它必须不通过 VPN 隧道)。
我的鸟配置
log syslog all;
log stderr all;
router id x.x.x.x;
function martians()
{
return net ~ [ 100.64.0.0/10+,
169.254.0.0/16+,
172.16.0.0/12+,
192.168.0.0/16+,
10.0.0.0/8+,
127.0.0.0/8+,
224.0.0.0/4+,
240.0.0.0/4+,
0.0.0.0/32-,
0.0.0.0/0{0,7}
];
}
protocol device {
scan time 15;
}
protocol kernel kernel_routes {
scan time 60;
import none;
export all;
kernel table 1000; # kernel routing table number
}
protocol static static_routes {
import all;
#route 192.168.2.62/32 via "eth3";
}
protocol bgp antifilter {
import filter {
if martians() then reject;
gw = 1.0.0.1; # override route nexthop
accept;
};
export none;
local as 64999; # local default as-number
neighbor y.y.y.y as 65432;
multihop;
hold time 240;
}
当 VPN 连接出现时创建表 1000
ip rule add iif br0 table 1000
对于 SBR,我尝试使用以下命令:
ip rule add from 192.168.2.62 table 120
ip route add default dev eth3 table 120
但结果是“网络不可用”。
现在我尝试了这个
ip rule add from 192.168.2.62 table 120
ip route add default via x.x.x.x dev eth3 table 120
而且它确实有效。但我不知道运营商的网关,不是在运行时。它来自 DHCP。如何根据来自 DHCP 的新信息更改表 120 中的默认路由?或者如何在 bird config 中将其排除
答案1
您可以只请求main
需要 DHCP 默认路由的主机表:
ip rule add pref 100 from 192.168.2.62 table main
ip rule add pref 200 iif br0 table 1000