Доброго времени суток.Прошу помощи, ситуация такова:
Есть два сервера под FreeBSD на одной стороне 4.5 mpd сервер, на другой 3.2(еле живой) mpd_3.18 клиент. Связанны они между собой по двум модемам мультилинком. Требуется заменить сервер 3.2 на систему допустим я пробую на 5.2.1 и настроить заного mpd клиент с мультилинком. Какую бы систему, кроме 3.2 которая сейчас используется, не ставили , происходит следующая ситуация. Начинается дозвон до другой стороны, раза с третьего он происходит (там все время синхронизация Lcp бажит я так понимаю
LCP: state change Req-Sent -->
Ack-Sent
mpd: [pptp0] LCP: SendConfigReq #5
и так раз 10 и после этого дисконнект). Но суть проблемы не в этом. Устанавливается соединение минуты на 2-5 и пропадает связь, а модемы горят, моргают. Дефалтный роут который получается при соединении пропадает... и все линк не рабочий (хотя соединение есть, интер-с показан что поднят. И что бы не делали какую бы системы не ставили (кроме 3.2, но не юзать же ее) , всегда одно и тоже.Подскажите пожалуйста чем можете :)
Заранее благодарен.
как выглядит конфиг mpd?
авторизация какая, логин скрипт и тд
>
>как выглядит конфиг mpd?
>авторизация какая, логин скрипт и тд
Так начнем - FreeBSD 5.2.1 (клиент) собрано ядро с настройками:
options NETGRAPH
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_ECHO
options NETGRAPH_CISCO
options NETGRAPH_ETHER
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_L2TP
options NETGRAPH_LMI
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_ONE2MANY
options NETGRAPH_PPP
options NETGRAPH_PPPOE
options NETGRAPH_PPTPGRE
options NETGRAPH_RFC1490
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJCMpd версии 3.18 -
mpd.conf:default:
load multi
multi:
new -i ng0 multi usr1 usr2
set iface route default
set iface disable on-demand
set iface idle 900
set bundle authname login
set bundle disable compression
set ipcp ranges 0.0.0.0/0 193.232.8.68/24
set ipcp yes vjcomp
set link disable chap pap
set link accept chap pap
set link yes acfcomp protocomp
link usr1
set modem script DialPeer
set modem var $Telephone "p29280"
link usr2
set modem script DialPeer
set modem var $Telephone "p29162"
open ifacempd.links:
usr1:
set link type modem
set modem speed 57600
set modem device /dev/cuaa0
set modem var $DialPrefix "DT"
usr2:
set link type modem
set modem speed 57600
set modem device /dev/cuaa1
set modem var $DialPrefix "DT"mpd.scripts:
DialPeer:
if $Telephone == "00000" goto DialNullModem
set $optimize $OptimizeNextTime
set $OptimizeNextTime "no"if $optimize == "yes" goto DialPeer2
call ModemFind
if $ErrorMsg == "" goto DialPeer1
log $ErrorMsg
failure
DialPeer1:
set $ModTelephone $Telephone
call ModemIdent
if $ModemDescription != "" goto DialPeer2
log "The modem is not responding."
failureDialPeer2:
log "Detected $ModemDescription."
call $ModemSetupFunc
log "Dialing server at $Telephone..."
call ModemDial
if $dialResult == "OK" goto DialPeerOK
set $optimize "no"
failureDialPeerOK:
if $ConnectionSpeed == "" log "Connected at an unknown speed."
if $ConnectionSpeed == "" goto DialPeer3
log "Connected at $ConnectionSpeed."
Ну и mpd.secrets - там логин пароль.FreeBSD 4.5 (сервер, собирал не я) в ядре просто прописанно options NETGRAPH (может из-за этого?)
mpd версия 3.6
mpd.conf:
default:
load TVC
load log-minimal
openTVC:
set login AdminLogin
new -i ng0 TVC L29280 L29162
set bundle authname TVC
set bundle enable multilink
# set iface addrs 193.232.8.68 193.232.214.1
set iface route 193.232.214.0/24
set iface route 193.232.29.0/24
set iface idle 900
set ipcp ranges 0.0.0.0/0 193.232.29.1/0
set ipcp yes vjcomp
set link no chap
set link enable pap
set link yes acfcomp protocomp
set link keep-alive 10 60
# set modem idle-script AnswerCall
log-normal:
log +bund +link +chat +lcp +auth +fsm +phys +ipcplog-minimal:
log -all +bund +link +authmpd.links:
L29162:
set link type modem
set modem device /dev/cuaa0
set modem speed 115200
set link latency 100000
set link bandwidth 33600
set modem watch -cd
set link yes acfcomp protocomp
set link no chap
set link enable pap
set modem script answer-ring
set modem var $InitString "B0M0S0=4S2=0S10=100"
set modem var $Timeout 600
L29280:
set link type modem
set modem device /dev/cuaa1
set modem speed 115200
set link latency 100000
set link bandwidth 33600
set modem watch -cd
set link yes acfcomp protocomp
set link no chap
set link enable pap
set modem script answer-ring
set modem var $InitString "B0M0S0=4S2=0S10=100"
set modem var $Timeout 600mpd.script:
answer-ring:
log "calling answer-ring..."
set $moreInit "S0=4"
call InitModem
log "waiting for ring..."
call GetRing
failure
ну и стандартный mpd.secretsРабочий конфиг с FreeBSD 3.2 (клиент) (работает не через ng а через tun)
версия mpd 1.0b5 :)
mpd.conf:
default:
load SR2
SR2:
load log-normal
set login AdminLogin
new SR1 LINE0 LINE1
set bundle authname VPK
set bundle enable multilink
# set bundle disable compression
set bundle disable bw-manage
set bundle idle 0
# set iface addrs 193.232.214.69 193.232.8.68
set iface route default
set ipcp yes vjcomp
set ipcp ranges 0.0.0.0/0 193.232.8.68/24
#set ccp yes pred1
open
mpd.links:
LINE1:
set link type modem
set link device /dev/cuaa0
set modem speed 115200
set link latency 100000
set link bandwidth 33600
set modem watch +cd
set link yes acfcomp protocomp
set link accept pap
set link no chap
set modem script direct-dial
set modem var $InitString "B1M1X7&R2&H0S10=100&N0"
set modem var $Telephone "29280"
set modem var $Timeout 600
#set ccp yes pred1
LINE0:
set link type modem
set link device /dev/cuaa1
set modem speed 115200
set link latency 100000
set link bandwidth 33600
set modem watch +cd
set link yes acfcomp protocomp
set link accept pap
set link no chap
set modem script direct-dial
set modem var $InitString "B1M1X7&R2&H0S10=100&N0"
set modem var $Telephone "29162"
set modem var $Timeout 600
#set ccp yes pred1mpd.script:
direct-dial:
if $Timeout == "" set $Timeout 50
log "initializing modem..."
set $moreInit ""
call InitModem
log "dialing peer at $Telephone..."
call DialModem
failureи mpd.secrets
обрати внимание на разницу между старым и новым клиентскими конфигамистарый конфиг / новый конфиг
----------------------------------------------------------------------
set bundle authname VPK / set bundle authname login
set login adminlogin / не установленнету / set link disable chap pap
set link accept pap / set link accept chap pap
set link no chap (disable,deny) / нетунету / set bundle disable compression
set bundle disable bw-manage / нету
set modem watch +cd / нетупо степени важности сверху-вниз (как мне кажется)
- в новом странный authname. он совпадает с тем что в mpd.secrets?
- в старом есть "set login", в новом нет (хотя мне кажется что он не нужен)
- убедись что у тебя на обоих концах работает ТОЛЬКО pap-авторизация (что-то я не очень уверен)и вообще чего-то скрипты неоправданно усложнены. может упростить попробуешь?
да и во время настройки это помогает баги искать. от простого к сложному. как заработало начинай "улучшать"-усложнять. попробуй без мультилинка, просто по одному модему. если ничего не поможет, загрузи generic ядро.
вобчем так.
Login это я просто для примера написал.
Насчет расхождений в конфиге - как вы могли заметить там стоят разные версии mpd, в связи с этим немного меняется синтаксис команд.
Насчет авторизации - врятли, ведь происходит коннект и все работает в течении неопределенного временя, потом падет.
Проверяли под разным линиям - все хорошо, глюки возникают только при поднятия мультилинка.
мне не до конца понятно о том что "все работает". т.е. клиент в течение этих 2-5 минут может монтировать диски, телнетится и тп (или никто этого не успел проверить?). может быть под "все работает" имеется в виду, что модемы перестали пищать и усиленно "моргают" в течение 2 минут, а потом связь разрывается?authname тоже для примера? его параметр совпадает с тем что в secrets находится?
кстати о различиях. отмеченные отличия не зависят от версий. set login или authname так же как и pap/chap не изменились. в одном из конфигов chap запрещен,в другом нет.
может все-таки попробовать сделать так чтобы конфиги делали одно и то же?
------
если дело в сбитой маршрутизации, и пакетики не бегают, то соединение должно разрываться ч-з 15 минут по idle (тоже кстати в старом конфиге 0, а в новом 15 мин)
-----
в старом конфиге модемам устанавливается init string. возможно это влияет на качество связи. также контролируется несущая.
-----
у меня похожая с первоначальным описанием проблема была с ppp. pap/chap авторизация. модемы соединялись, минуту-две обменивались какими-то пакетиками (моргали и по логам ppp) и благополучно разрывали связь. решилось все удалением set login и явным указанием authname и authkey в конфиге.
Спасибо огромное за советы.
По поводу о том что все работает - да - устанавливается связь, начинают пинговаться удаленные узлы, работает инет, но после некоторого времени пропадает связь, линк есть и модемы моргают и все такое...
Насчет pap chap - мне казалось строки вида:
set link disable chap pap
set link accept chap pap
позволяют использовать либо то либо то без явного отключения какого-либо метода - я не прав?
authname и authkey - думаю вопрос отпадает так как происходит соединение.в старом конфиге модемам устанавливается init string. возможно это влияет на качество связи. также контролируется несущая - можно по подробнее?
в старом конфиге:
set modem watch +cd - пасти несущую
set modem var $InitString "B1M1X7&R2&H0S10=100&N0" - строка инициализации модема. что она означает точно не могу сказать. можешь поискать список команд своего модема в интырнете. мне кажется или у тебя курьеры? или в терминалке (не иксовой, а модемной :) набрать at$ (кажется). кстати в какчестве терминалки можно попробовать старый-добрый нортон из под доса. у него есть такая штука.два параметра специально для мультилинка:
set link latency 100000
set link bandwidth 33600по идее нужен:
set link type modemесть еще какие-то. посмотри в /usr/share/doc/mpd
если коннект плохой можно попробовать уменьшить MTU/MRU. по дефолту кажется 1500, можно поставить 576
Да у меня курьеры :)
Буду пробывать.
Спасибо.
Кстати подскажите что за фигня - пробывал ставить на FreeBSD 4.5 MPD 3.18 - нефига не собирается сначала выдает:
Warning: Object directory not changed from original /usr/ports/net/mpd_3.18/work/mpd-3.18/src
cc -O -pipe -I/usr/include -DPATH_CONF_DIR=\"/usr/local/etc/mpd\" -DSYSLOG_FACILITY=LOG_DAEMON -DMPD_VERSION='"3.18 (root@sr2.vpk.ru 00:28 3-Oct-2005)"' -g -Wall -Wcast-align -Wchar-subscripts -Wformat -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wwrite-strings -DPHYSTYPE_MODEM -DPHYSTYPE_UDP -DPHYSTYPE_NG_SOCKET -DPHYSTYPE_PPTP '-DPPTP_VENDOR_NAME="FreeBSD mpd-3.18"' -DPHYSTYPE_PPPOE -DENCRYPTION_DES -DENCRYPTION_MPPE -DCOMPRESSION_MPPC -c pppoe.c
pppoe.c: In function `PppoeCtrlReadEvent':
pppoe.c:380: `NGM_PPPOE_SESSIONID' undeclared (first use in this function)
pppoe.c:380: (Each undeclared identifier is reported only once
pppoe.c:380: for each function it appears in.)
pppoe.c:381: warning: unreachable code at beginning of switch statement
pppoe.c:400: `NGM_PPPOE_ACNAME' undeclared (first use in this function)
*** Error code 1Stop in /usr/ports/net/mpd_3.18/work/mpd-3.18/src.
*** Error code 1Stop in /usr/ports/net/mpd_3.18/work/mpd-3.18.
*** Error code 1Stop in /usr/ports/net/mpd_3.18.
*** Error code 1Stop in /usr/ports/net/mpd_3.18.
*** Error code 1Stop in /usr/ports/net/mpd_3.18.
Я убираю полностью PPPoE
начинаю заного, потом вываливается ошибка с файлом console.c, ее убираю
и понеслась в одном файле в другом куча ошибок лезет. Пробывал и из портов и из сырцов... а обновить то хочется :(
Конфиги подправил, соединение происходит теперь отлично, но главная проблема так и осталась. Ставил 4.5 и мпд 3.6 как и на той стороне, переносил полностью конфиги с рабочей машины (Фря 3.1 которая) ,менял местами сервер клиент (то есть менял местами кто кому звонит и принимает звонки) ситуация ничуть не изменилась. В воскресенье поеду на площадку сервера буду ставить новую систему на другую машину и все с нуля... если не заработает тогда не знаю... застрелиться остается))
Написал разрабочикам - молчат.
IMHO незачем default router _2_ раза ...
секция мульти отыгрывает два раза ...
в качастве експеримента можно поднять без оного а потом прописать руками,
если прокатит - подставить "костыли" :)>Конфиги подправил, соединение происходит теперь отлично, но главная проблема так и осталась.
>Ставил 4.5 и мпд 3.6 как и на той стороне,
>переносил полностью конфиги с рабочей машины (Фря 3.1 которая) ,менял местами
>сервер клиент (то есть менял местами кто кому звонит и принимает
>звонки) ситуация ничуть не изменилась. В воскресенье поеду на площадку сервера
>буду ставить новую систему на другую машину и все с нуля...
>если не заработает тогда не знаю... застрелиться остается))
>Написал разрабочикам - молчат.
Большое спасибо за ответ,
Не совсем понял про default router _2_ раза - это где в конфиге
? или тот который статически прописывается на машине?
И что за костыли?:) (Прошу меня простить если туплю, но голова уже в связи с этими событиями - на протяжении уже двух недель безвылазно мучаюсь, не варит)