The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"корректное завершение всех ррр-сессий"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"корректное завершение всех ррр-сессий"  +/
Сообщение от handler2006 email(ok) on 13-Ноя-09, 18:19 
Здравствуйте!
Имеется
ОС - федора10, на которой стоит pptpd-server, к которому подключаются ррр-клиенты.
файл
/etc/pp/ip-up
добавляет записи в mysql-базу, а
/etc/ppp/ip-down
удаляет их.
На основании записей в базе создаются правила маршрутизации и форвардинга для создаваемого ррр-соединения (клиент направляется в один из пяти внешних каналов).
Все работает без сбоев.
В просессе работы возникает необходимость другим скриптам изменить правила форвардинга и маршрутизации.
Для этого в начале этих скриптов стоит команда
service pptpd restart-kill
а в конце скриптов
service pptpd start
чтобы убрать изменения, внесенные динамически ррр-коннектами.
Однако, все клиенты закрываются, но скрипты отрабатываются не все.
Возможно, сервис просто не успевает их отработать?
Может, поставить задержку?
Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "корректное завершение всех ррр-сессий"  +/
Сообщение от ALex_hha (ok) on 13-Ноя-09, 18:47 
>Здравствуйте!
>Имеется
>ОС - федора10, на которой стоит pptpd-server, к которому подключаются ррр-клиенты.
>файл
>/etc/pp/ip-up
>добавляет записи в mysql-базу, а

а можешь показать пример, что именно он добавляет?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "корректное завершение всех ррр-сессий"  +/
Сообщение от handler2006 email(ok) on 14-Ноя-09, 00:10 
mysql> select * from ppp.mark;
+------+-------+------+
| mark | count | tbl  |
+------+-------+------+
|   10 |     1 | RT1  |
|   20 |     0 | RT2  |
|   30 |     0 | RT3  |
|   40 |     0 | RT4  |
|   50 |     0 | RT5  |
+------+-------+------+
5 rows in set (0.00 sec)

mysql> select * from ppp.ip;
+------+----------------+
| mark | ip             |
+------+----------------+
|   10 | 100.100.100.13 |
+------+----------------+
1 row in set (0.00 sec)

/etc/ppp/ip-up
Извлекаем из таблицы значение маркера с наименьшим кол-вом подключений на линке:
MARK=$(mysql -e"select mark from ppp.mark order by count limit 1")

Извлекаем значение таблицы маршрутов для выбранной марки
TBL=$(mysql -e"select tbl from ppp.mark where mark=${MARK:5}")

Увеличиваем счетчик подключений для выбранного маркера:
mysql -e"update ppp.mark set count=count+1 where mark=${MARK:5}"

Сохраняем значение маркера для данного подключения:
mysql -e"insert into ppp.ip values(${MARK:5}, '$5')"

#******************* IPTABLES ***************************
FW='/sbin/iptables'
#$FW -t mangle -A PREROUTING -s $5 -d ! $NET_LOCAL -j MARK --set-mark 50
$FW -t mangle -A PREROUTING -s $5 -d ! $NET_LOCAL -j MARK --set-mark ${MARK:5}
${FW} -I INPUT -i $IF_LOCAL -s $6 -j ACCEPT

#******************* ROUTE ******************************
#ip rule add from $5 table RT5
ip rule add from $5 table ${TBL:4}

exit 0

/etc/ppp/ip-down

Извлекаем из таблицы маркер для данного подключения:
MARK=$(mysql -e"select mark from ppp.ip where ip='$5'")

Извлекаем из таблицы значение таблицы маршрутов для данного подключения:
TBL=$(mysql -e"select tbl from ppp.mark where mark=${MARK:5}")

Уменьшаем счетчик активных подключений для данного маркера:
mysql -e"update ppp.mark set count=count-1 where mark=${MARK:5}"

Удаляем наше подключение из таблицы:
mysql -e"delete from ppp.ip where ip='$5'"

#************* IPTABLES ***********************************************
FW='/sbin/iptables'
#$FW -t mangle -D PREROUTING -s $5 -d ! $NET_LOCAL -j MARK --set-mark 50
$FW -t mangle -D PREROUTING -s $5 -d ! $NET_LOCAL -j MARK --set-mark ${MARK:5}
$FW -A INPUT -D -i $IF_LOCAL -s $6 -j ACCEPT

#************ ROUTE ***************************************************
#ip rule delete from $5 table RT5
ip rule delete from $5 table ${TBL:4}
exit 0

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "корректное завершение всех ррр-сессий"  +/
Сообщение от handler2006 email(ok) on 15-Ноя-09, 12:40 
хорошо, а как завершить конкретное подключение, например ррр2 ?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "корректное завершение всех ррр-сессий"  +/
Сообщение от ALex_hha (ok) on 15-Ноя-09, 21:39 
>хорошо, а как завершить конкретное подключение, например ррр2 ?

/etc/sysconfig/network-scripts/ifdown-ppp ррр2

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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