找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 12076|回复: 43

为lean大源码的多播插件添加ipv6负载均衡

  [复制链接]
发表于 2019-6-27 16:15 | 显示全部楼层 |阅读模式
本帖最后由 401626436 于 2019-6-27 16:42 编辑

说到ipv6负载均衡,看了很多人帖子也百度了很久,并没有找到相关有用的内容,
大多人的做法就是选择关闭mwan3还美其名曰mwan3与ipv6冲突!

上补丁文件,如果有需要就请按部就班的修改,不想修改的我也会放上修改好的源码!
如果有人知道同目录怎么指定patch路径的请告知一下,翻遍源码都只找到改dl库压缩包内源码的例子
ipv6只能路由自身能用,不能在客户端使用且只有内外ipv6地址,除非直接拨号有方法的也请告知一下


  1. #为lean大源码 /package/app/luci-app-syncdial 多线多播插件添加 mwan3 ipv6 & ipv4 负载均衡功能
  2. #如果需要 ipv6负载均衡 请按以下修改,以下文件均在 luci-app-syncdial
  3. #该补丁不能直接使用 该补丁不能直接使用 该补丁不能直接使用 重要的事情说三遍
  4. #请按照 该patch 手动修改源码 提及文件均以文本方式打开
  5. --- a/luasrc/model/cbi/syncdial.lua 源文件目录路径 --- a 表示先删除
  6. +++ b/luasrc/model/cbi/syncdial.lua 修改后文件目录路径 +++ b 表示添加
  7. # 以下 - 表示要替换的内容 + 表示替换后的内容 没有不用管
  8. @@ -56,6 +56,16 @@ o=s:option(Flag,"old_frame","使用旧��
  9. o.rmempty=false
  10. o=s:option(Flag,"nomwan","不自动配置MWAN3负载均衡","需要自定义负载均衡设置或者要使用策略路由的用户选择")
  11. o.rmempty=false
  12. +o:depends("ipv4", 0)
  13. +o:depends("ipv6", 0)
  14. +
  15. +o=s:option(Flag,"ipv4","配置IPV4负载均衡","自动给MWAN3配置IPV4负载均衡")
  16. +o.rmempty=false
  17. +o:depends("nomwan", 0)
  18. +
  19. +o=s:option(Flag,"ipv6","配置IPV6负载均衡","自动给MWAN3配置IPV6负载均衡")
  20. +o.rmempty=false
  21. +o:depends("nomwan", 0)
  22. o=s:option(DummyValue,"_redial","重新并发拨号")
  23. o.template="syncdial/redial_button"
  24. o.width="10%"

  25. --- a/root/bin/genwancfg 源文件目录路径 --- a 表示先删除
  26. +++ b/root/bin/genwancfg 修改后文件目录路径 +++ b 表示添加
  27. # 以下 - 表示要替换的内容 + 表示替换后的内容 没有不用管
  28. @@ -4,11 +4,14 @@
  29. . /lib/functions.sh

  30. #检测IP列表
  31. -chk_ip_list="www.baidu.com 114.114.114.114 119.29.29.29"
  32. +chk_ipv4_list="www.baidu.com 114.114.114.114 119.29.29.29"
  33. +chk_ipv6_list="240c::6644 240c::6666 ipv6.baidu.com"
  34. +ipv4=$(uci -q get syncdial.config.ipv4)
  35. +ipv6=$(uci -q get syncdial.config.ipv6)
  36. origfirewall=$(uci get firewall.@zone[1].network)
  37. backupdev=$(uci get syncdial.config.devbackup)
  38. norun=$(echo $origfirewall|grep vwan)
  39. -nomwan=$(uci get syncdial.config.nomwan)
  40. +nomwan=$(cat /etc/config/syncdial | grep "nomwan '1'" | wc -l)
  41. wanselect=$(uci get syncdial.config.wanselect)
  42. wannum=$(uci get syncdial.config.wannum)
  43. oldframe=$(uci get syncdial.config.old_frame)
  44. @@ -33,7 +36,8 @@ dial_type=$(uci get syncdial.config.dial
  45. #添加MWAN负载均衡相关配置
  46. #$1:接口名称
  47. mwan_cfg_add() {
  48. -        #gen mwan3_interface
  49. +        #gen mwan3_interface ipv4
  50. +        if [ "$ipv4" -eq 1 ]; then
  51.          uci set mwan3.${1}=interface
  52.          uci set mwan3.${1}.enabled=1
  53.          uci set mwan3.${1}.count=2
  54. @@ -41,7 +45,7 @@ mwan_cfg_add() {
  55.          uci set mwan3.${1}.interval=5
  56.          uci set mwan3.${1}.down=4
  57.          uci set mwan3.${1}.up=1
  58. -        for i in $chk_ip_list
  59. +        for i in $chk_ipv4_list
  60.          do
  61.                  uci add_list mwan3.${1}.track_ip="$i"
  62.          done
  63. @@ -54,20 +58,56 @@ mwan_cfg_add() {
  64.          uci set mwan3.${1}.recovery_interval=5
  65.          uci set mwan3.${1}.flush_conntrack=never
  66.          #gen mwan3_member
  67. -        uci set mwan3.${1}_m1_w1=member
  68. -        uci set mwan3.${1}_m1_w1.interface=${1}
  69. -        uci set mwan3.${1}_m1_w1.metric=1
  70. -        uci set mwan3.${1}_m1_w1.weight=1
  71. -        #gen mwan3_policy
  72. -        uci add_list mwan3.balanced.use_member=${1}_m1_w1
  73. +        uci set mwan3.${1}_m1_ipv4=member
  74. +        uci set mwan3.${1}_m1_ipv4.interface=${1}
  75. +        uci set mwan3.${1}_m1_ipv4.metric=1
  76. +        uci set mwan3.${1}_m1_ipv4.weight=1
  77. +        #gen mwan3_policy ipv4
  78. +        uci add_list mwan3.balanced.use_member=${1}_m1_ipv4
  79. +        fi
  80. +
  81. +        #gen mwan3_interface ipv6
  82. +        if [ "$ipv6" -eq 1 ]; then
  83. +        v6=${1}_6
  84. +        uci set mwan3.${v6}=interface
  85. +        uci set mwan3.${v6}.enabled=1
  86. +        uci set mwan3.${v6}.count=2
  87. +        uci set mwan3.${v6}.timeout=2
  88. +        uci set mwan3.${v6}.interval=5
  89. +        uci set mwan3.${v6}.down=4
  90. +        uci set mwan3.${v6}.up=1
  91. +        for i in $chk_ipv6_list
  92. +        do
  93. +                uci add_list mwan3.${v6}.track_ip="$i"
  94. +        done
  95. +        uci set mwan3.${v6}.reliability=1
  96. +        uci set mwan3.${v6}.initial_state=online
  97. +        uci set mwan3.${v6}.family=ipv6
  98. +        uci set mwan3.${v6}.track_method=ping
  99. +        uci set mwan3.${v6}.size=56
  100. +        uci set mwan3.${v6}.failure_interval=5
  101. +        uci set mwan3.${v6}.recovery_interval=5
  102. +        uci set mwan3.${v6}.flush_conntrack=never
  103. +        #gen mwan3_member ipv6
  104. +        uci set mwan3.${1}_m1_ipv6=member
  105. +        uci set mwan3.${1}_m1_ipv6.interface=${v6}
  106. +        uci set mwan3.${1}_m1_ipv6.metric=1
  107. +        uci set mwan3.${1}_m1_ipv6.weight=1
  108. +        #gen mwan3_policy ipv6
  109. +        uci add_list mwan3.balanced.use_member=${1}_m1_ipv6
  110. +        fi
  111. }

  112. #删除MWAN负载均衡相关配置
  113. #$1:接口名称
  114. mwan_cfg_del() {
  115.          uci del mwan3.${1}
  116. -        uci del mwan3.${1}_m1_w1
  117. -        uci del_list mwan3.balanced.use_member=${1}_m1_w1
  118. +        uci del mwan3.${1}_m1_ipv4
  119. +        uci del_list mwan3.balanced.use_member=${1}_m1_ipv4
  120. +        v6=${1}_6
  121. +        uci del mwan3.${v6}
  122. +        uci del mwan3.${1}_m1_ipv6
  123. +        uci del_list mwan3.balanced.use_member=${1}_m1_ipv6
  124. }

  125. #添加macvlan设备

  126. --- a/root/etc/config/syncdial 源文件目录路径 --- a 表示先删除
  127. +++ b/root/etc/config/syncdial 修改后文件目录路径 +++ b 表示添加
  128. # 以下 - 表示要替换的内容 + 表示替换后的内容 没有不用管
  129. @@ -15,5 +15,7 @@ config syncdial 'config'
  130.          option devbackup 'wan wan6 wan2'
  131.          option bindwan '0'
  132.          option bindwan2 '0'
  133. +        option ipv4 '1'
  134. +        option ipv6 '1'
  135.          option enabled '0'
复制代码


看完依旧不明觉厉请直接下载改好的文件
luci-app-syncdial.zip (9.01 KB, 下载次数: 256, 售价: 1 个恩山币)

上效果图
接口.png

接口状态.png

负载均衡状态.png

mwan3成员.png

单协议.png

双协议.png

ping.png
有人知道这一堆是干什么的吗?
疑问.png
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-6-27 16:20 | 显示全部楼层
大神做一个完整的固件呗。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-27 16:51 | 显示全部楼层
谢谢分享啊。。。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-27 17:07 | 显示全部楼层
厉害了!我的哥
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-28 09:18 | 显示全部楼层
好贴,顶一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-28 11:52 | 显示全部楼层
ipv6因为默认不会有nat所以内网必然会分配多个公网ip,如果有什么应用需要持续使用某个ip通讯你这样会造成中断的问题,还有就是路由真的能跑两个pd?

点评

理论上应该不会中断。v6的路由表中的默认路由有from限定,所以只要App使用同一个源地址就不会中断。  详情 回复 发表于 2019-6-28 14:30
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-28 14:15 来自手机 | 显示全部楼层
厉害我的锅,谢谢啦
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-28 14:30 | 显示全部楼层
paldier 发表于 2019-6-28 11:52
ipv6因为默认不会有nat所以内网必然会分配多个公网ip,如果有什么应用需要持续使用某个ip通讯你这样会造成 ...

理论上应该不会中断。v6的路由表中的默认路由有from限定,所以只要App使用同一个源地址就不会中断。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-28 15:56 | 显示全部楼层
ETH信息要怎么添加

点评

要改主页面index.htm调用项 添加eth相关的htm 和添加获取状态信息的脚本  详情 回复 发表于 2019-7-9 17:30
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-7-3 06:28 | 显示全部楼层
Mark 一下下!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-7-3 12:46 | 显示全部楼层
感谢提供分享!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-7-9 17:30 | 显示全部楼层
mjyhj 发表于 2019-6-28 15:56
ETH信息要怎么添加

要改主页面index.htm调用项 添加eth相关的htm 和添加获取状态信息的脚本

点评

我也想知道这个怎么整的。能分享下方法或者改好的文件不?  发表于 2019-11-9 15:51
方便发一份吗  详情 回复 发表于 2019-7-10 03:03
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-7-10 03:03 | 显示全部楼层
401626436 发表于 2019-7-9 17:30
要改主页面index.htm调用项 添加eth相关的htm 和添加获取状态信息的脚本

方便发一份吗
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-11-9 15:33 | 显示全部楼层
不明觉厉,帮顶
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2020-1-2 00:55 | 显示全部楼层
一晃几个月过去了 前几天重刷的时候就测试了下 挺好用的
主要解决了配置的繁琐的问题 IPv6多拨在学校是非常有用的
本来还想提下PR到lean的仓库 结果就听到lean可能不再维护的消息...
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-2-23 04:37

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表