V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
loxlblade
V2EX  ›  程序员

又查了一夜,搞不懂旁路由和透明网关的区别

  •  
  •   loxlblade · 2023-07-27 01:16:54 +08:00 via Android · 9654 次点击
    这是一个创建于 492 天前的主题,其中的信息可能已经有所发展或是发生改变。
    又查了一夜资料,整理了我理解的透明网关,



    一句话总结就是 ,当设备指向了透明网关(特指部署在标准 linux 设备上的 tpclash )后,意味着上行流量指向 tpclash ,而从 wan 口来的下行流量就直接指向设备本身了,并不会再从 tpclash 里绕一圈。





    那么我的疑问是,这和传统说法的 openwrt 单 lan 口旁路由的区别是什么呢? 理论来说旁路由也是做了这样的事情啊😯。但是根据以往经验,使用旁路由时总会遇到 内网变慢,王者荣耀断流等必然复现的问题。或者是刚开始设置时一切完美,用了差不多一星期后,网页就开始各种缓慢。





    难道当使用 openwrt 做旁路由时。它做了比透明网关更多的步骤?导致从 wan 口来的下行流量也经过了 openwrt ?这一点很糊涂,求 v 友们帮我解解惑😂😂😂😂
    43 条回复    2023-07-28 10:43:50 +08:00
    netusers
        1
    netusers  
       2023-07-27 01:20:31 +08:00   ❤️ 2
    透明网关:就是夹在中间的小三
    旁路:就是旁观者,不挡任何一方去路
    chenyx9
        2
    chenyx9  
       2023-07-27 01:51:55 +08:00 via Android
    Partially boom VS Entirely boom
    wheat0r
        3
    wheat0r  
       2023-07-27 02:11:16 +08:00   ❤️ 7
    首先,旁路有和透明网关都不是术语。
    旁路由这个叫法还是很业余的,如果只是做路由,这东西应该叫单臂路由;如果不只是做路由,还有代理、NAT 之类的功能,应该叫网关。
    透明网关也并不透明,你是自己把路由指过去的,算什么透明。
    建议只关心功能,别在乎名字,会难受。
    loxlblade
        4
    loxlblade  
    OP
       2023-07-27 02:18:51 +08:00
    读完此条回复,有一种被耍的感觉。立马觉得最靠谱的比喻还是一楼。
    tywtyw2002
        5
    tywtyw2002  
       2023-07-27 02:24:44 +08:00 via iPhone   ❤️ 10
    一帮搞软件 x 墙的人在乱起名字。

    在 cisco 的 CCIE 里面,透明网关是在 ASA 系列防火墙中的概念,在 layer 2 进行过滤。因为是 L2 ,所以没有对 IP 层操作,所以叫透明网关。(正常的网关是三层转发,要查路由表)

    旁路路由,就是单臂路由,只连一个网络,把数据包发送到同一个网段的其他机器。
    germain
        6
    germain  
       2023-07-27 07:37:31 +08:00 via iPhone
    我看你们一本正经的的瞎扯淡也不知道说啥好。但凡稍微看过点文档或者你百度一下也行啊。

    出现在这所谓技术社区,也真的是无语🤦‍♂️
    yyysuo
        7
    yyysuo  
       2023-07-27 08:22:00 +08:00
    @germain 照你这么说,V2 没几个帖子是合格的。
    yuchenr
        8
    yuchenr  
       2023-07-27 08:25:16 +08:00
    不必在意名字。
    其实就是一个开了转发的机器 R ,他的作用就是把接收到的数据转发到真正的网关 G 。
    正常来说,客户端 C 应该是把数据发给 G ,如果你把客户端的网关设置成 R ,这时候数据的走向是 C--R---G
    MrSheng
        9
    MrSheng  
       2023-07-27 09:00:20 +08:00
    @germain 我就喜欢你这样的帖子,最好加一句懂得都懂。
    lovelylain
        10
    lovelylain  
       2023-07-27 09:16:38 +08:00 via Android
    旁路由是二级路由,数据(在路由层面,链路层面另算)要先到旁路由再到主路由,只不过网段还是和主路由一个网段,所以叫旁路由。
    透明网关只有一层路由,不走代理的数据直接出去了,走代理的数据转发到代理再由代理出去。
    这么解释区别很明显很容易理解吧?性能上透明网关是要优于旁路由的,但是要在路由器上部署透明代理能力,不是所有的路由器都支持,例如光猫你就没法引入这个能力,普通路由器不破解或者不刷机也没有这个能力。旁路由的主路由就是个普通路由器。
    tony1016
        11
    tony1016  
       2023-07-27 09:26:04 +08:00
    我理解透明网关在局域网里负责 DHCP 分配功能,所以可以让都有流量都透明的过它,旁路由不负责 DHCP ,你要用它你就手动配置本地的网关指向
    Linken404
        12
    Linken404  
       2023-07-27 09:55:57 +08:00
    向#5 里说的专业术语确实不太懂,但在搞软路由、nas 、htpc 的氛围里,我大概知道是什么意思

    他们说的旁路由一般是在你有主路由,但主路由没有代理功能的时候(比如爱快),在网络链路的旁路单挂一个单臂路由(但大部分是软路由,虚拟机),然后这个单臂路由提供诸如透明代理、去广告等功能,但整个网络中主网关还是主路由,DHCP 服务也是仅在主路由上开启。旁路由的网关指向主路由,同时如果你有设备需要使用透明代理、去广告这些功能,那就手动把网关指向旁路由就可以了。

    然后透明网关,在某种语境下指的应该是上面的主路由,同时具备透明代理功能,这样在主路由以下的全部网络环境中,都是默认“透明”上网的,默认通过代理。

    还有一种模糊的说法,有的人在说的时候会把做透明代理的旁路由叫成透明网关,因为本身这两个概念在功能上相似,说的时候又不是所有人都很懂,就有点模糊,所以有歧义也很正常。
    Linken404
        13
    Linken404  
       2023-07-27 10:05:43 +08:00
    我是这么认为的,但不一定跟别人的说法完全一样:

    如果说在一个没有默认代理功能的网络链路中,添加一个 linux ,在 linux 里用防火墙做转发,然后将某些流量传到 linux 中的 v2ray 或者什么代理软件里,然后让所有以此 linux 为网关的设备都通过这个 v2ray 代理来上网。那这个 linux 你是叫他旁路由呢,还是叫他透明网关呢?所以在某些语境下这两个其实是一个意思罢了,因为本身就没有一个十分明确的定义,只是爱好者们约定俗成的叫法。

    另外这种实现方式有个最大的问题:无论是现成的旁路由如 lede 、openwrt ,还是上面说的用 linux 本身 ip 转发的方式来做,都会导致在主路由上看到的终端只有旁路由,而看不到旁路由下的设备。如果需要对外暴露端口,还得在旁路由上做端口转发,毕竟是等于多了一层 nat 。
    yyysuo
        14
    yyysuo  
       2023-07-27 10:14:09 +08:00
    @Linken404 我搞不懂为什么要强调透明,现在的科学方案,只要在主路由上的,哪个不透明呢。
    ghostwwg
        15
    ghostwwg  
       2023-07-27 10:15:04 +08:00
    我是这么理解的,单口 op 做所谓的旁路由本质就是一个网关,虽然叫“路由”,但本身不做 nat ,nat 是交给光猫或者另一个路由器来做,op 只是做了一个网关服务,可以对流量做一些上级设备不具备的功能。
    Jirajine
        16
    Jirajine  
       2023-07-27 10:31:12 +08:00
    @tywtyw2002 照你这样说,那他们起的这些名字也没有问题。
    透明网关就是在二层操作流量,也就是二层防火墙,放 linux 里就是 ebtables 和 nftables 的 bridge/netdev family 。
    旁路由虽然是非常糟糕的 hack ,但也确实是把 ip 包转发到同网段的其他机器。
    captainm
        17
    captainm  
       2023-07-27 10:32:11 +08:00
    captainm
        18
    captainm  
       2023-07-27 10:35:18 +08:00   ❤️ 1
    ![]( )
    不知道这样你能明白不。
    Linken404
        19
    Linken404  
       2023-07-27 10:38:31 +08:00   ❤️ 1
    @yyysuo 不知道啊,约定俗成的说法吧,毕竟很多在家里搞软路由、HTPC 的人其实都是爱好者,并不是什么互联网或运维从业人员,很多人 shell 命令都只能照着敲,他们的术语有时候是约定俗成的……不过直观上来说,感觉说透明是在强调无感觉科学上网,反正能理解个大概就行了
    Linken404
        20
    Linken404  
       2023-07-27 10:41:25 +08:00
    @yyysuo 并且爱快这种很多人推崇的主路由,他本身没有代理功能,现在以及可以预见的将来都不会有……以前有代理功能的主路由也不多,也就有了透明跟不透明的区分,算是历史遗留问题了
    lyxeno
        21
    lyxeno  
       2023-07-27 11:26:06 +08:00
    "旁路由" 一般和透明代理 这个词相关联吧?对于科学上网来说,确实够透明
    germain
        22
    germain  
       2023-07-27 11:28:00 +08:00
    @yyysuo 不合格和传播完全错的概念是有很大区别的。而且这些名词都是随手就能找到解释的词条,不是啥高深莫测的技术。


    @MrSheng 我觉得应该加一句“不要不懂装懂”,特别是把 CCIE 搬出来,再来个“旁路路由,就是单臂路由”,不搞笑吗?
    jiangzm
        23
    jiangzm  
       2023-07-27 12:01:46 +08:00
    旁路由就是单臂路由 🐶
    samueler2016
        24
    samueler2016  
       2023-07-27 12:27:41 +08:00 via Android
    每次看到有比我更小白的,我就很开森
    yeqizhang
        25
    yeqizhang  
       2023-07-27 12:37:40 +08:00 via Android
    我在电脑用 wifi 连路由器,电脑上开启 clash 透明代理,所以电脑是啥了……
    loxlblade
        26
    loxlblade  
    OP
       2023-07-27 12:40:28 +08:00 via Android
    @samueler2016 生三娃吧。每天三倍开心
    fenghuang
        27
    fenghuang  
       2023-07-27 13:05:29 +08:00 via Android
    旁路由内网设备同一 ip 段之间流量是不是也要到旁路由绕一下
    lvxing888
        28
    lvxing888  
       2023-07-27 13:29:29 +08:00
    @fenghuang 主要看网关吧?你指定了旁路由的网关 什么流量都去绕一圈。 你说这个会不会影响网速。
    preach
        29
    preach  
       2023-07-27 13:31:16 +08:00
    旁路由还是路由 承担着路由的工作,dhcp dns 拨号 网关等
    透明网关 还是网关 承担的网关的工作
    Huelse
        30
    Huelse  
       2023-07-27 14:56:30 +08:00
    看完评论总结:
    旁路 = Hook
    透明 = Middle Layer
    cyspy
        31
    cyspy  
       2023-07-27 14:59:59 +08:00
    主路由:客户端-交换机-路由器-外网
    旁路由:客户端-交换机-旁路由-交换机-主路由-外网
    chronos
        32
    chronos  
       2023-07-27 15:04:02 +08:00
    在家庭外网需求的情况下[透明网关]一般指主路由设备本身提供了代理翻墙,去广告等能力,可以让局域网里面的设备无需另外配置,就能直接获得翻墙,去广告等功能。

    而[旁路由]一般是在主路由没有透明代理的能力,比如光猫或着其它封闭系统的路由器的情况下,通过在局域网中添加一个额外的路由器,配置好类似于[透明网关]的代理能力,让局域网设备将网关指定[旁路由]实现翻墙需求。

    还有[旁路由]并不一定是[单臂路由],[单臂路由]是指只有一个物理端口连接的路由设备。而[旁路由]你接两个物理端口到同一个局域网中,一个做为 WLAN ,一个做为 LAN ,一样可以实现,只是通常没必要而已。
    LYwyc
        33
    LYwyc  
       2023-07-27 15:09:22 +08:00
    @germain 同感,但凡楼上几个做科普的百度一下“单臂路由”啥意思,也不会说出旁路由就是单臂路由这种暴论
    chronos
        34
    chronos  
       2023-07-27 15:11:34 +08:00
    @fenghuang 局域网中一般相同的网段在设备的路由表上是直连的,因为数据包都通过交换机交换,是不是旁路由不影响这个。现实当中反而是主路由更有可能让数据包从它那边绕一圈,因为主路由上通常有好几个 LAN 接口,上面同时插着好几个设备,这时主路由器就承担了部分交换机的功能。
    sleepm
        35
    sleepm  
       2023-07-27 15:56:39 +08:00
    透明网关,对用户来讲是透明的,用户感知不到他的存在(不需要设置什么)
    旁路由,用户需要设置网关为旁路由才能科学上网,也就是所有流量都要先发到旁路由
    包括局域网内流量,比如访问 nas 里的电视剧
    电脑到旁路由,旁路由到主路由,再到 nas
    zsj1029
        36
    zsj1029  
       2023-07-27 16:05:28 +08:00
    我用旁路由实现的透明网关,6 不 6
    chronos
        37
    chronos  
       2023-07-27 16:05:53 +08:00
    @sleepm 局域网流量还真不一定,一般 nas 和电脑是在同一个局域网里面的同个网段下面。你的电脑路由表里面看一下就知道了,主机是直接连接的 nas ,数据包在交换机这层就直接转过去了。访问 nas 时数据并不会到路由器上。
    bbroot
        38
    bbroot  
       2023-07-27 16:31:23 +08:00
    单臂路由难道不是划 vlan 后的用法吗???????
    chronos
        39
    chronos  
       2023-07-27 16:36:29 +08:00
    @bbroot 其实也可以不划 VLAN ,在旁路由这个场景下完全可以只有一个 LAN IP 。
    fenghuang
        40
    fenghuang  
       2023-07-27 22:20:18 +08:00
    @lvxing888 #28
    @chronos #34
    主路由是 K2P
    旁路由 ip:192.168.1.100 网关 192.168.1.1 指向主路由,dhcp 也在主路由上,旁路由是单千兆网口
    设备 1 网关 192.168.1.100 指向旁路由
    设备 2 网关 192.168.1.100 指向旁路由
    就是这种情况下,设备 1 和设备 2 之间跑不满千兆
    mohumohu
        41
    mohumohu  
       2023-07-27 22:55:18 +08:00
    其实主要是看你网络的拓扑,在大多数语境下可能并没有什么区别。很多人的旁路由实际就是个二级路由,也就是个透明网关。真正达到国内流量正常走一级路由,只有需要走代理的流量静态路由走到透明网关,就算这个透明网关挂掉了也不影响国内流量上网,这才是真正的旁路。可以参考下这个方案: https://github.com/kkkgo/PaoPaoGateWay
    ShuWei
        42
    ShuWei  
       2023-07-28 10:01:44 +08:00
    常见的网关,一般分为二层网关和三层网关,二层网关在 L2 数据链路层,主要负责数据格式转换和链路转发,就是个单纯 boy ,并不关心任何上层协议,常说的透明网关就是指这个,而三层网关,因为工作在 L3 网络层,所以多了一层协议封装,需要处理寻址、标识、路由、转发、重新封装数据包,单臂路由的网关一般都是三层网关

    如果懵逼,要么去补习一下网络模型相关的知识,还得比较细,要么就直接懵逼着吧,毕竟搞清楚其实也没太多用途,你需要关心的是自己要用什么,你说的 tpclash ,最多叫透明代理,基于 TUN ,工作在网络的第三层,并不属于真正意义上的透明网关

    至于你说的单臂路由用久了会卡,应该属于搭建和配置的问题,跟单臂路由这个概念本身没有关系,仔细找找看自己配置上是否有什么问题,或者换个固件试试
    chronos
        43
    chronos  
       2023-07-28 10:43:50 +08:00
    @fenghuang 你这种就是局域网内跑不满千兆,跟是不是用了旁路由没关系。需要看看实际能跑到多少带宽,是只有千兆的一半左右,还是 800Mbps 以上接近 1000Mbps 的情况。

    建议查一下下面的几个地方:

    1. 中间负责这两个设备二层交换的设备,通常是交换机,也可能是路由器。看看去掉这个设备,用一根网线直连两台主机的速度有没有差别。
    2. 看看测速用的是什么软件,是否参数有误,导致速率上不去。
    3. 测一下双向的速度,看看有没有差别。
    4. 看一下网卡有没有系统兼容性 bug ,比如我的 Intel I219-LM 在 linux 下就有 bug ,发送速度只有千兆的一半左右。需要使用 ethtool 工具关掉 tso 和 gso 才行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2667 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:59 · PVG 19:59 · LAX 03:59 · JFK 06:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.