lixonet-ee/tinc/subnet-down

30 lines
1004 B
Plaintext
Raw Normal View History

#!/bin/ash
2023-04-13 00:10:12 -06:00
echo "[ROUTE] down: $SUBNET weight $WEIGHT via $NODE ($REMOTEADDRESS:$REMOTEPORT)"
nonMACChars=`echo $SUBNET | tr -d "[:digit:]" | tr -d [:ABCDEFabcdef]`
date=`date -u`
2023-04-13 00:35:05 -06:00
arpEntries=`arp -an`
if [ -z "$nonMACChars" ]; then
# This subnet is a MAC
2023-04-13 00:35:05 -06:00
rm -f /tmp/tinc/$NODE_mac_$SUBNET
2023-04-13 00:35:05 -06:00
if echo $arpEntries | grep -q -E "at $SUBNET "; then
echo ""
echo $arpEntries | grep -E "at 0?*$SUBNET0?* " | sed -r 's/^.+\((.+)\).+$/\1/g' | xargs -n1 echo "[ARP] Removing from table: "
echo $arpEntries | grep -E "at 0?*$SUBNET0?* " | sed -r 's/^.+\((.+)\).+$/\1/g' | xargs -n1 arp -d
fi
else
# This subnet is an IP address
if echo "$SUBNET" | grep -q -E ".+/32$"; then
address=`echo "$SUBNET" | cut -d '/' -f 1`
2023-04-13 00:35:05 -06:00
rm -f /tmp/tinc/$NODE_ip_$address
if echo $arpEntries | grep -q "\($address\)"; then
echo "[ARP] Removing from table: $addresss"
2023-04-13 00:10:04 -06:00
arp -d $address
fi
fi
fi
SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
$SCRIPTPATH/check-node