#!/bin/bash
+source /etc/default/snf-network
+
function try {
- $1 &>/dev/null || true
+ $1 &>/dev/null || true
}
}
+function delete_neighbor_proxy {
+
+ get_uplink $LINK "-6"
+ get_eui64 $MAC $NETWORK_SUBNET6
+
+ if [ -z "$EUI64" -z -o "$UPLINK" ]; then
+ return
+ fi
+
+ $SNF_NETWORK_LOG $0 "ip -6 neigh del proxy $EUI64 dev $UPLINK"
+ ip -6 neigh del proxy $EUI64 dev $UPLINK
+
+}
function clear_routed_setup_firewall {
# Enable proxy ARP
echo 1 > /proc/sys/net/ipv4/conf/$INTERFACE/proxy_arp
- # Send GARP from host to upstream router
+}
+
+function send_garp {
+
get_uplink $TABLE
+ if [ -z "$IP" -o -z "$UPLINK" ]; then
+ return
+ fi
+
+ # Send GARP from host to upstream router
echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind
- $SNF_NETWORK_LOG $0 "arping -c3 -I $UPLINK -U $IP"
- arping -c3 -I $UPLINK -U $IP
+ $SNF_NETWORK_LOG $0 "arpsend -U -i $IP -c1 $UPLINK"
+ arpsend -U -i $IP -c1 $UPLINK
echo 0 > /proc/sys/net/ipv4/ip_nonlocal_bind
}
local table=$1
local version=$2
- UPLINK=$(ip "$version" route list table "$table" | grep "default via" | awk '{print $5}')
+ UPLINK=$(ip $version route list table $table | grep "default via" | awk '{print $5}')
+ $SNF_NETWORK_LOG $0 "* uplink for table $table is $UPLINK"
}
EUI64=
else
EUI64=$($MAC2EUI64 $mac $prefix)
+ $SNF_NETWORK_LOG $0 "* eui64 for $mac inside $prefix is $EUI64"
fi
}
send_command () {
local command="$1"
- $SNF_NETWORK_LOG dnshook "$command"
+ $SNF_NETWORK_LOG $0 "* $command"
nsupdate -k $KEYFILE > /dev/null << EOF
server $SERVER
$command