rc.inet1: improved gateway creation

This commit is contained in:
bergware
2025-06-09 00:27:03 +02:00
parent 09eeb7d637
commit 62d0328da9

View File

@@ -87,6 +87,7 @@
# Adapted by Bergware for use in Unraid OS - June 2025
# - revert metric assignment to static addresses
# - remove duplicate ipv6 parameters
# - improve gateway creation
###########
# LOGGING #
@@ -632,8 +633,13 @@ gateway_up(){
[[ -z ${i[1]} ]] && DEV=${IFNAME[$i]} || DEV=${IFNAME[$i]}.${VLANID[$x]}
IP=${PROTOCOL[$x]:-ipv4}
AD=${METRIC[$x]}
[[ -n $AD ]] && AD="metric $AD"
EXIST=$(ip -4 route show to default via $(unzero $GW) dev $DEV | grep "$AD ")
if [[ -z $AD ]]; then
EXIST=$(ip -4 route show to default via $(unzero $GW) dev $DEV | grep -vm1 metric)
else
AD="metric $AD"
EXIST=$(ip -4 route show to default via $(unzero $GW) dev $DEV | grep -m1 "$AD ")
fi
[[ -z $AD ]] && AD="metric 1"
[[ $IP != ipv6 && -z $EXIST ]] && run ip -4 route add default via $(unzero $GW) dev $DEV $AD
done
for GW6 in ${GATEWAY6[@]}; do
@@ -644,8 +650,13 @@ gateway_up(){
[[ -z ${i[1]} ]] && DEV=${IFNAME[$i]} || DEV=${IFNAME[$i]}.${VLANID[$x]}
IP=${PROTOCOL[$x]:-ipv4}
AD6=${METRIC6[$x]}
[[ -n $AD6 ]] && AD6="metric $AD6"
EXIST=$(ip -6 route show to default via $(unzero6 $GW6) dev $DEV | grep "$AD6 ")
if [[ -z $AD6 ]]; then
EXIST=$(ip -6 route show to default via $(unzero6 $GW6) dev $DEV | grep -vm1 metric)
else
AD6="metric $AD6"
EXIST=$(ip -6 route show to default via $(unzero6 $GW6) dev $DEV | grep -m1 "$AD6 ")
fi
[[ -z $AD6 ]] && AD6="metric 1"
[[ $IP != ipv4 && -z $EXIST ]] && run ip -6 route add default via $(unzero6 $GW6) dev $DEV $AD6
done
}