1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Basic IPv6 support

This commit is contained in:
Ycarus 2018-03-12 10:26:32 +01:00
parent f78c78c905
commit 2b5ac2fa37
4 changed files with 14 additions and 6 deletions

View file

@ -25,7 +25,7 @@ end
function src_dst_option(s, ...) function src_dst_option(s, ...)
local o = s:taboption(...) local o = s:taboption(...)
--o.datatype = "or(ip4addr,cidr4)" --o.datatype = "or(ip4addr,cidr4)"
o.datatype = "ip4addr" o.datatype = "or(ip4addr,ip6addr)"
end end
s = m:section(NamedSection, "ss_rules", "ss_rules") s = m:section(NamedSection, "ss_rules", "ss_rules")

View file

@ -29,6 +29,8 @@ _setup_macvlan() {
uci -q set "network.$1.type=macvlan" # legacy uci -q set "network.$1.type=macvlan" # legacy
} }
#uci -q set "network.lan.ip6assign=64"
if [ "$(uci -q show network | grep wan)" = "" ]; then if [ "$(uci -q show network | grep wan)" = "" ]; then
uci -q batch <<-EOF uci -q batch <<-EOF
set network.wan1=interface set network.wan1=interface
@ -51,6 +53,10 @@ if [ "$(uci -q show network | grep wan)" = "" ]; then
commit network commit network
add_list firewall.@zone[1].network=wan2 add_list firewall.@zone[1].network=wan2
commit firewall commit firewall
add network route6
set network.@route6[-1].interface='eth0'
set network.@route6[-1].target='2000::/3'
commit network
EOF EOF
_setup_macvlan wan1 _setup_macvlan wan1
_setup_macvlan wan2 _setup_macvlan wan2

View file

@ -139,8 +139,8 @@ ss_rules_ipset_init() {
$(ss_rules_ipset_mkadd ss_rules_src_bypass "$o_src_bypass") $(ss_rules_ipset_mkadd ss_rules_src_bypass "$o_src_bypass")
$(ss_rules_ipset_mkadd ss_rules_src_forward "$o_src_forward") $(ss_rules_ipset_mkadd ss_rules_src_forward "$o_src_forward")
$(ss_rules_ipset_mkadd ss_rules_src_checkdst "$o_src_checkdst") $(ss_rules_ipset_mkadd ss_rules_src_checkdst "$o_src_checkdst")
$(ss_rules_ipset_mkadd ss_rules_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null)") $(ss_rules_ipset_mkadd ss_rules_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')")
$(ss_rules_ipset_mkadd ss_rules_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null)") $(ss_rules_ipset_mkadd ss_rules_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}')")
EOF EOF
} }

View file

@ -1,6 +1,7 @@
#!/bin/sh -e #!/bin/sh -e
# #
# Copyright (C) 2017 Yousong Zhou <yszhou4tech@gmail.com> # Copyright (C) 2017 Yousong Zhou <yszhou4tech@gmail.com>
# Copyright (C) 2018 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
# #
# The design idea was derived from ss-rules by Jian Chang <aa65535@live.com> # The design idea was derived from ss-rules by Jian Chang <aa65535@live.com>
# #
@ -51,6 +52,7 @@ EOF
} }
o_dst_bypass_=" o_dst_bypass_="
FE80::/10
" "
o_src_default=bypass o_src_default=bypass
o_dst_default=bypass o_dst_default=bypass
@ -120,8 +122,8 @@ ss_rules6_ipset_init() {
$(ss_rules6_ipset_mkadd ss_rules6_src_bypass "$o_src_bypass") $(ss_rules6_ipset_mkadd ss_rules6_src_bypass "$o_src_bypass")
$(ss_rules6_ipset_mkadd ss_rules6_src_forward "$o_src_forward") $(ss_rules6_ipset_mkadd ss_rules6_src_forward "$o_src_forward")
$(ss_rules6_ipset_mkadd ss_rules6_src_checkdst "$o_src_checkdst") $(ss_rules6_ipset_mkadd ss_rules6_src_checkdst "$o_src_checkdst")
$(ss_rules6_ipset_mkadd ss_rules6_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null)") $(ss_rules6_ipset_mkadd ss_rules6_dst_bypass "$o_dst_bypass $(cat "$o_dst_bypass_file" 2>/dev/null | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}')")
$(ss_rules6_ipset_mkadd ss_rules6_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null)") $(ss_rules6_ipset_mkadd ss_rules6_dst_forward "$o_dst_forward $(cat "$o_dst_forward_file" 2>/dev/null | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}')")
EOF EOF
} }
@ -212,12 +214,12 @@ ss_rules6_iptchains_init_() {
:ss_rules6_dst - :ss_rules6_dst -
:ss_rules6_forward - :ss_rules6_forward -
$(ss_rules6_iptchains_mkprerules "$proto") $(ss_rules6_iptchains_mkprerules "$proto")
-A ss_rules6_pre_src -m set --match-set ss_rules6_dst_bypass_ dst -j RETURN
-A ss_rules6_pre_src -p $proto $o_ipt_extra -j ss_rules6_src -A ss_rules6_pre_src -p $proto $o_ipt_extra -j ss_rules6_src
-A ss_rules6_src -m set --match-set ss_rules6_src_bypass src -j RETURN -A ss_rules6_src -m set --match-set ss_rules6_src_bypass src -j RETURN
-A ss_rules6_src -m set --match-set ss_rules6_src_forward src -j ss_rules6_forward -A ss_rules6_src -m set --match-set ss_rules6_src_forward src -j ss_rules6_forward
-A ss_rules6_src -m set --match-set ss_rules6_src_checkdst src -j ss_rules6_dst -A ss_rules6_src -m set --match-set ss_rules6_src_checkdst src -j ss_rules6_dst
-A ss_rules6_src -j $src_default_target -m comment --comment "src_default: $o_src_default" -A ss_rules6_src -j $src_default_target -m comment --comment "src_default: $o_src_default"
-A ss_rules6_pre_src -m set --match-set ss_rules6_dst_bypass_ dst -j RETURN
-A ss_rules6_dst -m set --match-set ss_rules6_dst_bypass dst -j RETURN -A ss_rules6_dst -m set --match-set ss_rules6_dst_bypass dst -j RETURN
-A ss_rules6_dst -m set --match-set ss_rules6_dst_forward dst -j ss_rules6_forward -A ss_rules6_dst -m set --match-set ss_rules6_dst_forward dst -j ss_rules6_forward
$recentrst_addset_rules $recentrst_addset_rules