Всем добрый день! Пытаемся решить такую задачу: в чистом поле на электрическом столбе повесить роутеры с прошивкой OpenWRT, к каждому подключены IP-камеры и 4G-модемы. Роутеры должны подключаться к серверу по PPTP, чтобы камеры было видно. Заменить PPTP на OpenVPN нельзя из-за политики владельцев сервера.
Что не получается: На сервере CentOS 6.3, установлен pptpd,настройки такие:
options.pptpd
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mppe-128
ms-dns 8.8.8.8
ms-dns 8.8.4.4
debug
nobsdcomp
novj
novjccomp
nologfd
Для клиентов в chap-secrets прописаны постоянные ip-адреса, поскольку по PPTP подключаются роутеры с видеокамерами, которые хочется видеть по конкретным адресам. При подключении клиентов для каждого создаётся сетевой интерфейс ppp0, ppp1, ppp2 и т.д. с этим ip-адресом. Если клиент разрывает соединение как положено - то проблем с повторным подключением нет. Созданный интерфейс моментально исчезает из ifconfig, как только нажимаем кнопку «отключить».
А вот если происходит обрыв связи - то повторно подключиться клиент уже не может. Отбивается с ошибкой 619. На сервере в это время такие логи:
GRE: read(fd=6,buffer=611860,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs
Apr 5 13:09:38 omgtu pptpd[1917]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)
Как сделать, чтобы pptpd понимал, что клиент отвалился, и затирал у себя все следы его подключения?
Яндекс предлагает в настройки добавить такие директивы в options.pptpd:
lcp-echo-interval 30 # посылать эхо-пакеты каждые 30 секунд
lcp-echo-failure 2 # если ответа на два эхо-пакета нет, разрывать соединение
Подскажите пожалуйста, как заставить pptpd понимать, что клиента не видно.