mpd & pppoe

From
Alex Bakhtin (2:5020/400)
To
All (2:5054/37.63)
Date
2006-12-09T13:50:52Z
Area
RU.UNIX.BSD
From: Alex Bakhtin <bakhtin@amt.ru>

Привет.

        Продолжаем хождение по граблям. Пытаюсь запустить mpd в качестве
pppoe клиента. Настроил, все работает. Но после перезагрузки mpd не хочет
поднимать pppoe до тех пор, пока не запустить разок это же соединение через
ppp. Говорит:
=================
[stream] device: OPEN event in state DOWN
[stream] can't connect bypass,link0 and ste3:orphans,mpd2066-stream: No
such file or directory
[stream] can't remove hook mpd2066-stream from node "ste3:orphans": No such
file or directory
[stream] device is now in state OPENING
=================

Собственно, ngctl в это время ничего на ste3 не показывает:

==================
There are 14 total nodes:
  Name: <unnamed>       Type: socket          ID: 0000000f   Num hooks: 0
  Name: <unnamed>       Type: vjc             ID: 0000000e   Num hooks: 4
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  vjip            mpd2066-stream  ppp          0000000c        vjc_vjip
  vjuncomp        mpd2066-stream  ppp          0000000c        vjc_vjuncomp
  vjcomp          mpd2066-stream  ppp          0000000c        vjc_vjcomp
  ip              mpd2066-stream  ppp          0000000c        vjc_ip
  Name: <unnamed>       Type: bpf             ID: 0000000d   Num hooks: 3
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  mpd             <unnamed>       socket       00000009        demand
  iface           ng1             iface        0000000b        inet
  ppp             mpd2066-stream  ppp          0000000c        inet
  Name: mpd2066-stream  Type: ppp             ID: 0000000c   Num hooks: 6
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  vjc_vjip        <unnamed>       vjc          0000000e        vjip
  vjc_vjuncomp    <unnamed>       vjc          0000000e        vjuncomp
  vjc_vjcomp      <unnamed>       vjc          0000000e        vjcomp
  vjc_ip          <unnamed>       vjc          0000000e        ip
  inet            <unnamed>       bpf          0000000d        ppp
  bypass          <unnamed>       socket       00000009        bypass
  Name: ng1             Type: iface           ID: 0000000b   Num hooks: 1
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  inet            <unnamed>       bpf          0000000d        iface
  Name: ng0             Type: iface           ID: 0000000a   Num hooks: 0
  Name: <unnamed>       Type: socket          ID: 00000009   Num hooks: 2
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  demand          <unnamed>       bpf          0000000d        mpd
  bypass          mpd2066-stream  ppp          0000000c        bypass
  Name: ngctl2055       Type: socket          ID: 00000008   Num hooks: 0
  Name: fxp0            Type: ether           ID: 00000006   Num hooks: 0
  Name: xl0             Type: ether           ID: 00000005   Num hooks: 0
  Name: ste3            Type: ether           ID: 00000004   Num hooks: 0
  Name: ste2            Type: ether           ID: 00000003   Num hooks: 0
  Name: ste1            Type: ether           ID: 00000002   Num hooks: 0
  Name: ste0            Type: ether           ID: 00000001   Num hooks: 0
==================

        После запуска ppp (он соединяется успешно) картинка кардинально меняется:
=================
+ list -l
There are 10 total nodes:
  Name: <unnamed>       Type: pppoe           ID: 00000011   Num hooks: 2
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  tun0            <unnamed>       socket       00000010        tun0
  ethernet        ste3            ether        00000004        orphans
  Name: <unnamed>       Type: socket          ID: 00000010   Num hooks: 1
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  tun0            <unnamed>       pppoe        00000011        tun0
  Name: ng0             Type: iface           ID: 0000000a   Num hooks: 0
  Name: ngctl2055       Type: socket          ID: 00000008   Num hooks: 0
  Name: fxp0            Type: ether           ID: 00000006   Num hooks: 0
  Name: xl0             Type: ether           ID: 00000005   Num hooks: 0
  Name: ste3            Type: ether           ID: 00000004   Num hooks: 1
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  orphans         <unnamed>       pppoe        00000011        ethernet
  Name: ste2            Type: ether           ID: 00000003   Num hooks: 0
  Name: ste1            Type: ether           ID: 00000002   Num hooks: 0
  Name: ste0            Type: ether           ID: 00000001   Num hooks: 0
=================

        Видно, что ppp создал требуемый orphans на ste3, после выхода из
ppp этот хук не пропадает:

