V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lly8666
V2EX  ›  宽带症候群

搞不明白,你们为啥喜欢在软路由上用旁路由?

  •  3
     
  •   lly8666 · 2022-03-27 13:04:52 +08:00 via Android · 40533 次点击
    这是一个创建于 732 天前的主题,其中的信息可能已经有所发展或是发生改变。

    直接把旁路由的 openwrt 设置成正常路由模式接到主路由,主路由跑个 ros ,多一层 NAT 又大不了多少开销,openwrt 就算挂了也不影响网络。

    141 条回复    2023-12-19 22:42:03 +08:00
    1  2  
    iovekkk
        101
    iovekkk  
       2022-03-28 10:47:01 +08:00
    我直接 N1 单臂路由接交换机再接三个 AP 搞定完事
    goodbyennn
        102
    goodbyennn  
       2022-03-28 10:51:12 +08:00
    弱鸡来问下,如果电视连 wifi 不支持改网关和 dns ,这种咋处理呢?只能全局模式吗。
    goodryb
        103
    goodryb  
       2022-03-28 11:02:07 +08:00
    其实称呼透明代理应该更合适一些。

    现在是 N1 跑的 openwrt , 默认情况下设备联网都是走主路由。 需要科学上网的设备手动将网关和 dns 改成透明代理的地址。

    比如像 xbox ,本身没发安装代理软件,用上面这种方式就很好用。

    如果是移动设备连接 Wi-Fi 的话, 正常 5g 信号就自动 dhcp ,走主路由上网,2.4g 信号 设置手动网关和 dns (一次性工作),这样通过切换不同的 Wi-Fi 信号就能选择是否走代理。
    JohnSmith
        104
    JohnSmith  
       2022-03-28 11:08:12 +08:00 via iPhone
    @luoshengdu igmp 做路由策略是啥原理
    Aixiaoa
        105
    Aixiaoa  
       2022-03-28 11:13:32 +08:00
    @sp670 #84 分流我做的很简单 只是用 firewall 做流量重定向 没啥好说的
    监控代理网关状态 简单的可以用 netwatch 功能直接监控 host 挂了就自动 down 掉分流设置 上线就自动恢复
    复杂的就写脚本实现
    luoshengdu
        106
    luoshengdu  
       2022-03-28 11:30:02 +08:00
    @JohnSmith igmp 是网络管理协议,发现相邻网络可达时能直接转发,大概就是这么个意思。
    所以在旁路由设置好国内流量不转发,从电脑 /手机 /tv 等客户端可以直接和主路由器通讯,不需要经过旁路由,翻此贴第一页我的第二条回复的图片,测速 900Mbps ,很明显看到这个流量没有走旁路由转发一次的。

    废话这么多的总结:旁路由并不会影响局域网终端的网络性能,它对 fq 提供了便利又不影响访问国内网络的性能。IGMP 协议对这个实现提供了一些帮助

    你搜索了解一下 igmp
    Kinnice
        107
    Kinnice  
       2022-03-28 11:40:03 +08:00
    因为就一个网口,又没支持 vlan 的交换机。
    starqoq
        108
    starqoq  
       2022-03-28 12:49:25 +08:00
    因为我们有先进的中国特色社会主义自主网络。
    lp7631010
        109
    lp7631010  
       2022-03-28 13:46:40 +08:00
    @aru 既然很多人说 openwrt 不稳定,那肯定是有原因的,不同的机器稳定性都可能不同 ,也可能是兼容性问题。就拿我的来说 我的 n3450 工控机刷 openwrt 的时候,挂网心云流量大了经常显示网络延迟时不时波动很大,日志里面还有偶尔网卡直接 down 掉重新连接,开始以为硬件问题,后来听别人的换成 ros ,果然稳了,再没出现过,确实是这么个事实
    dcty
        110
    dcty  
       2022-03-28 23:58:23 +08:00
    @goodbyennn #102
    如果你的局域网内的 DHCP 服务由 OpenWrt 或者其他灵活度比较高的提供的话,完全不是问题,可以根据 Mac 地址下发不同的网关和 DNS
    neroxps
        111
    neroxps  
       2022-03-29 06:58:06 +08:00 via iPhone
    ros 根本不必两层 nat ,直接让 ros 把需要出墙的数据包发给 op 就行了。dns 指向 op ,再写个脚本检查下 dns 是否正常,op 炸了自动切回运营商 dns 就行。我用了两年舒服极了。
    goodbyennn
        112
    goodbyennn  
       2022-03-29 13:18:31 +08:00
    @dcty 主路由是 tp 原厂固件。。不支持指定设备自定义网关和 dns ,我再研究下吧,谢谢解答~~
    libregratis
        113
    libregratis  
       2022-03-29 15:57:11 +08:00
    RouterOS 属于可加可不加,OpenWrt 完全可以作为主路由,很多人加是为了 RouterOS 的 DNS 缓存功能,但实际上 OpenWrt 完全可以实现
    Aixiaoa
        114
    Aixiaoa  
       2022-03-29 20:54:14 +08:00 via Android
    @sp670 我有一个方法想让你试试。你试着禁用掉 ros 的 drop invald input 和 drop invald forward 这两条 firewall 规则再试试
    sp670
        115
    sp670  
       2022-03-29 22:54:53 +08:00
    @Aixiaoa 我艹,大哥你神了,一切正常了!!
    我咋为啥一直没想起来防火墙。。。
    Aixiaoa
        116
    Aixiaoa  
       2022-03-29 23:11:23 +08:00 via Android
    @sp670 我猜测大概率是这个原因。但是具体原理我也说不清楚。😁 可能是你 op 转发过去的流量被认为是没用的包吧
    sp670
        117
    sp670  
       2022-03-29 23:15:26 +08:00
    @Aixiaoa 膜拜大神的灵感,不知道 ROS 啥机制以为这部分包是没用的给丢弃掉了
    Aixiaoa
        118
    Aixiaoa  
       2022-03-29 23:20:59 +08:00 via Android
    @sp670 这个机制我有个模糊的想法。就是不知道准确不准确。反正你也能用了。就凑合用吧。对了。问下你你的 ros 更新到 7.x 了么。有没有用 ros 带的 wg 。我想 ospf over gre over wg 。套娃试试🤣
    sp670
        119
    sp670  
       2022-03-29 23:38:14 +08:00
    @Aixiaoa 目前更到了最新的 7.1.5 ,wg 我没用,我觉得这玩意儿特征太明显了容易被 ban IP 甚至查水表。
    ospf over wg 貌似上面有个老哥在用。还有我这次弄的 ospf+旁路,也是受一个 ospf+树莓派的老哥启发的,那老哥好像还是再美帝的私人飞机飞行员,他前不久好像也刚写了一篇 ospf over wg 的。
    Aixiaoa
        120
    Aixiaoa  
       2022-03-29 23:41:51 +08:00 via Android
    @sp670 wg 我是用来和机房组网的。在省内跑流量。udp 并没被 qos 。用起来挺舒服。你说的文章有链接发来瞧瞧么
    Aixiaoa
        121
    Aixiaoa  
       2022-03-29 23:46:37 +08:00 via Android
    @sp670 既然你用的 Debian 跑的 clash 。这里有一个挺有意思的东西给你瞧瞧。https://github.com/jacyl4/de_GWD
    sp670
        122
    sp670  
       2022-03-29 23:47:37 +08:00
    @Aixiaoa 文章链接: https://idndx.com/ospf-over-wireguard/
    纯英文的,但没啥生涩词汇,读懂没啥问题
    sp670
        123
    sp670  
       2022-03-30 00:23:25 +08:00
    @Aixiaoa Debian 跑 clash 是客户端,这个哪个发行版跑都无所谓。现在其实我的弱项是服务端,服务端 VPS 是 N 年前瓦工年付 10 刀的小鸡中的小鸡,当时年轻不动就跟着教程安了 CentOS7+宝塔+博客+v2 ,现在想大改但是没那精力了
    w0017
        124
    w0017  
       2022-03-30 11:25:47 +08:00
    可以随便折腾不影响其他人上网。
    six6pear
        125
    six6pear  
       2022-03-30 11:50:39 +08:00
    因为方便,一个网关就能控制设备是否 fq 。而且节点出问题或者 openwrt 出问题的时候不会影响网络正常使用。
    six6pear
        126
    six6pear  
       2022-03-30 11:52:05 +08:00
    @six6pear 最重要的是当某个设备需要全局的时候无需设置也不会影响其他设备。
    melsp
        127
    melsp  
       2022-03-30 13:19:53 +08:00 via Android
    我一个学数通的,只听到过单臂路由,这个旁路由,我确实没整明白,求解惑
    jujusama
        128
    jujusama  
       2022-03-30 16:45:07 +08:00
    更喜欢直观的称呼为网关
    luoshengdu
        129
    luoshengdu  
       2022-03-31 13:03:03 +08:00
    @melsp https://sspai.com/post/68511
    可以看看这个文章写的比较清晰了。里面有拓扑图,旁路由 IP 192.168.1.2/24 ,主路由 192.168.1.1

    旁路由网关指向主路由(出口)
    所有用户电脑的默认网关和 dns 指向 192.168.1.2
    dudesun
        130
    dudesun  
       2022-03-31 13:47:37 +08:00
    从小米 R3P 刷原生 openwrt 入坑所谓旁路由之后,发现好用的一笔
    又买了 2 个 N1 ,外加 nuc8i5beh 用 kvm 跑了旁路由。

    根据观察,设置了旁路由 IP 为默认网关 /DNS 的机器,如果是访问 192 内网其实是直达的,不经过旁路由。
    Litccc
        131
    Litccc  
       2022-03-31 19:25:36 +08:00
    你们用 N1 做主路由能跑满带宽吗?我试了下 1000M 只能跑 600M 左右
    oovveeaarr
        132
    oovveeaarr  
       2022-04-01 04:41:08 +08:00   ❤️ 2
    说点可能会让部分同学不开心的话,但是“旁路由”这个词汇诞生的第一天,就充满着一股“民科”味,比较令人困惑。
    一开始说道旁路由,大部分同学的反应可能是“旁路”:就是你们懂得设备,或者安全审计网关常用的“端口镜像”;
    后来仔细一看才知道,原来是找了个设备,做了点策略路由,再加了一道 FORWARD 机。

    其实总结下来,我个人看法是“又菜又爱玩”

    如果非要说就拿大家常用的“你懂得”功能来说:目前大部分的旁路由,高级一点的利用了 DHCP“推送默认路由”等方式,推送默认路由。原始一点的手动修改客户端的默认路由,这其实都是对网络不够了解的提现(为什么说菜就在这里了,同时修改默认网关的操作,也做不到路由炸了自动切换什么的,所以稳定性谈不上优点)。

    大家常用的功能,通篇下来就一个词“策略路由”;既然是策略路由了,为啥还需要还分两台路由做呢:
    1.主路由性能太菜;
    2.主路由是傻瓜路由;
    3.主路由系统不支持某些软件运行;(这点还是有限制条件的)
    除此之外,我想不到其他太充分的理由,需要利用到第三方的“旁路由”了。

    将一个策略路由拆分成两部分,本身就非常割裂,除了物理限制的情况下,其他情况都不应该去这么做,因为收益并不明确,但是副作用却很明显。

    就拿大家常说的“修改默认网关来说”,较为一体的解决方案应该是考虑到,新增策略路由做 FORWARD 就可以了,这样整条策略才够完善,对客户端没有影响的同时,规则会非常灵活(配合探活很容易就可以做到策略转移,也就是“稳定性”了)。

    那么其实问题就很明显:
    1.既然只是一个 FORWARD 的“策略路由”,为什么要上升到“修改默认路由”这一个非常危险的操作呢?
    2.如果只是一个 FORWARD 操作,FORWARD 到本机,理论上拥有更低的瓶颈和更高的性能,FORWARD 到外部能提供什么呢?

    对于主路由能够支持、且性能没有瓶颈的情况下,旁路由存在的必要真的很不明确。

    很多同学可能觉的“插件”之间存在冲突等兼容性问题:那其实在旁路由上,都能做到“手搓”策略的同学,在主路由上肯定也能做到。
    我也相信,如果肯花时间“手搓”策略的话,Debug 冲突插件肯定也是必备的技能,毕竟“手搓”的过程中也需要 Debug 。
    所以在考虑到这种情况下,相比起来,旁路由也不是一键省事省力省心的事情。
    oovveeaarr
        133
    oovveeaarr  
       2022-04-01 05:19:04 +08:00
    Openwrt 是一个广泛使用的操作系统,它的稳定性应该不会差到充当家庭路由,都会经常性的出现问题。
    毕竟下面的设备,可能用的都是定制的 Openwrt 系统
    1.光猫(尤其是 SDN 光猫)
    2.CM
    3.互联网品牌的路由
    4.Pon Sticker/猫棒
    5.随身 WIFI

    Openwrt 作为一个开源系统,我个人作为有开源癖好的人,自然还是必须要推荐一波的,下面有几点建议希望能够帮助到大家:
    1.尽量使用官方兼容的镜像,比如说原版镜像,官方 Image Builder 镜像,自行编译的兼容镜像
    2.三方镜像选择开源可自行编译版本,使用自行编译的版本而不是预编译版,有条件可以对比下修改内容
    3.对于使用到的插件,尽量避免其包含 1)预编译不开源二进制文件 2)已混淆、加密的代码

    其实我优先选择开源软件的一大理由,就是作为最终用户,还是能够有能力自己去调试、解决遇到的问题( BUG ),修复后还可以贡献给上游。但是对于闭源软件来说,想要自己调试、修复基本上是非常难得,只能依赖于希望提交给官方后,他们能够积极响应修复了。
    (毕竟 RouteOS 的 BUG 其实也不少,时常见到有 ROS 用户吐槽)
    52coder
        134
    52coder  
       2022-04-03 16:02:55 +08:00
    直接科学不香吗,推荐个机场 aHR0cHM6Ly93bXN4d2QtZS5tZW4vYXV0aC9yZWdpc3Rlcj9jb2RlPVBsenc=
    edisonz623
        135
    edisonz623  
       2022-07-16 15:18:43 +08:00
    多频 AP+爱快+LEDE 旁路由,类似小米 AX9000 这种 AP ,两个 5G 频,可以实现连 1 个设备双 mac ,1 个 mac 网关挂到旁路由去,另一个挂到主路由,这样旁路由挂了也不影响上网
    adminoroot
        136
    adminoroot  
       2022-09-05 10:23:28 +08:00
    你自己都说了是旁路由,怎么又两层 nat 了????旁路由是透明网关,没有 2 层 nat 啊,就主路由一层 nat 啊,你自己问的都自相矛盾,让别人怎么回答。
    Karmylr
        137
    Karmylr  
       306 天前 via Android
    @jousca 旁路由≠单臂路由
    kblack
        138
    kblack  
       105 天前
    @sp670 你是不是旁路由、主路由、客户端在同一个网段了,我也遇到了类似的问题。这样的话去程会经过 routeros 但是回程不会,旁路由会直接发送给客户端,这样 routeros 是看不到完整的 tcp 握手的,从而认为连接不合法,10s 后可能是走了 untracked 。如果是这个问题的话,直接 accept 肯定能解决,让旁路由(通过 fwmark )强制转发回主路由也可以(我选了这条)。
    sldaniel
        139
    sldaniel  
       102 天前 via iPhone
    @kblack
    fwmark 这个方案可以详细说一下么
    我用 debian 装的 clash tun 模式当网关,还碰到油管断流的问题
    kblack
        140
    kblack  
       100 天前   ❤️ 1
    @sldaniel 我是自己写的转发代码,从 tproxy/redir listen/accept 的 socket 都加上 fwmark ,然后通过 ip rule 指定路由表强制原路返回主路由,tun 的不知道,iptables 标记 mark 应该也行
    sldaniel
        141
    sldaniel  
       99 天前 via iPhone
    @kblack 感谢,我去研究下
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3347 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:39 · PVG 21:39 · LAX 06:39 · JFK 09:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.