The OpenNET Project / Index page

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

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

"2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 10-Фев-14, 14:51 
Доброго времени суток.
FreeBSD 8.2  mpd4.

В общем есть два провайдера, один PPPoE, другой дает выделенный IP.
Проблема такая, natd стартует быстрее mpd4(ng11). И из отсутствия ng11 natd не хочет стартовать. Можно ли поменять приоритет загрузки демонов? После загрузки вручную стартую natd и он работает. Дабы не писать отдельную тему хочу спросить, может кто нить поможет со скриптом смены  defaultroute X.X.X.X  
если меняю вручную, то все работает :
/sbin/route change default X.X.X.X переключение с одного провайдера на другой идет.
В моем случае основной PPPoE, резервный с выделенным ip. При загрузки freebsd я вижу из вне пинг ip(pppoe), при этом второго ip я не вижу, одновременно они не работают, только поочередно при смене (defaultroute)
В инете нашел много скриптов, единственное но, там пингуют dns 8.8.8.8 с разных сетевых одновременно. Вот тут то и вопрос - это как ? Есть еще некая проблема, у меня провайдер PPPoE имеет два шлюза, при смене в скрипте как это сделать? Иногда mpd4 подвисает и в crontab я прописал проверку dns гугла, и restart mpd4.  
http://habrahabr.ru/post/124447/
скрипт:
#!/bin/sh
IP1=111.111.111.1
IP2=222.222.222.1
GW1=111.111.111.2
GW2=222.222.222.2
/sbin/ping -q -c 1 -S $IP1 yandex.ru > /dev/null 2>&1
if [ $? != 0 ]; then
  /sbin/ping -q -c 1 -S $IP2 yandex.ru > /dev/null 2>&1
      if [ $? = 0 ]; then
         if [ ! -f /tmp/gw.changed ]; then
            /sbin/route change default $GW2 && touch /tmp/gw.changed
         fi
      fi
else
  if [ -f /tmp/gw.changed ]; then
    /sbin/route change default $GW1 && rm /tmp/gw.changed
  fi
fi

rc.conf
natd_enable="YES"
natd_program="/sbin/natd"
natd_flags="-f /etc/natd.conf"

natd.conf
log
instance default
interface ng11
port 8668
use_sockets yes
same_ports yes

instance rl1
interface rl1
port 8669
use_sockets yes
same_ports yes

globalport 8670

Ответить | Правка | Cообщить модератору

Оглавление

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


1. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от h on 10-Фев-14, 15:43 
> natd.conf

dynamic ?

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

3. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 10-Фев-14, 17:44 
>> natd.conf
> dynamic ?

такой: Работает, но как и написал после того как вручную старую демон natd.
natd.conf
log
instance default
interface ng11
port 8668
use_sockets yes
same_ports yes
instance rl1
interface rl1
port 8669
use_sockets yes
same_ports yes
globalport 8670

по поводу скрипта, мне просто непонятно как могут одновременно работать 2 провайдера, у меня только попеременно, либо PPPoE либо провайдер с статическим IP когда вручную меняю шлюх.... в скрипте который я нашел работают именно 2 (если я правильно понял). Которые пингуют dns с разных IP

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

5. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от михалыч (ok) on 10-Фев-14, 18:17 
> когда вручную меняю шлюх....

да уж, забавная произошла опечатка, гыг-гыг.. )) оговорка(?) по Фрейду

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

6. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 10-Фев-14, 18:20 
>> когда вручную меняю шлюх....
> да уж, забавная произошла опечатка, гыг-гыг.. )) оговорка(?) по Фрейду

:))) у меня провайдер дает инет pppoe (по радиоканалу) можно ip тарелки пинговать..... только вот в скриптах я не силен :)

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

2. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от михалыч (ok) on 10-Фев-14, 16:16 
использовать up/down скрипты для pppoe в mpd.conf при старте/останове mpd
и по возможности перейти с natd на nat (но это не принципиально)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 10-Фев-14, 18:11 
> использовать up/down скрипты для pppoe в mpd.conf при старте/останове mpd
> и по возможности перейти с natd на nat (но это не принципиально)

да можно, единственное как обратно с резервного переключатся? в скриптах проверка dns - если нет то шлюз меняем на запасного провайдера, а обратно ? можно конечно попробовать пинг ip локалки провайдера где PPPoE


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

7. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от михалыч (ok) on 10-Фев-14, 19:20 
>> использовать up/down скрипты для pppoe в mpd.conf при старте/останове mpd
>> и по возможности перейти с natd на nat (но это не принципиально)
> да можно, единственное как обратно с резервного переключатся? в скриптах проверка dns
> - если нет то шлюз меняем на запасного провайдера, а обратно
> ? можно конечно попробовать пинг ip локалки провайдера где PPPoE

Да что там и для чего пинговатть и переключать?!

Пример приведу ниже.
Чисто как пример, не копипастить бездумно.))

default gateway - 192.168.1.1

rl0 - 192.168.1.2 - внешний (инет)
rl1 - 192.168.2.1 - внутренний (локалка)

вешаем natd на rl0
Обеспечиваем запуск natd в /etc/rc.conf

defaultrouter="192.168.1.1"
natd_enable="YES"
natd_interface="rl0"

В фаерволе прописываем правила по минимуму

add 50 divert 8668 all from any to any via rl0
add 100 allow all from any to any via lo0
add 200 deny all from any to 127.0.0.0/8
add 300 deny all from 127.0.0.0/8 to any
add 400 allow ip from 192.168.11.202/32 to any
add 500 allow ip from any to 192.168.1.2/32
add 600 allow ip from 192.168.0.0/16 to 192.168.0.0/16
add 65000 deny ip from any to any


в /usr/local/etc/mpd5/mpd.conf

в секции pppoe

pppoe0:
        create bundle static B1
#       set iface route default
        set iface up-script "/usr/local/etc/mpd5/up.sh"
        set iface down-script "/usr/local/etc/mpd5/down.sh"
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0

если есть строка set iface route default её нужно обязательно закомментировать!
это принципиально

остальное в mpd.conf

        create link static L1 pppoe
        set link action bundle B1
        set auth authname "user"
        set auth password "pass"
        set link max-redial 0
        set link mtu 1492
        set link keep-alive 5 15
        set pppoe iface rl0
        open

пишем в скрипт up pppoe /usr/local/etc/mpd5/up.sh

#!/bin/sh
killall -9 natd
ipfw delete 50
natd -n ng0
ipfw add 50 divert 8668 all from any to any via ng0
route change default $4

пишем в скрипт  pppoe /usr/local/etc/mpd5/down.sh

#!/bin/sh
killall -9 natd
natd -n rl0 -dynamic
ipfw delete 50
ipfw add 50 divert natd all from any to any via rl0
route change default 192.168.1.1

Делаем скрипты исполняемыми
chmod 555 /usr/local/etc/mpd5/up.sh /usr/local/etc/mpd5/down.sh

Теперь пусть при загрузке демон natd стартует раньше чем mpd - это ничуть не помешает
mpd стартанёт, pppoe поднимется, вместе с поднятием pppoe отработает скрипт up.sh автоматом сменится и шлюз по умолчанию.

Если же mpd упадёт, pppoe завалится и всё должно будет вернуться в первозданное состояние,
default gateway также сменится на прежний.

Если mpd вновь рестартанёт - pppoe снова в up и так далее..

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

8. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 10-Фев-14, 20:06 
>[оверквотинг удален]
> Делаем скрипты исполняемыми
> chmod 555 /usr/local/etc/mpd5/up.sh /usr/local/etc/mpd5/down.sh
> Теперь пусть при загрузке демон natd стартует раньше чем mpd - это
> ничуть не помешает
> mpd стартанёт, pppoe поднимется, вместе с поднятием pppoe отработает скрипт up.sh автоматом
> сменится и шлюз по умолчанию.
> Если же mpd упадёт, pppoe завалится и всё должно будет вернуться в
> первозданное состояние,
> default gateway также сменится на прежний.
> Если mpd вновь рестартанёт - pppoe снова в up и так далее..

