根据 DHCP 网关更改路由

根据 DHCP 网关更改路由

我已经在路由器上配置了 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

相关内容