=================
There are 9 total nodes:
  Name: <unnamed>       Type: pppoe           ID: 00000011   Num hooks: 1
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  ethernet        ste3            ether        00000004        orphans
  Name: ng0             Type: iface           ID: 0000000a   Num hooks: 0
  Name: ngctl2055       Type: socket          ID: 00000008   Num hooks: 0
  Name: fxp0            Type: ether           ID: 00000006   Num hooks: 0
  Name: xl0             Type: ether           ID: 00000005   Num hooks: 0
  Name: ste3            Type: ether           ID: 00000004   Num hooks: 1
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  orphans         <unnamed>       pppoe        00000011        ethernet
  Name: ste2            Type: ether           ID: 00000003   Num hooks: 0
  Name: ste1            Type: ether           ID: 00000002   Num hooks: 0
  Name: ste0            Type: ether           ID: 00000001   Num hooks: 0
=================

        И дальше mpd корректно работает через него:

=================
+ list -l
There are 15 total nodes:
  Name: <unnamed>       Type: socket          ID: 00000017   Num hooks: 0
  Name: <unnamed>       Type: vjc             ID: 00000016   Num hooks: 4
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  vjip            mpd2304-stream  ppp          00000014        vjc_vjip
  vjuncomp        mpd2304-stream  ppp          00000014        vjc_vjuncomp
  vjcomp          mpd2304-stream  ppp          00000014        vjc_vjcomp
  ip              mpd2304-stream  ppp          00000014        vjc_ip
  Name: <unnamed>       Type: bpf             ID: 00000015   Num hooks: 3
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  mpd             <unnamed>       socket       00000012        demand
  iface           ng1             iface        00000013        inet
  ppp             mpd2304-stream  ppp          00000014        inet
  Name: mpd2304-stream  Type: ppp             ID: 00000014   Num hooks: 7
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  link0           <unnamed>       pppoe        00000011
  mpd2304-stream
  vjc_vjip        <unnamed>       vjc          00000016        vjip
  vjc_vjuncomp    <unnamed>       vjc          00000016        vjuncomp
  vjc_vjcomp      <unnamed>       vjc          00000016        vjcomp
  vjc_ip          <unnamed>       vjc          00000016        ip
  inet            <unnamed>       bpf          00000015        ppp
  bypass          <unnamed>       socket       00000012        bypass
  Name: ng1             Type: iface           ID: 00000013   Num hooks: 1
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  inet            <unnamed>       bpf          00000015        iface
  Name: <unnamed>       Type: socket          ID: 00000012   Num hooks: 2
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  demand          <unnamed>       bpf          00000015        mpd
  bypass          mpd2304-stream  ppp          00000014        bypass
  Name: <unnamed>       Type: pppoe           ID: 00000011   Num hooks: 2
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  mpd2304-stream  mpd2304-stream  ppp          00000014        link0
  ethernet        ste3            ether        00000004        orphans
  Name: ng0             Type: iface           ID: 0000000a   Num hooks: 0
  Name: ngctl2055       Type: socket          ID: 00000008   Num hooks: 0
  Name: fxp0            Type: ether           ID: 00000006   Num hooks: 0
  Name: xl0             Type: ether           ID: 00000005   Num hooks: 0
  Name: ste3            Type: ether           ID: 00000004   Num hooks: 1
  Local hook      Peer name       Peer type    Peer ID         Peer hook
  ----------      ---------       ---------    -------         ---------
  orphans         <unnamed>       pppoe        00000011        ethernet
  Name: ste2            Type: ether           ID: 00000003   Num hooks: 0
  Name: ste1            Type: ether           ID: 00000002   Num hooks: 0
  Name: ste0            Type: ether           ID: 00000001   Num hooks: 0
+
=================

        Такой расклад мне крайне не нравится, как бы научить mpd создавать
этот orphans самостоятельно?

-- 
Best regards, Alex Bakhtin, CCIE #8439
AMT Group, Cisco Systems Gold Partner, http://www.amt.ru
--- ifmail v.2.15dev5.3
 * Origin: AMT Group (2:5020/400)
SEEN-BY: 50/12 400/814 450/159 1024 461/43 132 640 469/999 4616/3 4625/8
SEEN-BY: 4641/444 5000/76 5000 5006/1 5007/1 5010/70 5011/13 5012/46 5015/28
SEEN-BY: 5019/26 5020/18 175 194 400 545 982 1057 1909 1922 2238 2395 2871
SEEN-BY: 5020/4441 5021/29 5025/3 5026/14 45 5027/12 5030/1080 1957 5034/10 13
SEEN-BY: 5035/3 38 5036/1 5045/7 5049/1 5051/15 5054/1 4 8 9 11 28 35 36 37 45
SEEN-BY: 5054/66 67 70 75 84 85 5059/9 5060/88 5061/15 5062/10 5063/3 5064/7
SEEN-BY: 5066/18 5075/5 5076/1 5077/70 5080/1003 5084/9 5085/13 5095/20
SEEN-BY: 5096/18 6001/10
PATH: 5020/400 545 5054/1 37