更新 files/nat6.init

Signed-off-by: zhao <zj18139624826@gmail.com>
This commit is contained in:
zhao 2025-06-04 19:48:25 +08:00
parent d81d665069
commit 0560d34a5a

View File

@ -26,28 +26,6 @@ interface() {
done done
} }
hotplug_iface() {
[ ! -f /etc/hotplug.d/iface/90-nat6 ] && cat > /etc/hotplug.d/iface/90-nat6 << "EOF"
#!/bin/sh
dhcpv6_interface=$(uci -q show network | grep dhcpv6 | grep -o 'network\.\([^\.]*\)' | sed 's/network.//')
IFS=$'\n'
for interface_name in $dhcpv6_interface
do
device=$(uci -q show network.$interface_name.device | grep -o "'.*'" | awk -F"'" '{print $2}')
if [ $(ifconfig $device | grep -c "inet6 addr") -gt 0 ]; then
interface_name=$interface_name
fi
done
[ "$INTERFACE" = "$interface_name" ] || exit 0
if [ "$ACTION" = ifup ] || [ "$ACTION" = iflink ] || [ "$ACTION" = ifupdate ] || [ "$ACTION" = reload ]; then
/etc/init.d/nat6 restart
fi
EOF
}
common_config() { common_config() {
if [ -z $(uci -q get network.globals.ula_prefix) ] || [ $(uci -q get network.globals.ula_prefix | grep -c "/48") != 1 ]; then if [ -z $(uci -q get network.globals.ula_prefix) ] || [ $(uci -q get network.globals.ula_prefix | grep -c "/48") != 1 ]; then
r1=$(dd if=/dev/urandom bs=1 count=1 2>/dev/null | hexdump -e '1/1 "%02x"') r1=$(dd if=/dev/urandom bs=1 count=1 2>/dev/null | hexdump -e '1/1 "%02x"')
@ -80,7 +58,6 @@ EOF
start() { start() {
[ "$(uci -q get firewall.@defaults[0].nat6)" != 1 ] && return 0 [ "$(uci -q get firewall.@defaults[0].nat6)" != 1 ] && return 0
interface interface
hotplug_iface
[ -z "$device" ] && logger -p error -t network -s "nat6: DHCPv6 interface device not configured, IPv6 NAT failed." && exit 0 [ -z "$device" ] && logger -p error -t network -s "nat6: DHCPv6 interface device not configured, IPv6 NAT failed." && exit 0
[ -z "$gateway" ] && logger -p error -t network -s "nat6: DHCPv6 gateway not found, IPv6 NAT failed." && exit 0 [ -z "$gateway" ] && logger -p error -t network -s "nat6: DHCPv6 gateway not found, IPv6 NAT failed." && exit 0
common_config common_config
@ -99,7 +76,6 @@ stop() {
interface interface
nft delete table ip6 nat 2>/dev/null nft delete table ip6 nat 2>/dev/null
ip -6 r del default via $gateway dev $device 2>/dev/null ip -6 r del default via $gateway dev $device 2>/dev/null
rm -f /etc/hotplug.d/iface/90-nat6
uci -q batch <<-EOF >/dev/null uci -q batch <<-EOF >/dev/null
del dhcp.lan.ra_default del dhcp.lan.ra_default
commit dhcp commit dhcp