Спасибо за ответ :) Но в моем случае все наоборот :)))) Был сначала один провайдер с выделенным мне IP. Но он часто падает, подключился к другому, он PPPoE. Провайдера с статическим IP решили оставить как запасной вариант.Основной соединяет по PPPoE. Запасной выделяет статический IP. PPPoE поднимается с помощью mpd4 (ng11)- работает.
Решил переключение между провайдерами в случае падения сделать автоматически.
rl0  - PPPoe (Интернет)поднимает ng11
rl1  - Выделенный IP (Интернет)
1. NAT надо настроить на 2 интерфейса. ng11 и rl1.
В rc.conf добавил rc.conf
natd_enable="YES"
natd_program="/sbin/natd"
natd_flags="-f /etc/natd.conf"
В natd.conf
natd.conf
log
instance default
interface ng11
port 8668
use_sockets yes
same_ports yes
instance rl1
interface rl1
port 8669
use_sockets yes
same_ports yes
globalport 8670
Вычитал это из статьи которую нашел в инете, начал проверять, natd не стартует по причине что mpd4 пока не создал соединение ng11. Вопрос: можно ли демон mpd4 сделать так чтоб стартовал первее natd ????? Ну и скрипт нужен :)

В твоем варианте это подходило когда провайдер с статическим IP был основным, а PPPoE запасным. Может я не понял чего???? :))))


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

10. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от михалыч (ok) on 10-Фев-14, 20:26 
Так и я про то..))
pppoe (ng) - это как раз таки основной канал
в случае падения оного, переходим на статику, на резервный канал,
как только ng вновь поднимается, переключаемся автоматом, без всякого пингования

поставьте вместо mpd4 лучше mpd5

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

11. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 10-Фев-14, 20:31 
> Так и я про то..))
> pppoe (ng) - это как раз таки основной канал
> в случае падения оного, переходим на статику, на резервный канал,
> как только ng вновь поднимается, переключаемся автоматом, без всякого пингования
> поставьте вместо mpd4 лучше mpd5

У тебя до начала загрузки mpd4 (PPPoE) будет сначала резервный канал подключатся, на пару сек:)
Немного подумав, твой вариант тоже можно реализовать. Единственное но, mpd4 может и не упасть, соединение быть, но инета нет. Сейчас попробую твой вариант.

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

13. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от михалыч (ok) on 10-Фев-14, 20:45 
>> Так и я про то..))
>> pppoe (ng) - это как раз таки основной канал
>> в случае падения оного, переходим на статику, на резервный канал,
>> как только ng вновь поднимается, переключаемся автоматом, без всякого пингования
>> поставьте вместо mpd4 лучше mpd5
> У тебя до начала загрузки mpd4 (PPPoE) будет сначала резервный канал подключатся,
> на пару сек:)
> Немного подумав, твой вариант тоже можно реализовать. Единственное но, mpd4 может и
> не упасть, соединение быть, но инета нет. Сейчас попробую твой вариант.

Отписал ниже.

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

9. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 10-Фев-14, 20:20 
>[оверквотинг удален]
> interface ng11
> port 8668
> use_sockets yes
> same_ports yes
> instance rl1
> interface rl1
> port 8669
> use_sockets yes
> same_ports yes
> globalport 8670

попробовал убить mpd4 (PPPoE) все рухнуло запасной так и не заработал.... Надо думать.

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

12. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от михалыч (ok) on 10-Фев-14, 20:35 
> попробовал убить mpd4 (PPPoE) все рухнуло запасной так и не заработал.... Надо
> думать.

Каким образом, что значит убить? kill чтоб не мучился что ли? ))
Вы что творите то?!
Надо штатно.
/usr/local/etc/rc.d/mpd4 stop
Потом поднимаем
/usr/local/etc/rc.d/mpd4 start

При стартанутом mpd , предположим, что ваш пров оборвал pppoe
mpd будет работать дальше, но pppoe упадет, а вместе с ним и интерфейс ng
следовательно, отработает скрипт down.sh с вытекающими последствиями.

Потом, пров опомнится, возобновит и перезапустит pppoe,
ваш mpd очухается, проснётся и перезапустит при поднятии ng скрипт up.sh
ну и шлюз с дивертом сменится соответственно

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

14. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 10-Фев-14, 21:08 
>[оверквотинг удален]
> /usr/local/etc/rc.d/mpd4 stop
> Потом поднимаем
> /usr/local/etc/rc.d/mpd4 start
> При стартанутом mpd , предположим, что ваш пров оборвал pppoe
> mpd будет работать дальше, но pppoe упадет, а вместе с ним и
> интерфейс ng
> следовательно, отработает скрипт down.sh с вытекающими последствиями.
> Потом, пров опомнится, возобновит и перезапустит pppoe,
> ваш mpd очухается, проснётся и перезапустит при поднятии ng скрипт up.sh
> ну и шлюз с дивертом сменится соответственно

