Есть шлюз в интернет. На нем настроено два канала ADSL (ppp0)
и спутниковый (gre1 - тунель на провайдера, пакеты уходят в тунель
и возвращаются на тарелку dvb0_0). Все работает отлично.
Решил раздавать спутниковые подписки в локальную сеть. Сделал следующее:
Поднял VPN (pptpd) сервер. Он выделяет пользователю IP, который
указан у него в подписке (выдает провайдер). Трафик от клиента
приходит на шлюз и уходит в gre1, но с уже с другим source_IP (который
у юзера в подписке прописан). Ответ приходит на dvb0_0 и отдается
обратно клиенту. Провайдер ведет подсчет трафика по source_IP.
И вот тут появилась следующая проблема:
1. Клиент подключается.
2. Работает.
3. Отключается. Но при отключении не завершаются процессы pppd
и pptpd. При этом команда ifconfig ничего не выдает и не завершается.
В лог (/var/log/syslog) сыпется следующее:
Message from syslogd@sam-gw at Mon Aug 14 00:27:53 2006 ...
sam-gw kernel: unregister_netdevice: waiting for ppp1 to become free. Usage count = 1
Aug 14 00:27:53 sam-gw kernel: unregister_netdevice: waiting for ppp1 to become free. Usage count = 1
Проблема возникает только если клиент поработал со спутниковым каналом.
Т.е. если клиент подключился, ничего не делал (трафик не шел)
и отключился, pppd (и pptpd) завершается нормально. Самое странное,
что если трафик клиента направить в другой канал (ppp0 - ADSL)
и сделать NAT, то тоже все ОК. Не работает, только
ЕСЛИ КЛИЕНТ РАБОТАЕТ И ИМЕННО СО СПУТНИКОВЫМ КАНАЛОМ!!!
-------------------------------------------------
Система: Slackware 10.1
машина: pI-150Mhz, 32Mb RAM
ядро: 2.6.10
pppd version 2.4.2
pptpd v1.3.0 (stable)
провайдер: SpaceGate, тариф sg_traf на AM22.
конфигурация ядра, касательно PPP:
CONFIG_PPP=y
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not set
CONFIG_PPP_ASYNC=y
CONFIG_PPP_SYNC_TTY=y
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_MPPE_MPPC=y
CONFIG_PPPOE=y
касательно GRE:
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
вывод lsmod:
Module Size Used by
skystar2 25636 1
mt352 4708 1 skystar2
mt312 6660 1 skystar2
stv0299 8644 1 skystar2
i2c_core 17520 4 skystar2,mt352,mt312,stv0299
dvb_core 71848 1 skystar2
ipip 7876 0
xfrm4_tunnel 2852 1 ipip
ip_gre 10144 0
iptable_raw 1472 0
8139too 19232 0