The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

ASPLinux 7.3 и GPRS USB + учет трафика (gprs linux ppp mobile usb traffic)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: gprs, linux, ppp, mobile, usb, traffic,  (найти похожие документы)
From: Руслан Попов Newsgroups: http://ts.kmc.ru/ Date: Mon, 9 Dec 2003 14:31:37 +0000 (UTC) Subject: ASPLinux 7.3 и GPRS USB + учет трафика Оригинал: http://ts.kmc.ru/articles.php4?a=71 ASPLinux 7.3 и GPRS USB Автор: Руслан Попов Введение Данный материал создан на основе статьи на LinuxRSP (http://www.linuxrsp.ru/artic/gprs.html) с небольшими поправками и простой системой учёта трафика. Настройка USB При работе с USB устройствами необходимо убедиться, что в BIOS включена поддержка USB и разрешено выделение IRQ для USB. Это необходимо для автоматической подгрузки модулей ядра для USB устройств. Все необходимые модули для работы с USB кабелем Profilic 2303 (как раз для моего Siemens M50 подходит) в ASPLinux 7.3 уже есть. По каким-то причинам, а может так и должно быть, у меня не появились устройства для работы с USB кабелем. Пришлось делать всё самому: cd /dev/usb mkdir tts cd tts mknod 0 c 188 0 mknod 0 c 188 1 chmod 666 * Настройка PPPD Переходим в каталог /etc/ppp/peers и создаём там файл с именем gprs со следующим текстом: /dev/usb/tts/0 57600 noauth defaultroute usepeerdns updetach persist \ noipdefault lock connect '/usr/sbin/chat -v -f /etc/ppp/chat/gprs' \ novjccomp nopcomp noaccomp noipdefault nodeflate novj nobsdcomp Теперь перейдём в каталог /etc/ppp/chat и создадим там файл с именем gprs со следующим текстом: ABORT "ERROR" ABORT "NO ANSWER" "" 'ATE1' OK AT+CGDCONT=1,"IP","internet.mts.ru" OK ATDT*99***1# CONNECT c Содержимое данного файла я уточню сегодня вечером, в оригинальной статье были глюки :) В файл /etc/resolv.conf надо добавить строчки для MTS'овских DNS серверов: nameserver 213.87.0.1 nameserver 213.87.1.1 Использование Для активации соединения по GPRS надо отдать команду: /usr/sbin/pppd call gprs Но так как пользоваться данной командой может только администратор (root), то её выполнение надо разрешить для пользователей. Для этого надо выполнить несколько действий. В каталоге /usr/local/bin создадим файл gprs со следующим кодом: #!/bin/bash if [ -f /var/run/ppp0.pid ]; then kill `cat /var/run/ppp0.pid` else /usr/sbin/ppp0 call gprs fi Данный скрипт, вызываемый через иконку на рабочем столе с командой sudo /usr/local/bin/gprs и установленной галочкой "Выполнять в терминале", позволяет пользователю активировать и деактивировать соединение по GPRS простым нажатием на иконку. Не забудьте прописать для каждого пользователя следующую строчку в файле /etc/sudoers: username ALL=/usr/local/bin/gprs Учёт трафика База данных Статистику по утилизации GPRS проще всего хранить в базе данных. Для этого заведём новую базу данных: CREATE DATABASE traffic; И таблицу для статистики по утилизации: CREATE TABLE gprs ( id smallint(5) unsigned NOT NULL auto_increment, user varchar(16) NOT NULL default '', download int(10) unsigned NOT NULL default '0', upload int(10) unsigned NOT NULL default '0', time datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (id) ) TYPE=MyISAM COMMENT='Трафик на GPRS'; Теперь дадим права на выборку и вставку записей: GRANT insert, select ON traffic.* TO gprs@localhost IDENTIFIED BY "topsecret"; Усовершенствуем скрипт После внесения изменения скрипт будет выглядеть следующим образом: #!/bin/bash # (c) 2003 Ruslan Popov aka RaD # Скрипт для работы с GPRS if [ -f /var/run/mysqld/mysqld.pid ]; then if [ -f /var/run/ppp0.pid ]; then echo "Kill GPRS connection..." STR=`/sbin/ifconfig ppp0 | grep "RX bytes"` DWN=`echo $STR | sed "s/.*RX bytes:\(.*\) (.*) *TX bytes:\(.*\) (.*/\1/"` UPL=`echo $STR | sed "s/.*RX bytes:\(.*\) (.*) *TX bytes:\(.*\) (.*/\2/"` echo "INSERT INTO traffic.gprs SET user='$SUDO_USER',download='$DWN',upload='$UPL',time=NOW()" | \ mysql -u gprs -ptopsecret kill `cat /var/run/ppp0.pid` else echo "Open GPRS connection..." /usr/sbin/pppd call gprs if [ `/sbin/route|grep "default.*ppp0"` == "" ]; then echo "Sets the default route..." /sbin/route add default gw 192.168.254.254 fi fi fi А теперь небольшие пояснения. Первым делом проверяется наличие работающего демона базы данных, после этого проверяется открыто соединение по ppp0 или нет. Если открыто, то выполняется фаза отключения соедининия. При этом снимается статистика по трафику с интерфейса и помещается в базу данных. Если соединения нет, то оно создаётся. Дополнительно создаётся маршрут по умолчанию. Думаю, всё очень просто. Принимаются предложения по усовершенствованию... Усовершенствование на базе /usr/sbin/tcpdump -q -p -nn -i eth0 -S -t -e 0:c:6e:41:c7:7f 0:8:2:f9:4b:61 66: 192.168.10.157.50324 > 192.168.10.84.8080: tcp 0 (DF) 0:8:2:f9:4b:61 0:c:6e:41:c7:7f 1514: 192.168.10.84.8080 > 192.168.10.157.50324: tcp 1448 (DF) 0:8:2:f9:4b:61 0:c:6e:41:c7:7f 78: 192.168.10.84.8080 > 192.168.10.157.50324: tcp 12 (DF) 0:c:6e:41:c7:7f 0:8:2:f9:4b:61 66: 192.168.10.157.50324 > 192.168.10.84.8080: tcp 0 (DF)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру