diff --git a/config b/config index ca16e31..cd7fc07 100644 --- a/config +++ b/config @@ -79,6 +79,9 @@ FLOWOFFLOAD=donttouch # openwrt: specify networks to be treated as LAN. default is "lan" #OPENWRT_LAN="lan lan2 lan3" +# openwrt: specify networks to be treated as WAN. default wans are interfaces with default route +#OPENWRT_WAN4="wan vpn" +#OPENWRT_WAN6="wan4 vpn6" # for routers based on desktop linux and macos. has no effect in openwrt. # CHOOSE LAN and optinally WAN/WAN6 NETWORK INTERFACES diff --git a/docs/readme.eng.md b/docs/readme.eng.md index 82b03ae..1c922c6 100644 --- a/docs/readme.eng.md +++ b/docs/readme.eng.md @@ -934,6 +934,13 @@ To override this behaviour set the following variable : `OPENWRT_LAN="lan lan2 lan3"` +In openwrt wan interfaces are those having default route. Separately for ipv4 and ipv6. +This can be redefined : +``` +OPENWRT_WAN4="wan4 vpn" +OPENWRT_WAN6="wan6 vpn6" +``` + The `INIT_APPLY_FW=1` parameter enables the init script to independently apply iptables rules. With other values or if the parameter is commented out, the rules will not be applied. This is useful if you have a firewall management system, in the settings of which you should tie the rules. diff --git a/docs/readme.txt b/docs/readme.txt index d3f08bd..256dfcb 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -1176,6 +1176,11 @@ GZIP_LISTS=1 Но возможно задать другие сети или список сетей : OPENWRT_LAN="lan lan2 lan3" +В openwrt в качестве wan берутся интерфейсы, имеющие default route. Отдельно для ipv4 и ipv6. +Это можно переопределить : +OPENWRT_WAN4="wan4 vpn" +OPENWRT_WAN6="wan6 vpn6" + Параметр INIT_APPLY_FW=1 разрешает init скрипту самостоятельно применять правила iptables. При иных значениях или если параметр закомментирован, правила применены не будут. Это полезно, если у вас есть система управления фаерволом, в настройки которой и следует прикрутить правила. diff --git a/init.d/openwrt/functions b/init.d/openwrt/functions index 1ced585..8f4cf34 100644 --- a/init.d/openwrt/functions +++ b/init.d/openwrt/functions @@ -43,8 +43,12 @@ apply_unspecified_desync_modes network_find_wan4_all() { - __network_ifstatus "$1" "" "[@.route[@.target='0.0.0.0' && !@.table]].interface" "" 10 2>/dev/null && return - network_find_wan $1 + if [ -n "$OPENWRT_WAN4" ]; then + eval $1="\$OPENWRT_WAN4" + else + __network_ifstatus "$1" "" "[@.route[@.target='0.0.0.0' && !@.table]].interface" "" 10 2>/dev/null && return + network_find_wan $1 + fi } network_find_wan_all() { @@ -52,8 +56,12 @@ network_find_wan_all() } network_find_wan6_all() { - __network_ifstatus "$1" "" "[@.route[@.target='::' && !@.table]].interface" "" 10 2>/dev/null && return - network_find_wan6 $1 + if [ -n "$OPENWRT_WAN6" ]; then + eval $1="\$OPENWRT_WAN6" + else + __network_ifstatus "$1" "" "[@.route[@.target='::' && !@.table]].interface" "" 10 2>/dev/null && return + network_find_wan6 $1 + fi } network_find_wanX_devices() {