Считайте, что поддержку uTP вы уже отключили: rtorrent не поддерживает uTP.
Лимитировать кол-во соединений настройками rtorrent. ЕМНИП, раньше это были опции max-peers-global\max-peers-per-torrent, сейчас — max_uploads_global\max_downloads_global.
Переезжаю с обсуждением своей проблемы отсюда
Краткое содержание предыдущих серий:
Только что купленный RT-N56U, прошивка от падавана 3.4.3.8-085,
установленный скриптом rtorrent-easy-install rTorrent 0.9.4/0.13.4.
Проблема:
Очень большое количество соединений в conntrack при минимальной текущей активности и ошибки в логе о переполнении таблицы.
Из-за этого пришлось поднимать лимит conntrack с дефолтных 16к до 64к, значение активных соединений "устаканивается" на 28-30к.
MercuryV предположил, что дело в использовании uTP, и предложил его отключить.
Но я сходу не нашёл никакой информации ни о поддержке uTP rTorrent-ом, ни об отключении.
Просмотрел содержимое /proc/net/nf_conntrack, over 95% записей - соединения UDP на порт 51412, который в дефолтном конфиге отведён DHT.
Подскажите, как исправить эту ситуацию.
Есть мысль поиграться в сторону уменьшения вот с этими таймерами:
Но не уверен, что это удачная идея.Code:net.netfilter.nf_conntrack_udp_timeout = 50 net.netfilter.nf_conntrack_udp_timeout_stream = 180
Считайте, что поддержку uTP вы уже отключили: rtorrent не поддерживает uTP.
Лимитировать кол-во соединений настройками rtorrent. ЕМНИП, раньше это были опции max-peers-global\max-peers-per-torrent, сейчас — max_uploads_global\max_downloads_global.
Last edited by ryzhov_al; 02-11-2014 at 07:31.
Эти настройки уже зарезаны до 50/100.
Как я понимаю, записи из conntrack для udp удаляются только по таймауту, так как у udp нет такой сущности как "соединение", в отличие от tcp.
Вот такими "трехминутными хвостами" похоже и забивает таблицу при активно работающем dht.
При увеличенной до 64к таблице побочных эффектов пока не замечено, так что пока оставлю всё как есть.
Будет вылезать за 64к - там посмотрим, может net.netfilter.nf_conntrack_udp_timeout_stream до 120 уменьшу.
Edit:
Хотя нет, замечен один глюк, не знаю связанный с вышеизложенным или нет.
Графа "Rate" внизу консольного интерфейса показывает странные значения:
И это при 1 пире, которому отдаётся несколько КБ/с и при отсутствии закачек, только раздача.Code:[Rate 74.5/ 41.1 KB]
Last edited by azhur; 02-11-2014 at 09:13.
Может кто-то уже имел опыт, гугл пока не помог...
Как правильно замониторить наличие\отсутствие wifi клиентов в сети?
В наличие asus rt-n56u с альтернативной прошивкой, openhab стоящий на NAS и куча разных wifi устройств.
По наличию wifi клиентов пытаюсь понять кто находится дома.
Первым делом попробовал использовать ping по сетевому имени, в итоге часть пакетов теряется(особенно для iphone).
Решил попробовать SNMP, но не могу понять как лучше сделать.
Судя по snmpwalk, сетевые имена вообще не фигурируют в OID'ах.
Фигурируют только IP и MAC, при этом получать какие-то данные можно только зная IP.
iso.3.6.1.2.1.3.1.1.2.7.1.192.168.1.144 = Hex-STRING: 00 0A F5 89 89 FF
iso.3.6.1.2.1.4.22.1.2.7.192.168.1.144 = Hex-STRING: 00 0A F5 89 89 FF
iso.3.6.1.2.1.4.35.1.4.7.1.4.192.168.1.144 = Hex-STRING: 00 0A F5 89 89 FF
т.е. нужно обязательно использовать dhcp.
такая схема выглядит геморойной и некрасивый, может кто-то знает метод лучше?
Мне кажется это будет то же самое и вывод этой команды соответствует первому или второму OID.
Хотелось искать по сетевому имени, а не по IP или MAC, но похоже надежного способа для современных телефонов всё таки нет
Столкнулся с небольшой проблемой: похоже Ростелекому тоже перестало иногда хватать "белых" IP для клиентов и они прикрутили на такой случай НАТ.
Как следствие, иногда на впн-соединение выдаётся "серый" IP, что меня не очень устраивает.
Хотелось бы автоматизировать проверку выданного адреса на "серость" и реконнект для получения другого адреса.
Как я понял, подобное можно реализовать через скрипт WAN Up|Down.
Что-то типа:
Но [[ ]] вроде работают только в bash, а для этих скриптов применяется sh, так что есть сомнение в работоспособности.Code:if [ "$1" = "up" ]; then currentIp=$(nvram get wan0_ipaddr) if [[ $currentIp = 10.* ]] then sleep 10 /sbin/restart_wan fi fi
Если кто хорошо разбирается в шелл скриптах или видел готовую реализацию чего-то подобного - просьба помочь довести скрипт до ума.
Целевой девайс - RT-N56U с падавановской прошивкой.
http://forum.ixbt.com/topic.cgi?id=14:62022:2016#2016Code:#!/bin/sh ### post_wan_script.sh - Custom user script ### Called after internal WAN up/down action ### $1 - WAN action (up/down) ### $2 - WAN interface name (e.g. eth3 or ppp0) SVC_NAME="WAN up/down script" func_wanup() { ip=`nvram get wan0_ipaddr | awk -F"." '{print $1}'` [ "$ip" -eq "10" ] && restart_wan && logger -t "$SVC_NAME" "WAN restart - received private IP adress" return 0 } func_wandown() { return 0 } case "$1" in up) func_wanup ;; down) func_wandown ;; esac
З.Ы. Там дальше есть еще примеры скриптов и для 100.64.xx.xx. адресов РТК
• Oleg's FAQ • Mini FAQ • Все об Asus RT-N16 • Все об Asus RT-N66U • VectorMM.net • Wiki-HUB.ru • WikiDevi • Wi-Cat.ru •