找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

  [复制链接]
本帖最后由 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'
复制代码


看完依旧不明觉厉请直接下载改好的文件


上效果图













有人知道这一堆是干什么的吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
大神做一个完整的固件呗。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

谢谢分享啊。。。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

厉害了!我的哥
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

好贴,顶一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

ipv6因为默认不会有nat所以内网必然会分配多个公网ip,如果有什么应用需要持续使用某个ip通讯你这样会造成中断的问题,还有就是路由真的能跑两个pd?

点评

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

使用道具 举报

来自手机 | 显示全部楼层
厉害我的锅,谢谢啦
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

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

使用道具 举报

ETH信息要怎么添加

点评

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

使用道具 举报

Mark 一下下!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢提供分享!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
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.
回复

使用道具 举报

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

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

使用道具 举报

不明觉厉,帮顶
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 02:37

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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