The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"pppd trubles"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 08-Окт-04, 22:19  (MSK)
Привет всем!
нужна подсказка, чтобы сдвинуться с места.
настраиваю сервер dial-in (mgetty+pppd)
подключение происходит нормально и связь не разрывается, но если начинается обмен, то через минуту, максимум 3 pppd прекращает работу
и в логе mgetty.cuaa0 появляется куча мусора, вернее вся инфа, которую пихает браузер в модем (я так понимаю, что когда отваливается pppd, то весь ввод от модема принимает обратно mgetty)
В логе pppd ничего особенного нет
в options такие строки:
38400
modem
passive
ms-dns xx.xx.xx.x
ms-dns xx.xx.xx.y
auth
require-chap

pppd.log:
Oct  8 21:04:32 hmel pppd[61011]: CHAP peer authentication succeeded for test
Oct  8 21:04:32 hmel pppd[61011]: local  IP address 192.168.10.100
Oct  8 21:04:32 hmel pppd[61011]: remote IP address 192.168.10.101

подскажите, хотя бы где искать проблему

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "pppd trubles"
Сообщение от John Искать по авторуВ закладки(??) on 08-Окт-04, 22:36  (MSK)
>и в логе mgetty.cuaa0 появляется куча мусора, вернее вся инфа, которую пихает
>браузер в модем (я так понимаю, что когда отваливается pppd, то
>весь ввод от модема принимает обратно mgetty)

>подскажите, хотя бы где искать проблему

Возможно, я не прав, но начать стОит с опции nodetach

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 11-Окт-04, 16:31  (MSK)
спасибо за подсказку
включил эту опцию
связь продержалась 5 минут (тоесть дольше чем раньше)
вот кусок лога...

10/11 15:10:22 aa0   setenv: 'CONNECT=LAPM COMPRESSED'
10/11 15:10:22 aa0   setenv: 'DEVICE=cuaa0'
10/11 15:10:22 ##### data dev=cuaa0, pid=93366, caller='none', conn='LAPM COMPRESSED', name='', cmd='/usr/sbin/pppd', user='/AutoPPP/'

тут модемы еще на связи, но pppd, видимо уже упал
--
10/11 15:15:01 aa0  mgetty: experimental test release 1.1.30-Dec16
10/11 15:15:01 aa0   increasing modem_check_time to 900 sec.
10/11 15:15:01 aa0  check for lockfiles
10/11 15:15:01 aa0   checklock: no active process has lock, will remove
10/11 15:15:01 aa0  locking the line
10/11 15:15:01 aa0   makelock(cuaa0) called
10/11 15:15:01 aa0   do_makelock: lock='/var/spool/lock/LCK..cuaa0'
10/11 15:15:01 aa0   lock made
10/11 15:15:04 aa0   tio_get_rs232_lines: status: RTS CTS DSR DTR DCD
10/11 15:15:04 aa0  lowering DTR to reset Modem
10/11 15:15:05 aa0   tss: set speed to 38400 (113000)
10/11 15:15:05 aa0   tio_set_flow_control( HARD )
10/11 15:15:05 aa0   waiting for line to clear (VTIME), read:
10/11 15:15:05 aa0  send: ATS0=1Q0&D3&C1[0d]
10/11 15:15:05 aa0  waiting for ``OK''

дальше идет информационный мусор

10/11 15:15:05 aa0   got: ~/E} }#[bc]}'[f7]@} [80]})[e8][a1][c0][a8]}*e[c3][a1]w[f4]}-)} P[ef][90]f(} c}-[e5]P}8"8[dd]}/} } GET /bb.cgi?cmd=ad&pubid=2460129&pg=1&vbn=
10/11 15:15:05 aa0    CND: ~/E} }#_}'_@} _})____}*e__w_}-)} P__f(} c}-_P}8"8_}/} } GET /bb.cgi?cmd=ad&pubid=2460129&pg=1&vbn500&num=1&w=468&h=60&nocache=4272 HTTP/1.1}-}*User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windo
10/11 15:15:05 aa0    CND: 500&num=1&w=468&h=60&nocache=4272 HTTP/1.1}-}*User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Wind
10/11 15:15:05 aa0   CND: ELink caller ID: '500'ws NT 5.1) Opera 7.23  [ru]}-}*Host: ad3.bb.ru}-}*Accept: text/html, application/xml;q=0.9, applic
10/11 15:15:05 aa0    CND: ws NT 5.1) Opera 7.23  [ru]}-}*Host: ad3.bb.ru}-}*Accept: text/html, application/xml;q=0.9, appliation/xhtml+xml;q=0.9, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1}-}*Accept-Lang
10/11 15:15:05 aa0    CND: ation/xhtml+xml;q=0.9, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1}-}*Accept-Lanuage: ru, en}-}*Accept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1}-}*Accept-E
10/11 15:15:05 aa0    CND: uage: ru, en}-}*Accept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1}-}*Accept-ncoding: deflate, gzip, x-gzip, identity, *;q=0}-}*Referer: http://www.videoguide.ru/find.asp?Sear

