The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ppp + ipfw + kernel nat в 9.1"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"ppp + ipfw + kernel nat в 9.1"  +/
Сообщение от skeletor email(ok) on 14-Авг-13, 13:43 
OS: FreeBSD 9.1 i386 Release.
Сервер получает адрес через ppp от провайдера (укртелеком). Проблема в том, что получение это длительное и получается, что правила ipfw (+kernel nat) применяются ранее, чем будет получен адрес. В итоге приходиться из /etc/rc.conf исключать загрузку ipfw, и через крон стартовать через 60 секунд после загрузки ОСи. Тогда все правила нормально применяются и есть инет. Если так не сделать - то инета даже на сервере нет: адрес получает (в логах это видно), но инета нет. В логах ничего такого, что может насторожить. Сервер удалённый и все манипуляции приходиться делать через помощника, который может выполнять только под диктовку.
Вот, что есть в /etc/rc.conf:

# PPPPoE #
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="NO"
ppp_profile="pppoe"

# FIREWALL #
firewall_enable="YES"
firewall_script="/etc/my-firewall"


а вот что в /etc/ppp/ppp.conf

default:
   set log Phase Chat LCP IPCP CCP tun command

pppoe:
   set device PPPoE:rl0
   set speed sync
   set mru 1492
   set mtu 1492
   set ctsrts off
   enable lqr
   set lqrperiod 5
   add! default HISADDR
   set timeout 0
   set redial 0 0
   set authname user
   set authkey pass
   enable dns
   set reconnect 5 10000


Пробовал добавлять
!bg /etc/my-firewall
в ppp.conf, но ничего не меняется.
Какие ещё есть нормальные варианты решения?
Ответить | Правка | Cообщить модератору

Оглавление

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


1. "ppp + ipfw + kernel nat в 9.1"  +/
Сообщение от mr_gfd on 14-Авг-13, 14:42 
a) показать /etc/my-firewall и вывод ipfw show до и после поднятия tun
b) man syslog.conf на предмет "|"
c) читать таки больше, чем писать, желательно документацию
Уже который год по всем углам ру- и уанета skeletor задает уйму вопросов сомнительной полезности, уровень которых ничуть не растет со временем, что не радует.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "ppp + ipfw + kernel nat в 9.1"  +/
Сообщение от Miha (??) on 14-Авг-13, 17:34 
Смотрите, когда стартует сервер, то при загрузке правил ipfw интерфейса tynX еще нет, т.к. небыло запуска ppp, поэтому правило NAT не загружается.
Как можно рещить:
- указать в конфиге NAT статический адрес, а не имя интерфейса;
- использовать вместо штатного ppp mpd и использовать up-script для загрузки правил ната.

Ваш вариант загрузки по крону плох тем, что вы точно не знаете поднят у вас туннель через 60 с после статрта сервера или нет.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "ppp + ipfw + kernel nat в 9.1"  +/
Сообщение от skeletor email(ok) on 14-Авг-13, 18:36 
> Смотрите, когда стартует сервер, то при загрузке правил ipfw интерфейса tynX еще
> нет, т.к. небыло запуска ppp, поэтому правило NAT не загружается.
> Как можно рещить:
> - указать в конфиге NAT статический адрес, а не имя интерфейса;
> - использовать вместо штатного ppp mpd и использовать up-script для загрузки правил
> ната.
> Ваш вариант загрузки по крону плох тем, что вы точно не знаете
> поднят у вас туннель через 60 с после статрта сервера или
> нет.

Нашёл вариант с ppp.linkup. Работает.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "ppp + ipfw + kernel nat в 9.1"  +/
Сообщение от oleg_skat (ok) on 16-Мрт-15, 12:08 
>> Смотрите, когда стартует сервер, то при загрузке правил ipfw интерфейса tynX еще
>> нет, т.к. небыло запуска ppp, поэтому правило NAT не загружается.
>> Как можно рещить:
>> - указать в конфиге NAT статический адрес, а не имя интерфейса;
>> - использовать вместо штатного ppp mpd и использовать up-script для загрузки правил
>> ната.
>> Ваш вариант загрузки по крону плох тем, что вы точно не знаете
>> поднят у вас туннель через 60 с после статрта сервера или
>> нет.
> Нашёл вариант с ppp.linkup. Работает.

Можно так:
Скрипт ф-вола:
--------------------------------------------------------------------------------------
#!/bin/sh
.......
#ip внешнего и-фейса
natip=`ifconfig tun0|grep inet|awk '{print $2}'`

......

if [ -z $natip ]; then
while [ -z $natip ];  do  echo "Waiting for IP...." &&  sleep 12
done
        else echo "The internet connection established"
fi

.....
Правила
-------------------------------------------------------------------------------------

Если переменная ($natip) определена, продолжение загрузки. Если нет, ждёт появления айпишника (соединения) Таймаут ppp сколько? По дефолту 3 секунды.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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