Имя:    Пароль:      Помнить меня       
Unsorted   ~  Software  ~  Linux and Unix  ~  [Авиэл] Актуальные маршруты доступа к Home-IX perl, наш ответ AviControl
На страницу «  1, 2, 3
PIRAT
Сообщение  28 Авг 2010, 23:41  Ссылка : Ответить с цитатой
Возраст: 48 Пол: Мужской 
C нами с 17.10.2005
Репутация: 347.3

Intaki писал(а):
А кстати dhcp авиел так и не сделал?

нет конечно, это было бы слишком удобно для пользователей.

_____________________________
♫-♠♥♣♦-♫
В начало
Профиль : Фотоальбом : Личное Сообщение
Intaki
Сообщение  04 Сен 2010, 11:10  Ссылка : Ответить с цитатой
Пол: Мужской 
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 приходит на сколько я понял только если запускать в течение часа.
В начало
Профиль : Личное Сообщение
Intaki
Сообщение  30 Сен 2011, 17:28  Ссылка : Ответить с цитатой
Пол: Мужской 
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
В начало
Профиль : Личное Сообщение
Хомсяк
Сообщение  03 Ноя 2015, 22:11  Ссылка : Ответить с цитатой
Возраст: 33 Пол: Мужской 
C нами с 22.10.2006
Репутация: 144.8

а на винде их прописывать сейчас нужно?
если да - то как прописать маршруты?
подключился сейчас к авиелу на другой квартире... что-то тащит плохо с торентов с 4000+ раздающих, обычно подхватывало и сразу тащило на все 100 мегабит через локалку, сейчас ограничивается скоростью инета.
сижу через wifi - ави контроль не даёт прописать маршруты
В начало
Профиль : Фотоальбом : Личное Сообщение
Flaxman
Сообщение  03 Ноя 2015, 22:29  Ссылка : Ответить с цитатой
Возраст: 39 Пол: Мужской  Доверенный пользователь
C нами с 09.12.2006
Репутация: 106.6

Хомсяк писал(а):
а на винде их прописывать сейчас нужно?
если да - то как прописать маршруты?
подключился сейчас к авиелу на другой квартире... что-то тащит плохо с торентов с 4000+ раздающих, обычно подхватывало и сразу тащило на все 100 мегабит через локалку, сейчас ограничивается скоростью инета.
сижу через wifi - ави контроль не даёт прописать маршруты

у меня сейчас Авиел вообще что-то торренты не тащит, что-то наверное у них там случилось. Грустно


Вот что тест скорости показывает:





4801396029.png

4801396029.png - Просмотров: 6

В начало
Профиль : Фотоальбом : Личное Сообщение : Сайт
NIK
Сообщение  03 Ноя 2015, 23:38  Ссылка : Ответить с цитатой
Возраст: 37 Пол: Мужской  Доверенный пользователь
C нами с 14.08.2005
Репутация: 165.2

Хомсяк, маршруты нужно ТОЛЬКО там где инет подключается через VPN соединение.

_____________________________
Если руки золотые, то не важно откуда они растут.
В начало
Профиль : Фотоальбом : Личное Сообщение
Ronny
Сообщение  04 Ноя 2015, 16:06  Ссылка : Ответить с цитатой
Пол: Мужской 
C нами с 08.09.2010
Репутация: 56.8

Хомсяк, какой программой работаете с торрентами? Я тут спрашивал про настройки как раз для сети Авиел. Посмотрите, пожалуйста.
В начало
Профиль : Личное Сообщение
Показать сообщения:   
На страницу «  1, 2, 3

Unsorted   ~  Software  ~  Linux and Unix  ~  [Авиэл] Актуальные маршруты доступа к Home-IX

Ответить на тему

Перейти:  





Powered by phpBB   © Unsorted Team  support@unsorted.me  promo@unsorted.me  Полезные скрипты