Огромное спс за подробные комментария!!! Буду пребывать, вы далеко не уходите из темы :))))

мой mpd.conf
PPPoE:
        new PPPoE PPPoE
        set iface route default
        set iface disable on-demand
        set iface idle 0
        set ipcp yes vjcomp
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0
        set bundle disable multilink
        set auth authname MyLogin
        set link no acfcomp protocomp
        set link disable pap chap
        set link accept chap
        set link keep-alive 10 60
        open

просто вы написали:
create link static L1 pppoe
set link action bundle B1

это обязательно и что это?:)


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

15. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от михалыч (ok) on 10-Фев-14, 21:17 
>[оверквотинг удален]
>         set link disable pap
> chap
>         set link accept chap
>         set link keep-alive 10
> 60
>         open
> просто вы написали:
> create link static L1 pppoe
> set link action bundle B1
> это обязательно и что это?:)

это относится к конфигу mpd5 а у вас mpd4 (я уже советовал перейти на 5 версию)
но и с 4 всё будет работать
строку set iface route default закомментировать не забудьте
проверяйте работу up/down скриптов выдёргиванием кабеля из сетевой карты, а не убийством mpd

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

16. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 10-Фев-14, 21:52 
>[оверквотинг удален]
>> просто вы написали:
>> create link static L1 pppoe
>> set link action bundle B1
>> это обязательно и что это?:)
> это относится к конфигу mpd5 а у вас mpd4 (я уже советовал
> перейти на 5 версию)
> но и с 4 всё будет работать
> строку set iface route default закомментировать не забудьте
> проверяйте работу up/down скриптов выдёргиванием кабеля из сетевой карты, а не убийством
> mpd

скрипты работают, еще раз огромное спасибо! завтра кабель буду kill :))) Риторический вопрос про mpd5 - в моем случае в сравнение с mpd4. И еще, так как резервный провайдер Лимитка, и в случае падения основного, это не заметят пользователи скачивая что то - просто сожрут трафик, можно ли что то с этим придумать? Видел в скриптах отправка на почту сообщения, но я так понимаю на freebsd должна почта настроена - или ? :)

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

17. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от михалыч (ok) on 11-Фев-14, 06:43 
> Риторический вопрос про mpd5 - в моем случае в сравнение с mpd4.
> И еще, так как резервный провайдер Лимитка, и в случае падения
> основного, это не заметят пользователи скачивая что то - просто сожрут
> трафик, можно ли что то с этим придумать? Видел в скриптах
> отправка на почту сообщения, но я так понимаю на freebsd должна
> почта настроена - или ? :)

Да, mpd5 лучше чем mpd4, а nat лучше чем natd.
Разработчики не стоЯт на месте, как правило, новые версии софта лучше, быстрее, сильнее (олимпиада, блин ))
Старые версии софта оправданы на старом оборудовании, где свежий дистр не вкатить (памяти мало, проц слабоват)
К примеру, берём фрю 4.11 и ставим её на слабенькое железо, вот там и будет только mpd3(даже не 4) и natd
А где есть возможность переёти на свежак - это лучше сделать, производительнее будет, ошибок меньше, всяких плюшек/фишек больше и т.д.

По трафику. Его "сжиранию" ))
Можно пользователям крылышки-то подрезать, скорость уменьшить.
Всем или избранным, к примеру. Особо избранных и вовсе от кормушки отодвинуть ))

Считать трафик. Я не знаю как у вас реализовано с провом-статикой.
В минус можете залезть или вас отрубит?
Если можете залезть, то попадёте на "бабки".
Чтобы этого не произошло, чтобы не перебрать, нужно обязательно считать трафик на входящем интерфейсе (можно через ipcad - есть в портах) и отрубать в нужный момент.

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

18. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 11-Фев-14, 17:56 
>[оверквотинг удален]
> По трафику. Его "сжиранию" ))
> Можно пользователям крылышки-то подрезать, скорость уменьшить.
> Всем или избранным, к примеру. Особо избранных и вовсе от кормушки отодвинуть
> ))
> Считать трафик. Я не знаю как у вас реализовано с провом-статикой.
> В минус можете залезть или вас отрубит?
> Если можете залезть, то попадёте на "бабки".
> Чтобы этого не произошло, чтобы не перебрать, нужно обязательно считать трафик на
> входящем интерфейсе (можно через ipcad - есть в портах) и отрубать
> в нужный момент.

