每日签到奶昔超市积分商城奶昔访达
返回列表 发布新帖
查看: 261|回复: 1

[教程] iStoreOS 24.10 多线运营商分流+负载均衡,兼容IPv6

发表于 2025-12-20 11:30:35 | 查看全部 |阅读模式

登录后免广告,享受更多奶昔会员权益!

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

×
本帖最后由 Outsider 于 2025-12-22 00:00 编辑

以下仅供参考,请按需修改成自身实际的接口信息

众所周知,目前mwan3 对于 nftable 的支持还遥遥无期,所以针对个人现状手撸了一份规则应急

目前的网络拓扑分别有三个WAN口:
  • wanct:对应IPv6 网口为 wanct_6
  • wancu:对应IPv6 网口为 wancu_6
  • wancm:对应IPv6 网口为 wancm_6

在/etc/iproute2/rt_tables追加如下内容:
  1. 101  wan_ct
  2. 102  wan_cu
  3. 103  wan_cm
复制代码

/etc/config/firewall追加以下内容,以便自动更新ipset给nft规则用于分流使用,这部分也可以通过控制台来操作:网络 - 防火墙 - IP集
需要注意的是首次需要把相应的文件下载到对应的目录,文件下载地址:https://ispip.clang.cn/
  1. config ipset
  2.         option name 'local_addr_v4'
  3.         option comment 'Local_IPv4_List'
  4.         option family 'ipv4'
  5.         option counters '1'
  6.         list match 'net'
  7.         list entry '0.0.0.0/8'
  8.         list entry '10.0.0.0/8'
  9.         list entry '100.64.0.0/10'
  10.         list entry '127.0.0.0/8'
  11.         list entry '169.254.0.0/16'
  12.         list entry '172.16.0.0/12'
  13.         list entry '192.0.0.0/24'
  14.         list entry '192.0.2.0/24'
  15.         list entry '192.31.196.0/24'
  16.         list entry '192.52.193.0/24'
  17.         list entry '192.88.99.0/24'
  18.         list entry '192.168.0.0/16'
  19.         list entry '192.175.48.0/24'
  20.         list entry '198.18.0.0/15'
  21.         list entry '198.51.100.0/24'
  22.         list entry '203.0.113.0/24'
  23.         list entry '224.0.0.0/4'
  24.         list entry '240.0.0.0/4'

  25. config ipset
  26.         option name 'local_addr_v6'
  27.         option comment 'Local_IPv6_List'
  28.         option family 'ipv6'
  29.         option counters '1'
  30.         list match 'net'
  31.         list entry '::/128'
  32.         list entry '::1/128'
  33.         list entry '::ffff:0:0/96'
  34.         list entry '100::/64'
  35.         list entry '64:ff9b::/96'
  36.         list entry '2001::/32'
  37.         list entry '2001:10::/28'
  38.         list entry '2001:20::/28'
  39.         list entry '2001:db8::/28'
  40.         list entry '2002::/16'
  41.         list entry 'fc00::/7'
  42.         list entry 'fe80::/10'
  43.         list entry 'ff00::/8'

  44. config ipset
  45.         option name 'cn_ipv4'
  46.         option comment 'CN_IPv4_Address_List'
  47.         option family 'ipv4'
  48.         option counters '1'
  49.         option loadfile '/etc/multiwan/resource/manual_nftset/all_cn.txt'
  50.         list match 'net'

  51. config ipset
  52.         option name 'cn_ipv6'
  53.         option comment 'CN_IPv6_Address_List'
  54.         option family 'ipv6'
  55.         option counters '1'
  56.         option loadfile '/etc/multiwan/resource/manual_nftset/all_cn_ipv6.txt'
  57.         list match 'net'

  58. config ipset
  59.         option name 'ct_ipv4'
  60.         option comment 'CT_IPv4_Address_List'
  61.         option family 'ipv4'
  62.         option counters '1'
  63.         option loadfile '/etc/multiwan/resource/manual_nftset/chinatelecom.txt'
  64.         list match 'net'

  65. config ipset
  66.         option name 'ct_ipv6'
  67.         option comment 'CT_IPv6_Address_List'
  68.         option family 'ipv6'
  69.         option counters '1'
  70.         option loadfile '/etc/multiwan/resource/manual_nftset/chinatelecom_ipv6.txt'
  71.         list match 'net'

  72. config ipset
  73.         option name 'cu_ipv4'
  74.         option comment 'CU_IPv4_Address_List'
  75.         option family 'ipv4'
  76.         option counters '1'
  77.         option loadfile '/etc/multiwan/resource/manual_nftset/unicom_cnc.txt'
  78.         list match 'net'

  79. config ipset
  80.         option name 'cu_ipv6'
  81.         option comment 'CU_IPv6_Address_List'
  82.         option family 'ipv6'
  83.         option counters '1'
  84.         option loadfile '/etc/multiwan/resource/manual_nftset/unicom_cnc_ipv6.txt'
  85.         list match 'net'

  86. config ipset
  87.         option name 'cm_ipv4'
  88.         option comment 'CM_IPv4_Address_List'
  89.         option family 'ipv4'
  90.         option counters '1'
  91.         option loadfile '/etc/multiwan/resource/manual_nftset/cmcc.txt'
  92.         list match 'net'

  93. config ipset
  94.         option name 'cm_ipv6'
  95.         option comment 'CM_IPv6_Address_List'
  96.         option family 'ipv6'
  97.         option counters '1'
  98.         option loadfile '/etc/multiwan/resource/manual_nftset/cmcc_ipv6.txt'
  99.         list match 'net'

  100. config include 'multiwan'
  101.         option type 'nftables'
  102.         option path '/etc/multiwan/resource/nftables/multiwan_base.nft'
  103.         option position 'table-post'

  104. config include 'multiwan_snat'
  105.         option type 'nftables'
  106.         option path '/etc/multiwan/resource/nftables/multiwan_snat.nft'
  107.         option position 'table-post'
