############################################## # Функции по работе с таблицей маршрутизации # ############################################## #Выдать на stdout Gateway для Destination (хоста или сети) переданного через $1 getgw() { chk_arg $1 netstat -f inet -rn | awk '$1=="'$1'" {print $2}' } #Удаляет маршрут до Destination переданного через $1 (если такой есть) delroute() { #echo delroute: $1 gw=`getgw $1` if [ "$gw" = "" ]; then return fi route delete $1 } #Устанавливает маршрут Destination $1 через Gateway $2 setroute() { chk_arg $2 #echo setroute: $1 через $2 cur=`getgw $1` if [ "$cur" = "" ]; then route add $1 $2 else if [ "$cur" != "$2" ]; then route change $1 $2 fi fi } #Запрещает (blackhole) маршрут до Destination $1 blackholeroute() { chk_arg $1 #echo blackholeroute: $1 cur=`getgw $1` if [ "$cur" = "" ]; then route add $1 127.0.0.1 -blackhole else if [ "$cur" != "127.0.0.1" ]; then route change $1 127.0.0.1 -blackhole fi fi }