关于单线多播的sticky设置。解决网银等问题

以前玩OPENWRT的时候,做单线多播带宽叠加。sticky可以指定端口,可以设置只有ssl 443的流量才sticky ,
目前EdgeRouter 里的sticky没有指定端口的地方,造成开启sticky后
在web状态下,不能进行带宽叠加。在speedtest上,测试出来还是单线的带宽,但迅雷和P2P流量确实可以叠加
在单线多播的教程里

有一段控制sticky的代码
set load-balance group G sticky source-addr enable
set load-balance group G sticky dest-addr enable
set load-balance group G sticky dest-port enable
如果改成只是
set load-balance group G sticky source-addr enable
set load-balance group G sticky source-port enable

dest-addr和dest-port 里设置空,在speedtest上测试叠加就可以成功了,并且网银没有问题
测试了 工行 光大银行 支付宝 淘宝等。
图为 50M电信宽带 2播的叠加测试

捕获.JPG

至于网游的效果如何,还有待其他网友测试

1赞

感谢经验分享:)

又测试了,这个方法不行。表现为虽然用speedtest测速能达到带宽叠加的效果,但是使用迅雷下载时带宽不叠加了

目前考虑换一种思路解决。就是防火墙里添加一个优先级比较高的规则,让负载平衡组里通往443端口的流量才开启 sticky,而其他的都不启用sticky

最新更新 这个方法还是可行的,昨天又实验了下,原来出问题是因为里面有个参数漏了。
就按https://bbs.ui.com.cn/t/edgerouter-x-load-balance/45016/1
这个贴子里设置,只不过以下设置稍微改动下即可
set load-balance group G sticky source-addr enable
set load-balance group G sticky source-port enable

曾研究了一下edgeos,load balance实现是用connmark来做的,实际上你不设置sticky,edgeos也可以保证一个tcp connection的数据包一定是从同一个wan口出去的,你可以用iptables -t mangle -L -n看看。stikcy的作用是设置多个tcp connection之间的相关性的匹配原则(!!!注意,是匹配多个connection的规则),最保险,也是最推荐的做法是source-addr,dest-addr,dest-port ,匹配这三个,即同一个source地址,到dest:port的connections走同一个wan,这样兼容性问题最小。相对于整个网络来说,多台机器总量是加速了的。对于单机来说,大部分情况也是加速了的,比如web访问www.taobao.com,页面上会有很多其他url的资源加载,比如image.taobao.com,cdn.taobao.com等等,都是会被叠加的。p2p下载是有效果的。http下载分两种,一种迅雷从多个源下载,有效果。另一种迅雷从一个源多线程下载,没效果。游戏如果走udp,有效果,走tcp没效果。但是!!!speedtest测出来是没有效果的,如果speedtest测出来有叠加效果,反而是不好的,表示兼容性是最差的,网银肯定过不去,一个dest地址走了多个wan。另外匹配source-port没多大意义,source-port是一个随机端口。还有,你的speedtest测试结果,ping值有点大,国内ping值一般在6ms以下,配置可能有问题。

又测试了下,我这里只打开这2个enable .测试 光大银行,工商银行,中国银行,兴业银行 网银登录使用都是没有问题的。
关于PING值测了几个联通和电信级的节点:

电信1.JPG

电信2.JPG

联通1.JPG

联通2.JPG

我是电信网络。请赐教PING值问题可能会出现在哪里

我这里是电信PPPOE网线入户,但楼道里的电信应该限制了单播最大50M

测了所有电信的ping值都差不多结.JPG

按理论上来说按src:port去判断connection的粘性,没有意义,源端口一般是随机端口,这种设置相当于没有设置sticky…你可以不设置任何sticky试试。当然,不了解你怎么其他具体的配置,不好妄下结论,ping值到电信机房一般在2-6ms为典型值,也可能是你那边宽带超出典型值了吧。

不设置任何,是SPEEDTEST 显示叠加,网银也竟然没有问题。但是按原帖只设置src address :enable反而是带宽不叠加了,即使是迅雷。src port加上enable 就各种情况都叠加的。ping的问题我trace下路由,发现到我们本地电信PING都是小于2ms的 然后出省后的第一跳北京电信就是20多了,北京的下一跳上海电信就开始50多了。也是有趣,我ping到谷歌云的台湾区才60多点,不知谷歌用的什么技术