Привет! Приехал в офис, выдернул провод, через минуту переключился на резервный, вставляю провод заново, и тишина. Mpd запущена, но не хочет PPPoe поднимать, если вручную рестарт mpd делаю, то переключается. До этого иногда mpd подвисал, с другими провайдерами. В cron */1        *       *       *       *       root    /sbin/ping -q -c 1 -t 1 8.8.8.8|| /usr/local/etc/rc.d/mpd4 restart ставил. В данной ситуации поменял 8.8.8.8 на IP PPPoE - работает. Может есть еще вариант? Или это mpd4 так ведет? Mpd5 хочу поставить ты не замечал того что тунель не хочет поднимать?

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

19. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от михалыч (ok) on 12-Фев-14, 06:47 
> Или это mpd4 так ведет? Mpd5 хочу
> поставить ты не замечал того что тунель не хочет поднимать?

У меня с 4 mpd было подобное, с 5 практически нет (за крайне редким исключением).
Обновитесь.
Разрабы улучшают производительность, функционал, убирают старые баги ( и добавляют новые)) )
В любом случае вы ничего не теряете.
Конфиг pppoe в 5 гораздо проще, всё в одном файле. Я его как пример привёл выше.

Такая схема с переключением успешно опробированна и работает.

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

20. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 12-Фев-14, 21:12 
>[оверквотинг удален]
>> поставить ты не замечал того что тунель не хочет поднимать?
> У меня с 4 mpd было подобное, с 5 практически нет (за
> крайне редким исключением).
> Обновитесь.
> Разрабы улучшают производительность, функционал, убирают старые баги ( и добавляют новые))
> )
> В любом случае вы ничего не теряете.
> Конфиг pppoe в 5 гораздо проще, всё в одном файле. Я его
> как пример привёл выше.
> Такая схема с переключением успешно опробированна и работает.

Михалыч!!!! :))) Короче перевел один сервак на mpd5. PPPoE заработал, интернет есть, завтра попробую провод выдернуть, гляну как будет подниматься.... Единственная просьба, у меня в mpd4 был поднят PPTP_server: тут он совершенно по другому, мой старый конфиг не заработал. Если есть возможность помочь, в очередной раз, буду благодарен.... По VPN мне очень нужен для сотрудников.....

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

21. "2 Nat (PPPoE + stat ip) PPPoE не старует."  +/
Сообщение от Free_Man email(ok) on 12-Фев-14, 22:29 
>[оверквотинг удален]
>> поставить ты не замечал того что тунель не хочет поднимать?
> У меня с 4 mpd было подобное, с 5 практически нет (за
> крайне редким исключением).
> Обновитесь.
> Разрабы улучшают производительность, функционал, убирают старые баги ( и добавляют новые))
> )
> В любом случае вы ничего не теряете.
> Конфиг pppoe в 5 гораздо проще, всё в одном файле. Я его
> как пример привёл выше.
> Такая схема с переключением успешно опробированна и работает.

Михалыч!!!! :))) Короче перевел один сервак на mpd5. PPPoE заработал, интернет есть, завтра попробую провод выдернуть, гляну как будет подниматься.... Единственная просьба, у меня в mpd4 был поднят PPTP_server: тут он совершенно по другому, мой старый конфиг не заработал. Если есть возможность помочь, в очередной раз, буду благодарен.... По VPN мне очень нужен для сотрудников.....

Конфиг нашел в инете, в принципе он клонируется на многих сайтах.....
тут: http://www.ussr.kiev.ua/ru/FreeBSD-Windows
раньше у меня в mpd4 было без шифрования, в mpd5 отключил, регистрация компа в сети и ошибка 734

ВОБЩЕМ ХЗ....званого конфиг перебил и все заработало.... Завтра провод буду дергать, VPN работает. Если не ошибаюсь то переключалка быстро срабатывает тут.... Еще раз спасибо, завтра отпишусь.
P.S. Конфиг по сравнению с предыдущими стал до безобразия удобным и компактным :)


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

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

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




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

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