@埃隆马克斯 #34 发布于2025/3/14 19:29:21 https://marswk.com/index.php/archives/7.html 不管啥转发就几条命令,没有比这更简单的了 是的,很简单,其实全篇文章就讲解了 nftables和iptables 还有一些疑问,最主要的是解决了lala IEPL 非对称路由的问题。
@giantpanda #32 发布于2025/3/14 18:53:17 感谢楼主,之前用的realm转发,现在试试你的nft。 我有个问题:如何测试2种的连接稳定性和哪个更快呢?你只提到一个是内核处理,一个是用户态。 大部分情况,如果你会搞的话,内核态是比用户态快的。 因为学过计算机的都知道,如果数据要从内核态到用户态是需要拷贝一次的。
@qoq #37 发布于2025/3/14 20:02:08 nft是内核态的转发,非用户态,严格意义上来说延迟更低 所以有做过测试嘛,在千兆带宽,CPU性能足够的情况下,我不信有什么差距 而且不少转发工具都支持零拷贝 延迟低一点,你用用户态的中转还要去握手一次,而 nft 不需要。 另外,小鸡基本上能满足流量转发的效率的。但是在路由器就有很大差距了。
@qoq #37 发布于2025/3/14 20:02:08 而且不少转发工具都支持零拷贝 是的,golang如果底层内核版本支持的话是基本都支持 zero_copy 的。这个不需要经过内核和用户态的问题。 大部分流量还是在内核层面跑的。
@duckNet #38 延迟低一点,你用用户态的中转还要去握手一次,而 nft 不需要。 多的只是中转和落地之间的握手,一般来说这个延迟很小,且只有初次建立连接会有,后续用没差别的 另外,小鸡基本上能满足流量转发的效率的。但是在路由器就有很大差距了。 这个倒是,但现在四核A53路由器跑这个玩意千兆没问题的(含加密) 我的观念仅仅是日常代理转发没必要用这么底层的工具,不方便而且容易影响其他应用,比如docker、wireguad等有自己规则的应用
那很好了
感谢楼主,之前用的realm转发,现在试试你的nft。
我有个问题:如何测试2种的连接稳定性和哪个更快呢?你只提到一个是内核处理,一个是用户态。
技术贴顶一下 看得我老眼昏花
https://marswk.com/index.php/archives/7.html 不管啥转发就几条命令,没有比这更简单的了
是的,很简单,其实全篇文章就讲解了 nftables和iptables 还有一些疑问,最主要的是解决了lala IEPL 非对称路由的问题。
大部分情况,如果你会搞的话,内核态是比用户态快的。
因为学过计算机的都知道,如果数据要从内核态到用户态是需要拷贝一次的。
所以有做过测试嘛,在千兆带宽,CPU性能足够的情况下,我不信有什么差距
而且不少转发工具都支持零拷贝
延迟低一点,你用用户态的中转还要去握手一次,而 nft 不需要。
另外,小鸡基本上能满足流量转发的效率的。但是在路由器就有很大差距了。
是的,golang如果底层内核版本支持的话是基本都支持 zero_copy 的。这个不需要经过内核和用户态的问题。
大部分流量还是在内核层面跑的。
@duckNet #38
多的只是中转和落地之间的握手,一般来说这个延迟很小,且只有初次建立连接会有,后续用没差别的
这个倒是,但现在四核A53路由器跑这个玩意千兆没问题的(含加密)
我的观念仅仅是日常代理转发没必要用这么底层的工具,不方便而且容易影响其他应用,比如docker、wireguad等有自己规则的应用