Debug1998

RouterOS + OSPF 分离 求助帖, ROS 可以学习到路由,但是没有网络。

  •  
  •   Debug1998 · Jun 30 · 2192 views

    以下是我的配置:

    bird2

    [root@Kwrt:07:21 PM ~] # cat /etc/bird.conf log syslog all; router id 192.168.9.254;

    protocol device { scan time 10; }

    protocol kernel { ipv4 { import all; export all; }; }

    protocol direct { interface "br-lan"; }

    protocol static foreign { ipv4; include "/root/foreign.conf"; }

    protocol ospf v2 ospf1 { ipv4 { import all; export where source = RTS_STATIC && net != 0.0.0.0/0; }; area 0.0.0.0 { interface "br-lan" { type ptp; hello 10; dead 40; }; }; }

    ROS 学习到的 address:

    AI 说因为学习到了 0.0.0.0 导致的。 [root@Kwrt:08:05 PM ~] # birdc show route | grep 0.0.0.0 150.0.0.0/16 unreachable [foreign 19:11:31.576] * (200) 60.0.0.0/13 unreachable [foreign 19:11:31.576] * (200) 120.0.0.0/12 unreachable [foreign 19:11:31.576] * (200)

    路由表生成配置

    cat > /root/generate_foreign.sh << 'EOF' #!/bin/bash

    生成国外路由表( BIRD static 格式) - 纯 Shell 版

    CHINA_URL="https://raw.githubusercontent.com/mayaxcn/china-ip-list/master/chnroute.txt" FOREIGN_FILE="/root/foreign.conf" TMP_CHINA="/tmp/china.tmp"

    echo "=== 下载最新国内 IP 列表 ===" curl -s -L -o "$TMP_CHINA" "$CHINA_URL" if [ $? -ne 0 ] || [ ! -s "$TMP_CHINA" ]; then echo "下载失败!" exit 1 fi

    echo "=== 生成国外路由表(取反)===" cat > "$FOREIGN_FILE" << HEADER

    Foreign (non-China) routes generated at $(date -R)

    protocol static foreign { HEADER

    awk '!/^#/ && NF>0 { print " route " $1 " reject;" }' "$TMP_CHINA" >> "$FOREIGN_FILE"

    echo "}" >> "$FOREIGN_FILE"

    echo "生成完成!国外路由文件: $FOREIGN_FILE" echo "路由条目数量: $(wc -l < "$FOREIGN_FILE")" rm -f "$TMP_CHINA" EOF

    [root@Kwrt:04:37 PM ~] # head -20 /root/foreign.conf

    Foreign (non-China) routes generated at Tue, 30 Jun 2026 16:37:29 +0800

    protocol static foreign { route 1.0.1.0/24 reject; route 1.0.2.0/23 reject; route 1.0.8.0/21 reject; route 1.0.32.0/19 reject; route 1.1.0.0/24 reject; route 1.1.2.0/23 reject; route 1.1.4.0/22 reject; route 1.1.8.0/24 reject; route 1.1.9.0/24 reject; route 1.1.10.0/23 reject; route 1.1.12.0/22 reject; route 1.1.16.0/20 reject; route 1.1.32.0/19 reject; route 1.2.0.0/23 reject; route 1.2.2.0/24 reject; route 1.2.4.0/24 reject; route 1.2.5.0/24 reject; route 1.2.6.0/23 reject;

    22 replies    2026-07-04 13:22:05 +08:00
    jciba5n4y6u
        1
    jciba5n4y6u  
       3 days ago
    我懒的折腾分流了,现在是直接在电脑上 tun 全局更省心。

    蹲 op 主的进展,看看后续能不能抄作业。
    LaoLeyuan
        2
    LaoLeyuan  
       3 days ago
    我也折腾过分流,但是一旦网络出问题,很难确定是自己的分流策略出了问题还是🪜节点出了问题,弄来弄去发现只是折腾自己,现在已经退烧了。
    Debug1998
        3
    Debug1998  
    OP
       3 days ago
    @LaoLeyuan 感觉精力没榨干,这几天。
    chiikawa
        4
    chiikawa  
       2 days ago
    开了 IP 转发没。。
    sysctl -w net.ipv4.ip_forward=1
    sysctl -p
    daxy223
        5
    daxy223  
       2 days ago via iPhone
    楼上正解
    Debug1998
        6
    Debug1998  
    OP
       2 days ago
    @chiikawa @daxy223 IP 转发是开了的。现在 ROS 学到了路由,openwrt 开启了 passwall ,但是百度可以访问,google 无法访问。
    PerFectTime
        7
    PerFectTime  
       2 days ago
    我直接起一个透明网关,设置 VLAN ,把指定的 VLAN 流量走透明网关,主路由就不搞这些分流的事情
    chiikawa
        8
    chiikawa  
       2 days ago
    @Debug1998 #6 旁路自己本身 google 能不能访问,bird 指向的网卡得是 tun 的网卡
    Debug1998
        9
    Debug1998  
    OP
       2 days ago
    @chiikawa #8 没看懂,bird 指向的 openwrt 网卡需要是 tun 虚拟网卡?我现在 bird conf 配置里是 br-lan
    chiikawa
        10
    chiikawa  
       2 days ago
    @Debug1998 #9 我的配置你自己参考吧
    Debug1998
        11
    Debug1998  
    OP
       2 days ago
    @chiikawa #10 谢谢大佬。
    Debug1998
        12
    Debug1998  
    OP
       2 days ago
    @chiikawa #10 AI 给的方案我基本上推翻重来了,现在是根据这篇博客来的,还差最后一步 避免路由环路配置就完成了,下班配置完试试效果。
    地址: https://deeprouter.org/article/routeros-ospf-intelligent-traffic-split
    feisualio
        13
    feisualio  
       2 days ago
    学习一下,之前折腾 router 和 opnsense 差不多两年多,规则的维护需要过多精力...
    现在完全回归 ikuai ,最多 acl 简单处理下,剩下的都在设备端完成分流。
    Debug1998
        14
    Debug1998  
    OP
       1 day ago
    @feisualio @LaoLeyuan 感觉精力被榨干,太累了,好不容易整成功了,还得排查国外网络慢的问题,太难了。
    sm1314
        15
    sm1314  
       1 day ago
    在用 opnsense ,本来打算折腾 ospf/bgp 分流的,但是经过调研后还是觉得路由这块不可控的因素太多,最后用了更轻量的方案: mosdns+openvpn+多 vlan+ssid 绑定实现。好处是简单稳定可靠,并且自动分流只对 某个 vlan 及其绑定的 ssid 生效,即使海外节点网络波动不影响主网络,目前稳定运行一年。
    Debug1998
        16
    Debug1998  
    OP
       1 day ago
    @sm1314 用 opnsense 是高手啊。OSPF 太折腾人了,我不是专业网工,基础知识比较差。不行后续索性 openwrt 好了。
    thereone
        17
    thereone  
       1 day ago
    用 BGP 和 OSPF 有些意义不明,特别是这种取反的灌入一堆国外路由条目。一定要搞的话为何不用 BGP ,旁路发国内路由给 routeros 然后设置下一跳为 pppoe 直连,BGP 发过来的默认路由高于本地 routeos 的出口。实现国内走明细出口,非国内默认走旁路。旁路要把 NAT 打开同时主路由要把旁路的 IP 地址设置强制走 routeros 本地出口防止又发回旁路了。
    当然我是不推荐这个的,最简单的就是你的 routeos 和旁路做个 vrrp 就行了,旁路由不要使用 nat 然后开启代理插件,代理插件里面绕过国内 IP 表这样就 OK 了。当拔掉旁路网线后 vrrp 的 vip 自动切换回 routeos 上面走直连,还有可以联动旁路由的 vrrp 的 track 脚本实现代理挂了自动降低优先级网关切回 routeos 上面。实现完全无感。
    还可以多个旁路跑 vrrp ,挂一个就切一个直到代理全挂了最后回到 routeos 上面走直连。
    Debug1998
        18
    Debug1998  
    OP
       1 day ago
    @thereone 出问题对非专业网工来说,有点难排查。在考虑其他方案,如 RouterOS 的容器上跑个 MosDNS ,国内直接走 RouterOS,国外走 Openwrt 。
    ddczl
        19
    ddczl  
       1 day ago
    我之前有用 BGP 和 OSPF ,但是维护排查成本太大了。现在用这个方案:

    1. RouterOS 配置 FakeIP 路由表下一跳网关旁路网关 IP
    2. Adguard Home 做域名判断,国内走公共 DNS 查询,国外走 mihomo 查询;
    3. 设备只需要 DNS 指向 Adguard Home 即可。

    用到的资源:
    https://github.com/AdguardTeam/Adguardhome
    https://github.com/juewuy/ShellCrash

    这样可以做到很薄的一层,也方便排查,Adguard Home 与 mihomo 在一个机器上,资源占用也比较少。
    ddczl
        20
    ddczl  
       1 day ago
    接上面,嫌麻烦 Adguard Home 都不需要安装,ShellCrash 基本满足 DNS 的分域名查询
    xy323527470
        21
    xy323527470  
       11h 15m ago
    这是家用的还是啥,路由条目小全部手动静态就完了搞啥动态路由协议去。bgp 这都已经是专门给 as 自治域用的玩意儿了,普通人咋用得到这种东西。。
    xy323527470
        22
    xy323527470  
       11h 13m ago
    小点的动态路由量,用 rip 协议不就够了,设置还简单。上什么 ospf ,这不是公司用的么
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1548 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 16:35 · PVG 00:35 · LAX 09:35 · JFK 12:35
    ♥ Do have faith in what you're doing.