只设置source,翻译为,同一source的connection走同一wan,在设置src port后,表示同一source且同一source port走同一wan,因为source port是随机,每一connection都会产生一个随机的source port,永远也匹配不上,所以第二种相当于没设置sticky,connection会随意走wan。主要看你的应用,如果你的应用兼容随便走wan,那也没事。原贴的sticky设置不推荐,推荐的方案是,enable source,dest, dest port,即同一source,且同一dest和dest port,走同一wan。如果你会iptables,可以玩得更高级一点,在ubnt系统的sticky 判断规则前,插入自己的判断规则,把speedtest,视频网站等没有兼容性问题的网址访问设置成随便走wan,其余按ubnt系统设置走wan。这个有点复杂,不说具体命令了。

谢谢。已经讲的很明白了。我的一些思路。这个sticky参数是否加我的个人看法还是根据情况看。
如果路由用在多人环境,就把src address,dest address,dest port 的enable打开。这样就想楼上所说最大保证了网络应用的兼容性,由于是多人使用网络,路由器的叠加带宽基本上是会被利用到的。
如果是个人家庭里使用,情况还是值得商榷的。如果加上参数,当你只下载一个文件时带宽通常只是开始使用一个wan,当你又添加下载时才回逐渐激活叠加的带宽。如果不加任何参数,即时你下载一个文件,也会直接激活叠加,满速运行。以上都是只非p2p类的下载动作。但带来的问题是,一些需要检查保持源地址不能变得网络应用无法执行,这里我困惑的是目前几大网银系统在这种情况下竟然都没有问题,但我明明记得前几年用其他路由做叠加时是必须做处理的。目前我的简单做法是在防火墙nat服务里最前面加一个规则,目标端口使用443的直接走pppoe1,这样可以提高下兼容性。
楼上也提及了iptables,思路是不是这样的?不加任何sticky参数,然后用ipset+dnsmasq来维护一个域名对应的ip池,给这里的ip打上标记,然后再使用策略路由,iptables给打过标记的ip走一个特定wan口。这样确实完美些,但维护这个名单有些麻烦吧。
附件是我目前使用的方案,只加一条nat策略,放在最前面
Screenshot_2018-01-26-21-56-33-234_Chrome.png

Screenshot_2018-01-26-21-56-54-415_Chrome.png

bluehj 发表于 2018-1-26 22:30
谢谢。已经讲的很明白了。我的一些思路。这个sticky参数是否加我的个人看法还是根据情况看。
如果路由用在 …

你的规则没作用,masquerade是做作伪装的,也就是nat地址翻译,没有路由的功能。简单可以理解为,如果有从pppoe1口出去的数据包且端口为443,就把地址伪装一下,并不代表路由。masquerade只能发生在路由之后,在发给next hop前伪装一下ip。在这之前,你要先把443的数据包路由到pppoe1口,然后才能做nat,但你并没有路由,而且系统已经有nat规则了,你这个规则是多余的。不信,你把443改成80,按你的理解就是80端口强制走pppoe1,再speedtest试试?
推荐非专业人士用enable src,dest,dest port,没有之一。在兼容性问题最小的情况下,最大化利用叠加带宽。如果你想让connection自由飞,就得写一大堆iptables规则和iproute规则去解决小部分应用的兼容性,不推荐。

嗯,是有问题。删了 然后

创建个路由表 2 从 pppoe2 接口出。
set protocols static table 2 interface-route 0.0.0.0/0 next-hop-interface pppoe2
创建端口组,用于只走 pppoe2的
set firewall group port-group sticky_ports port 443
创建modify 策略 M,目标端口在 sticky_ports列表中强制到路由表 2 (pppoe2)。(rule优先级在最前)
set firewall modify M rule 5 destination group port-group sticky_ports
set firewall modify M rule 5 action modify
set firewall modify M rule 5 modify table 2
应用 M 到 LAN 口 (switch0) 生效
set interfaces switch switch0 firewall in modify M
(lan口不是switch的话,如果是接口的话就应用 M 到 LAN 口 (eth0) 生效
set interfaces ethernet eth0 firewall in modify M)

加策略路由太麻烦,还是enable src,dest,dest port简单直接。

看不太明白,mark,我要补课

1赞

请问,这三个从哪里设置?

Summer83 发表于 2018-8-3 02:58
请问,这三个从哪里设置?

如图,如图,如图,如图,如图,
image.png

enable src-add,dest-add,应该是兼容性更好一点吧,如果加上dest port之后,会造成访问统一dest不同port的被负载,这样一致性无法保证。