|
|
Возраст: 48 C нами с 17.10.2005 Репутация: 347.3
|
|
Intaki писал(а): |
А кстати dhcp авиел так и не сделал?
|
нет конечно, это было бы слишком удобно для пользователей.
|
_____________________________ ♫-♠♥♣♦-♫
|
|
|
|
|
|
|
C нами с 20.05.2006 Репутация: 88.9
|
|
AlexTitov писал(а): |
А если запускать его часто (т.к. маршруты обновляются несколько раз в день), то хорошо бы запоминать значение $rv и потом употреблять его при очередном вызове скрипта. То есть, например, вот так:
$data = get("http://avicontrol.aviel.ru/avc.pl?mode=get_routes&rv=$rv");
При этом ответ может быть result=no_changes
что означает, что обновления маршрутов не требуется.
|
rv не обозначает изменение. rv на самом деле timestamp.
Я запускал с rv с интервалом в час, мне вернули те же маршруты без изменений.
no_changes приходит на сколько я понял только если запускать в течение часа.
|
|
|
|
|
|
|
|
C нами с 20.05.2006 Репутация: 88.9
|
|
Сделал несколько более универсальный скрипт для обновления маршрутов.
Он обновляет маршруты только на определённом интерфейсе, при этом удаляет устаревшие маршруты. Скрипт можно добавить в крон и периодически запускать, например раз в час или сутки.
Для работы требуется только bash. На sh можно переделать в дальнейшем, не хватает только нормальной поддержки массивов.
Скрипт работал у меня без проблем на Linux около полугода в папке /etc/ppp/ip-up.d/
Сейчас без проблем работает на маршрутизаторе под Openwrt.
Внимание!
Укажите ваш маршрутизатор в параметре gw.
Кроме того, необходимо изменить интерфейс, если он отличается от eth0, и убрать параметр GREP, если он у вас не цветной:)
#!/usr/bin/env bash
#set -o errexit
#set -o pipefail
#add route unix-shell avicontrol
gw="10.110.XX.XX"
IFACE='eth0'
ROUTE_FC=8
LOG="logger -t routeupd"
GREP='grep --color=never'
is_ip() {
echo $1 | ${GREP} '^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}$' > /dev/null
return $?
}
run() {
#res=$(eval $1 2>&1)
echo $1
if [ $? != 0 ]
then
$LOG "Error run route cmd: $1"
return 1
else
return 0
fi
}
net_gt() {
local n1=$1
local m1=$2
local n2=$3
local m2=$4
if [[ "$n1" = "$n2" ]]
then
if [[ "$m1" > "$m2" ]]
then
return 0
else
return 1
fi
elif [[ "$n1" > "$n2" ]]
then
return 0
else
return 1
fi
}
main() {
# read current routes
cur_array=( $(route -n | ${GREP} ' ${IFACE}$' | ${GREP} " ${gw} " | sort -r) )
if [ $? != 0 ]
then
$LOG "Error get routes"
exit 1
fi
cur_count=$((${#cur_array[*]}/${ROUTE_FC}))
$LOG "Current route count $cur_count"
cn=()
cm=()
for ((i=0; i <cur_count> /dev/null)
then
$LOG 'Download status ok'
else
$LOG "Error loading route status: $net"
exit 1
fi
net=()
mask=()
for ((i=0; i < $count; i++))
do
local n=${array[$i*2+1]}
local m=${array[$i*2+2]}
if is_ip $n && is_ip $m
then
net[${#net[*]}]=$n
mask[${#mask[*]}]=$m
else
$LOG "Error loaded net: $n mask: $m"
fi
done
route_add_count=0
route_del_count=0
route_remain_count=0
ci=0
for ((i=0; i < $count; i++))
do
local n="${net[$i]}"
local m="${mask[$i]}"
while (( $ci < $cur_count )) &&
net_gt "${cn[$ci]}" "${cm[$ci]}" "$n" "$m"
do
cmd="route del -net ${cn[$ci]} netmask ${cm[$ci]} gw $gw"
if run "$cmd"
then
let route_del_count++
fi
let ci++
done
if (( $ci == $cur_count )) ||
[[ "${cn[$ci]}" != "$n" ]] || [[ "${cm[$ci]}" != "$m" ]]
then
cmd="route add -net $n netmask $m gw $gw"
if run "$cmd"
then
let route_add_count++
fi
elif [[ "${cn[$ci]}" = "$n" ]] && [[ "${cm[$ci]}" = "$m" ]]
then
let ci++
let route_remain_count++
fi
done
# delete remain current routes
while (( $ci < $cur_count ))
do
cmd="route del -net ${cn[$ci]} netmask ${cm[$ci]} gw $gw"
if run "$cmd"
then
let route_del_count++
fi
let ci++
done
$LOG "Add: $route_add_count, Del: $route_del_count, Remain: $route_remain_count"
}
main
|
|
|
|
|
|
|
|
|
Возраст: 33 C нами с 22.10.2006 Репутация: 144.8
|
|
а на винде их прописывать сейчас нужно?
если да - то как прописать маршруты?
подключился сейчас к авиелу на другой квартире... что-то тащит плохо с торентов с 4000+ раздающих, обычно подхватывало и сразу тащило на все 100 мегабит через локалку, сейчас ограничивается скоростью инета.
сижу через wifi - ави контроль не даёт прописать маршруты
|
|
|
|
|
|
|
|
Возраст: 39 C нами с 09.12.2006 Репутация: 106.6
|
|
Хомсяк писал(а): |
а на винде их прописывать сейчас нужно?
если да - то как прописать маршруты?
подключился сейчас к авиелу на другой квартире... что-то тащит плохо с торентов с 4000+ раздающих, обычно подхватывало и сразу тащило на все 100 мегабит через локалку, сейчас ограничивается скоростью инета.
сижу через wifi - ави контроль не даёт прописать маршруты
|
у меня сейчас Авиел вообще что-то торренты не тащит, что-то наверное у них там случилось.
Вот что тест скорости показывает:
|
4801396029.png - Просмотров: 6
|
|
|
|
|
|
|
Возраст: 37 C нами с 14.08.2005 Репутация: 165.2
|
|
Хомсяк, маршруты нужно ТОЛЬКО там где инет подключается через VPN соединение.
|
_____________________________ Если руки золотые, то не важно откуда они растут.
|
|
|
|
|
|
|
C нами с 08.09.2010 Репутация: 56.8
|
|
Хомсяк, какой программой работаете с торрентами? Я тут спрашивал про настройки как раз для сети Авиел. Посмотрите, пожалуйста.
|
|
|
|
|
|
|
|