复制代码

/etc/config/network后面追加如下内容,主要是添加路由表规则、以及静态路由,这部分也可以通过控制台来操作:网络 - 路由
把 32-bit mark 分段使用:
  • 高 8 bit(mask = 0xff000000):只表示出口 WAN。CT:0x01000000,CU:0x02000000,CM:0x03000000
  • 低 24 bit(mask = 0x00ffffff)留给其它系统共存(比如 nikki 的 0x80/0x81 等)
  1. config rule
  2.         option priority '1101'
  3.         option lookup 'wan_ct'
  4.         option mark '0x01000000/0xff000000'

  5. config rule
  6.         option priority '1111'
  7.         option lookup 'wan_ct'
  8.         option out 'wanct'

  9. config rule
  10.         option priority '1102'
  11.         option lookup 'wan_cu'
  12.         option mark '0x02000000/0xff000000'

  13. config rule
  14.         option priority '1112'
  15.         option lookup 'wan_cu'
  16.         option out 'wancu'

  17. config rule
  18.         option priority '1103'
  19.         option lookup 'wan_cm'
  20.         option mark '0x03000000/0xff000000'

  21. config rule
  22.         option priority '1113'
  23.         option lookup 'wan_cm'
  24.         option out 'wancm_6'

  25. config rule6
  26.         option priority '1101'
  27.         option lookup 'wan_ct'
  28.         option mark '0x01000000/0xff000000'

  29. config rule6
  30.         option priority '1111'
  31.         option lookup 'wan_ct'
  32.         option out 'wanct_6'

  33. config rule6
  34.         option priority '1102'
  35.         option lookup 'wan_cu'
  36.         option mark '0x02000000/0xff000000'

  37. config rule6
  38.         option priority '1112'
  39.         option lookup 'wan_cu'
  40.         option out 'wancu_6'

  41. config rule6
  42.         option priority '1103'
  43.         option lookup 'wan_cm'
  44.         option mark '0x03000000/0xff000000'

  45. config rule6
  46.         option priority '1113'
  47.         option lookup 'wan_cm'
  48.         option out 'wancm_6'

  49. config route
  50.         option interface 'wanct'
  51.         option target '0.0.0.0/0'
  52.         option table 'wan_ct'

  53. config route
  54.         option interface 'wancu'
  55.         option target '0.0.0.0/0'
  56.         option table 'wan_cu'

  57. config route
  58.         option interface 'wancm'
  59.         option target '0.0.0.0/0'
  60.         option table 'wan_cm'

  61. config route6
  62.         option interface 'wanct_6'
  63.         option target '::/0'
  64.         option table 'wan_ct'

  65. config route6
  66.         option interface 'wancu_6'
  67.         option target '::/0'
  68.         option table 'wan_cu'

  69. config route6
  70.         option interface 'wancm_6'
  71.         option target '::/0'
  72.         option table 'wan_cm'
复制代码

把热拔插脚本附件放入目录: /etc/hotplug.d/iface/
90-multiwan-route (5.65 KB, 下载次数: 0)

新建目录
  1. mkdir -p /etc/multiwan/resource/nftables/
  2. mkdir -p /etc/multiwan/tools/
复制代码
nftable文件放入/etc/multiwan/resource/nftables/
  • multiwan_base 是分流主策略,按实际情况修改,pppoe对应接口通过ip link 命令即可查询
multiwan_base.nft (8.21 KB, 下载次数: 0, 售价: 1 点数)
  • multiwan_snat 是 ipv6 snat表占位,避免防火墙重新加载异常,后续会被脚本接管,主要用于IPv6出口进行 prefix snat
multiwan_snat.nft (389 Bytes, 下载次数: 0)

脚本文件放入/etc/multiwan/tools/
  • multiwan_gen_snat.sh 用于动态生成 IPv6 PrefixSNAT 表,并注入multiwan_snat.nft
multiwan_gen_snat.sh (3.94 KB, 下载次数: 0)
  • multiwan_ipset_update.sh 用于自动更新大陆地区、电信、联通、移动这些 IP CIDR 文件,可自行按需修改,建议生成之后先手动执行一次,避免无文件防火墙无法生成ipset。
multiwan_ipset_update.sh (3.96 KB, 下载次数: 0)

爱生活,爱奶昔~
回复

使用道具 举报

发表于 2025-12-21 01:21:26 | 查看全部
感谢分享
爱生活,爱奶昔~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

© 2026 Naixi Networks. 沪ICP备13020230号-1|沪公网安备 31010702007642号手机版小黑屋RSS
返回顶部 关灯 在本版发帖
快速回复 返回顶部 返回列表