Подымаю я, понимаешь, MPD-клиент на FreeBSD 5.2.1. Накопал инфы в этом форуме, интерфейс подымается, да вот пакеты до шлюза не долетают. Конфиг сети: (мой комп 10,0,11,21 адрес даёт DHCP) --- (роутер 10,0,11,254) --- (ВПН-шлюз 10,0,254,254 - внутренний, 192,168,1,2 - внешний). Вот некоторые заметки, надеюсь помогут кому-нибудь:
Вырезка с сайта netbynet:
но как выяснилось конфиги это пол беды, дальше надо пропатчить ядро ибо имеются проблемы толи в бсд, толи в линуховом софте у нас на сервере, вообщем они по разному упаковывают заголовки пакетов, короче заходим в файл /sys/netgraph/ng_ppp.c и ищем там следующий кусок, он одинаковый и для 4.x и для 5.х на сколько я успел заметить
case HOOK_INDEX_VJC_UNCOMP:
case HOOK_INDEX_VJC_VJIP:
if (priv->conf.enableCompression
&& priv->hooks[HOOK_INDEX_COMPRESS] != NULL) {
if ((m = ng_ppp_addproto(m, proto, 1)) == NULL) {
NGI_M(item) = NULL;
NG_FREE_ITEM(item);
return (ENOBUFS);
и меняем на
case HOOK_INDEX_VJC_UNCOMP:
case HOOK_INDEX_VJC_VJIP:
if (priv->conf.enableCompression
&& priv->hooks[HOOK_INDEX_COMPRESS] != NULL) {
if ((m = ng_ppp_addproto(m, proto, 0)) == NULL) {
NGI_M(item) = NULL;
NG_FREE_ITEM(item);
return (ENOBUFS);
то есть строка (на 5.2.1 это 756 строка файла, в других версиях номер может отличаться)
if ((m = ng_ppp_addproto(m, proto, 1)) == NULL) {
заменяется на
if ((m = ng_ppp_addproto(m, proto, 0)) == NULL) {
после этого пересобираем ядро и модули и все шикарно работает
Далее понадобилось настроить роут:
запускаю МПД
Прописываю роут до внутреннего айпи ВПН-сервера, чтобы коннект не сбрасывал - route add 10.0.0.0 10.0.11.254
удаляю дефолтный роут - route delete 0.0.0.0
Добавляю новый route add 0.0.0.0 192.168.1.2 (добавлять ТОЛЬКО ПОСЛЕ запуска МПД)
Вот только не понял как сделать чтобы это всё автоматом делалось, может кто подскажет?