и в конце...

10/11 15:15:25 aa0  timeout in chat script, waiting for `OK'
10/11 15:15:25 aa0  init chat timed out, trying force-init-chat
10/11 15:15:25 aa0  send: \d[10][03]\d\d\d+++\d\d\d[0d]\dATQ0V1H0[0d]
10/11 15:15:29 aa0  waiting for ``OK''
10/11 15:15:29 aa0   got: [0d]
10/11 15:15:29 aa0    CND: , identity, trailers}-}*}-}*u_~[0a]OK ** found **
10/11 15:15:29 aa0   force-init succeeded, retrying init-chat
10/11 15:15:29 aa0   waiting for line to clear (VTIME), read: [0d][0a]~!E} } @}(}(} } [80]}1vv[c0][a8]}*eQ}>[a0]}#}+[c6]} 5} ,[c0][d8]} }6}!} } }!} } } } } } }#pop}*svitonline}#com} } }!} }!v[de]~
10/11 15:15:29 aa0  send: ATS0=1Q0&D3&C1[0d]
10/11 15:15:29 aa0  waiting for ``OK''
10/11 15:15:29 aa0   got: ATS0=1Q0&D3&C1[0d]
10/11 15:15:29 aa0    CND: OKATS0=1Q0&D3&C1[0d][0a]OK ** found **
10/11 15:15:33 aa0   waiting for line to clear (VTIME), read: [0d][0a]
10/11 15:15:33 aa0   removing lock file
10/11 15:15:33 aa0  waiting...

а где-то есть описание опций для /etc/ppp/options
а то я ничего не нашел. класно было бы на русском.

еще один момент: скрипты ip-down и auth-down не запускаются

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "pppd trubles"
Сообщение от Sampan Искать по авторуВ закладки on 11-Окт-04, 19:58  (MSK)
>а где-то есть описание опций для /etc/ppp/options
man pppd

Посмотри ifconfig ppp0 какой mtu стоит на интерфейсе
Попробуй пинговать через ppp канал пакетами разного размера с ключем "не фрагментровать"
Типа
ping -s <1456|1457|....> -M <do|want|dont> -c 1  host
Как всегда, поможет man ping

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 12-Окт-04, 12:41  (MSK)
>>а где-то есть описание опций для /etc/ppp/options
>man pppd

читал, даже распечатал, но с аглицким не очень, особенно когда не знаешь что ищешь. ((

>
>Посмотри ifconfig ppp0 какой mtu стоит на интерфейсе
>Попробуй пинговать через ppp канал пакетами разного размера с ключем "не фрагментровать"
>
>Типа
>ping -s <1456|1457|....> -M <do|want|dont> -c 1  host
>Как всегда, поможет man ping

mtu 1500
но что мне пинг даст?
кстати пинги вообще не проходят, но скорее из-за брандмауэра на винде.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 12-Окт-04, 14:04  (MSK)
пинги не идут даже при отключеном брандмауэре
это, может быть моей проблемой?

маршрутизация, думаю тут ни при чем.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "pppd trubles"
Сообщение от Sampan Искать по авторуВ закладки on 12-Окт-04, 18:01  (MSK)
>mtu 1500
Обычно, у ppp интерфейсов mtu 1492

>маршрутизация, думаю тут ни при чем.
И я о том же, при чем тут маршрутизация? Речь идет о фрагментации пакетов.

>пинги не идут даже при отключеном брандмауэре
Совсем не ходят, или не ходят большого размера (>1456)?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 13-Окт-04, 17:12  (MSK)
>>mtu 1500
>Обычно, у ppp интерфейсов mtu 1492
попробовал
с 1492 или 1500 работает 2 минуты (примерно)
с 742 - 3, с 367 - 3.5
честно, я ничего не понимаю

>>маршрутизация, думаю тут ни при чем.
>И я о том же, при чем тут маршрутизация? Речь идет о
>фрагментации пакетов.
как тогда сформулировать проблему? у меня всегда примерно одинаковое время до разрыва. я думал, что отбивает какой-то таймер или заданный интервал в pppd или в mgetty
>

>>пинги не идут даже при отключеном брандмауэре
>Совсем не ходят, или не ходят большого размера (>1456)?
совсем не ходят в сторону клиента, а оттуда идут какие хош.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 13-Окт-04, 20:05  (MSK)
нашел такой вот скрипт
#!/bin/sh
while true
do
    /usr/sbin/pppd /dev/cuaa0
done &
sleep 30

он вроде бы защищает pppd от падения, но не могу понять где его прикрутить. там написано:
" Поскольку модемное соединение является самым нестабильным видом передачи данных, связь периодически может обрываться (модемы теряют несущую CD). При этом происходит “падение” демона pppd. Для того, чтобы он автоматически восстанавливал соединение необходимо в директории /etc создать скрипт start_if.ppp0"

тоесть вроде как соединение не должно разрыватся вообще???

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "pppd trubles"
Сообщение от Sampan Искать по авторуВ закладки on 14-Окт-04, 00:23  (MSK)
>тоесть вроде как соединение не должно разрыватся вообще???
Соединение все равно будет рваться. Просто этот скрипт будет автоматом поднимать упавший pppd.

Сдается мне, не в этом дело.

Мой options
ms-dns xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx:xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
silent
auth
crtscts
lock
modem
noipx
proxyarp
defaultroute
noipdefault
nomagic
lcp-echo-interval 30
lcp-echo-failure 2
require-pap
refuse-chap
asyncmap 0

Похоже, что дело в asyncmap. Предположение: в канале проскакивает последовательность, которую pppd трактует как управляющую.

А, вообще то, нужно тщательно пройтись по options. Там огромное количество дефолтовых настроек. Лучше все явно прописать, что бы не гадать какое значение у какого параметра

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "pppd trubles"
Сообщение от Sampan Искать по авторуВ закладки on 14-Окт-04, 00:30  (MSK)
Да, забыл..

Добавь временно в options
kdebug 7
debug

В логах получишь полный отчет, что происходит

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 14-Окт-04, 12:39  (MSK)
сделал как у тебя + дебуги
вот лог pppd
===================================
Oct 14 11:28:35 hmel pppd[21203]: pppd 2.3.5 started by root, uid 0
Oct 14 11:28:35 hmel pppd[21203]: Using interface ppp0
Oct 14 11:28:35 hmel pppd[21203]: Connect: ppp0 <--> /dev/cuaa0
Oct 14 11:28:38 hmel pppd[21203]: rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x27e742da> <pcomp> <accomp> <callback 0x600>]
Oct 14 11:28:38 hmel pppd[21203]: Warning - secret file /etc/ppp/pap-secrets has world and/or group access
Oct 14 11:28:38 hmel pppd[21203]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth pap> <pcomp> <accomp>]
Oct 14 11:28:38 hmel pppd[21203]: sent [LCP ConfRej id=0x2 <magic 0x27e742da> <callback 0x623>]
Oct 14 11:28:38 hmel pppd[21203]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <auth pap> <pcomp> <accomp>]
Oct 14 11:28:38 hmel pppd[21203]: rcvd [LCP ConfReq id=0x3 <asyncmap 0x0> <pcomp> <accomp>]
Oct 14 11:28:38 hmel pppd[21203]: sent [LCP ConfAck id=0x3 <asyncmap 0x0> <pcomp> <accomp>]
Oct 14 11:28:38 hmel pppd[21203]: sent [LCP EchoReq id=0x0 magic=0x0]
Oct 14 11:28:38 hmel pppd[21203]: rcvd [LCP code=0xc id=0x4 27 e7 42 da 4d 53 52 41 53 56 35 2e 31 30]
Oct 14 11:28:38 hmel pppd[21203]: sent [LCP CodeRej id=0x2 0c 04 00 12 27 e7 42 da 4d 53 52 41 53 56 35 2e 31 30]
Oct 14 11:28:38 hmel pppd[21203]: rcvd [LCP code=0xc id=0x5 27 e7 42 da 4d 53 52 41 53 2d 30 2d 54 45 43 48]
Oct 14 11:28:38 hmel pppd[21203]: sent [LCP CodeRej id=0x3 0c 05 00 14 27 e7 42 da 4d 53 52 41 53 2d 30 2d 54 45 43 48]
Oct 14 11:28:38 hmel pppd[21203]: rcvd [PAP AuthReq id=0x0 user="test" password="123"]
Oct 14 11:28:38 hmel pppd[21203]: Warning - secret file /etc/ppp/pap-secrets has world and/or group access
Oct 14 11:28:38 hmel pppd[21203]: sent [PAP AuthAck id=0x0 "Login ok"]
Oct 14 11:28:38 hmel pppd[21203]: sent [IPCP ConfReq id=0x1 <addr 192.168.1.100> <compress VJ 0f 01>]
Oct 14 11:28:38 hmel pppd[21203]: rcvd [LCP EchoRep id=0x0 magic=0x27e742da]
Oct 14 11:28:39 hmel pppd[21203]: rcvd [CCP ConfReq id=0x6 < 12 06 00 00 00 01>]
Oct 14 11:28:39 hmel pppd[21203]: sent [CCP ConfReq id=0x1]
Oct 14 11:28:39 hmel pppd[21203]: sent [CCP ConfRej id=0x6 < 12 06 00 00 00 01>]
Oct 14 11:28:39 hmel pppd[21203]: rcvd [IPCP ConfReq id=0x7 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns 0.0.0.0> <ms-wins 0.0.0.0> <ms-dns 0.0.0.0> <ms-wins 0.0.0.0>]
Oct 14 11:28:39 hmel pppd[21203]: sent [IPCP ConfRej id=0x7 <ms-wins 0.0.0.0> <ms-wins 0.0.0.0>]
Oct 14 11:28:39 hmel pppd[21203]: rcvd [IPCP ConfAck id=0x1 <addr 192.168.1.100> <compress VJ 0f 01>]
Oct 14 11:28:39 hmel pppd[21203]: rcvd [CCP ConfAck id=0x1]
Oct 14 11:28:39 hmel pppd[21203]: rcvd [CCP TermReq id=0x8"'\37777777747B\37777777732\000<\37777777715t\000\000\002\37777777734"]
Oct 14 11:28:39 hmel pppd[21203]: sent [CCP TermAck id=0x8]
Oct 14 11:28:39 hmel pppd[21203]: rcvd [IPCP ConfReq id=0x9 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns 0.0.0.0> <ms-dns 0.0.0.0>]
Oct 14 11:28:39 hmel pppd[21203]: sent [IPCP ConfNak id=0x9 <addr 192.168.1.101> <ms-dns 192.168.1.100> <ms-dns 192.168.1.100>]
Oct 14 11:28:39 hmel pppd[21203]: rcvd [IPCP ConfReq id=0xa <compress VJ 0f 01> <addr 192.168.1.101> <ms-dns 192.168.1.100> <ms-dns 192.168.1.100>]
Oct 14 11:28:39 hmel pppd[21203]: sent [IPCP ConfAck id=0xa <compress VJ 0f 01> <addr 192.168.1.101> <ms-dns 192.168.1.100> <ms-dns 192.168.1.100>]
Oct 14 11:28:39 hmel pppd[21203]: Couldn't add default route: File exists
Oct 14 11:28:39 hmel pppd[21203]: found interface rl1 for proxy arp
Oct 14 11:28:39 hmel pppd[21203]: local  IP address 192.168.1.100
Oct 14 11:28:39 hmel pppd[21203]: remote IP address 192.168.1.101
Oct 14 11:28:42 hmel pppd[21203]: sent [CCP ConfReq id=0x1]
Oct 14 11:28:42 hmel pppd[21203]: rcvd [CCP TermAck id=0x1]
Oct 14 11:28:42 hmel pppd[21203]: sent [CCP TermReq id=0x2"No compression negotiated"]
Oct 14 11:28:42 hmel pppd[21203]: rcvd [CCP TermAck id=0x2"No compression negotiated"]
Oct 14 11:29:38 hmel pppd[21203]: sent [LCP EchoReq id=0x1 magic=0x0]
Oct 14 11:29:38 hmel pppd[21203]: rcvd [LCP EchoRep id=0x1 magic=0x27e742da]
=====================================================
в логе mgetty ничего не поменялось
я вижу только defaultroute но эту опцию я отключаю
посмотри, может тебе что-то будет понятно, а то я ничего тут не понимаю
(вернее не могу найти причину отключения)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "pppd trubles"
Сообщение от Sampan Искать по авторуВ закладки on 14-Окт-04, 13:19  (MSK)
>Oct 14 11:28:38 hmel pppd[21203]: Warning - secret file /etc/ppp/pap-secrets has world and/or group access
Подправь доступ, что бы pppd не ругался

>Oct 14 11:28:39 hmel pppd[21203]: rcvd [IPCP ConfReq id=0x7 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns 0.0.0.0> <ms-wins 0.0.0.0> <ms-dns 0.0.0.0> <ms-wins 0.0.0.0>]

>Oct 14 11:28:42 hmel pppd[21203]: rcvd [CCP TermAck id=0x2"No compression negotiated"]

Выключи на сервере всю компрессию. Клиент, все равно, ее не поддерживает
В options:
noaccomp
noccp
nobsdcomp
nodeflate
nopcomp
novj
novjccomp

Добавь в options
maxfail 0
Это количество неудачных соединений, после которого pppd умирает. По умолчанию это значение равно 10. "0" означает, что никогда.

>(вернее не могу найти причину отключения)
Из этих логов причина отключения не видна. Что происходит, когда pppd умирает?


  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 14-Окт-04, 14:51  (MSK)
>Подправь доступ, что бы pppd не ругался
это не причина

>Добавь в options
>maxfail 0
ты имел ввиду lcp-max-failure
тогда наверное надо прописывать и lcp-restart ?

>Из этих логов причина отключения не видна. Что происходит, когда pppd умирает?

поставил рядом два тайла mgetty.cuaa0 и pppd.log
и увидел, что во время соединения начинается новая сессия mgetty
после неудачного доступа к девайсу посылает строку
send: \d[10][03]\d\d\d+++\d\d\d[0d]\dATQ0V1H0[0d]
и только тогда обрывается связь
мне подсказали, что причина может быть в том, что
mgetty и pppd свои lock-файлы ложат в разные места.
думаю, что в этом есть здравый смысл.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 14-Окт-04, 18:43  (MSK)
проблема возродилась с новой силой, но в другом облике ))
Но теперь, то известна причина.
mgetty запускается initом и, не обращая внимания на блокировки pppd
прекращает работу модема и блокирует под себя снова
попытался изменить его поведение ключем force-init-chat AT,
но это не помогает: pppd продолжает работать, но данные из порта
сыплются в лог mgetty.cuaa0 и, хотя связь и не обрывается, обмена нет.
при попытке отключить mgetty вручную (vi /etc/ttys & kill -1 1) падает pppd
чтобы не забредать далеко формулирую вопрос:
как заставить mgetty видеть работающий pppd (тоесть его лок-файл)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 14-Окт-04, 19:01  (MSK)
процесс pppd всетаки прекращается (mgetty его убивает) хотя в логе ничего нет.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 14-Окт-04, 21:29  (MSK)
в файле /usr/ports/comms/mgetty+sendfax/work/mgetty-1.1.30/locks.c нашел такие строки

    if ((kill(pid, 0) == FAIL) && errno == ESRCH)
    {
        lprintf(L_NOISE, "checklock: no active process has lock, will remove")
        (void) unlink(name);
        return NO_LOCK;
    }
    lprintf(L_NOISE, "lockfile found, pid=%d", pid );
    return pid;

но дальше ступор

  Рекомендовать в FAQ | Cообщить модератору | Наверх

17. "pppd trubles"
Сообщение от Admin_badmin emailИскать по авторуВ закладки on 19-Окт-04, 16:27  (MSK)
Наконец-то я его одолел!
Правда переставил pppd(скачал последний порт)
ниже привожу /etc/ppp/options

ms-dns xxx.xxx.xxx.xxx
netmask 255.255.255.255
auth
crtscts
lock
modem
proxyarp
passive
login
nodefaultroute
nomagic
nodetach
noaccomp
noccp
nobsdcomp
nodeflate
nopcomp
novj
novjccomp
lcp-echo-interval 30
lcp-max-failure 0
asyncmap 0
debug

пока проверил с одним модемом, если будут проблеммы - напишу сюда

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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