From f062ca17c684953b4e229708dfa8bd30d7169dc9 Mon Sep 17 00:00:00 2001 From: sbwml Date: Mon, 14 Apr 2025 21:45:48 +0800 Subject: [PATCH] nat6: support static ipv6 gateway Signed-off-by: sbwml --- files/nat6.init | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/files/nat6.init b/files/nat6.init index 243e934..9f00f51 100644 --- a/files/nat6.init +++ b/files/nat6.init @@ -5,7 +5,7 @@ CRON_FILE=/etc/crontabs/root interface() { nic=$(ifconfig -a | grep -o '^[^ ]*') - dhcpv6_interface=$(uci -q show network | grep dhcpv6 | grep -o 'network\.\([^\.]*\)' | sed 's/network.//') + dhcpv6_interface=$(uci -q show network | grep -E "dhcpv6|ip6addr" | grep -o 'network\.\([^\.]*\)' | sed 's/network.//') IFS=$'\n' for interface_name in $dhcpv6_interface do @@ -19,7 +19,8 @@ interface() { fi fi if [ $(ifconfig $device | grep -c "inet6 addr") -gt 0 ]; then - gateway=$(ip -6 route | grep "default from" | awk '{print $5}') + ip6gw=$(uci -q show network.$interface_name.ip6gw | grep -o "'.*'" | awk -F"'" '{print $2}') + [ -n "$ip6gw" ] && gateway="$ip6gw" || gateway=$(ip -6 route | grep "default from" | awk '{print $5}') break fi done