Подвисшие туннели

Установка, настройка, поддержка
Ответить
NiTr0
Сообщения: 767
Зарегистрирован: Пт фев 08, 2008 4:46 pm

Подвисшие туннели

Сообщение NiTr0 »

Имеется CentOS 5.1, на нем крутится пптп. Ядро пару месяцев назад апдейтил yum-ом из репозиториев, родное 2.6.18-(куча субверсий известных только RHEL).
Стала наблюздаться следующая вещь: в списке интерфейсов имеются ppp туннели в состоянии down, без ип адресов, вроде такого:

Код: Выделить всё

32259: ppp64: <POINTOPOINT,MULTICAST,NOARP> mtu 1400 qdisc noop qlen 3
32321: ppp142: <POINTOPOINT,MULTICAST,NOARP> mtu 1400 qdisc noop qlen 3
32324: ppp30: <POINTOPOINT,MULTICAST,NOARP> mtu 1400 qdisc noop qlen 3
32366: ppp45: <POINTOPOINT,MULTICAST,NOARP> mtu 1400 qdisc noop qlen 3
32375: ppp143: <POINTOPOINT,MULTICAST,NOARP> mtu 1400 qdisc noop qlen 3
32428: ppp100: <POINTOPOINT,MULTICAST,NOARP> mtu 1400 qdisc noop qlen 3
Соответственно - в процессах pppd висят демоны, чьих pid нет в /var/run/ppp*.pid - примерно столько же, сколько и интерфейсов.
Киллом данные ppp туннели прибиваются. Написал скрипт, который данный мусор чистит - но это скорее борьба со следствием, а не с причиной.
Отсюда вопрос - кто-то с таким нештатным поведением сталкивался?
pptpd 1.3.4, pppd 2.4.4 (дистровый)
При килле - в логе остается следующее (для 1 из линков выбрал):

Код: Выделить всё

Dec 18 00:17:35 server3 pppd[17070]: ioctl(TIOCSETD, N_TTY): Interrupted system call (line 562)
Dec 18 00:17:35 server3 pppd[17070]: tcsetattr: Invalid argument (line 1001)
Dec 18 00:17:35 server3 pppd[17070]: Exit.

NiTr0
Сообщения: 767
Зарегистрирован: Пт фев 08, 2008 4:46 pm

Сообщение NiTr0 »

Помогло ограничение кол-ва попыток соединения до 5 за 3 минуты (методом, описанным здесь), подвисшие сессии иногда появлялись у пользователей, не прошедших аутентификацию (хозяев роутеров, которые при окончании пакетов круглосуточно долбятся, не смотря на ошибку, без задержек) - pppd делал запись в логе Connection terminated, но Exit не было, и strace показывал, что процесс висит на вызове ioctl(TIOCSETD

Ответить