syncPPP.FAQ
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:8k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. simple isdn4linux PPP FAQ .. to be continued .. not 'debugged' 
  2. -------------------------------------------------------------------
  3. Q01: what's pppd, ipppd, syncPPP, asyncPPP ??
  4. Q02: error message "this system lacks PPP support"
  5. Q03: strange information using 'ifconfig'
  6. Q04: MPPP?? What's that and how can I use it ...
  7. Q05: I tried MPPP but it doesn't work 
  8. Q06: can I use asynchronous PPP encapsulation with network devices
  9. Q07: A SunISDN machine can't connect to my i4l system
  10. Q08: I wanna talk to several machines, which need different configs
  11. Q09: Starting the ipppd, I get only error messages from i4l
  12. Q10: I wanna use dynamic IP address assignment 
  13. Q11: I can't connect. How can I check where the problem is.
  14. Q12: How can I reduce login delay? 
  15. -------------------------------------------------------------------
  16. Q01: pppd, ipppd, syncPPP, asyncPPP .. what is that ?
  17.    what should I use?
  18. A: The pppd is for asynchronous PPP .. asynchronous means
  19.    here, the framing is character based. (e.g when
  20.    using ttyI* or tty* devices)
  21.    The ipppd handles PPP packets coming in HDLC
  22.    frames (bit based protocol) ... The PPP driver
  23.    in isdn4linux pushes all IP packets direct
  24.    to the network layer and all PPP protocol
  25.    frames to the /dev/ippp* device. 
  26.    So, the ipppd is a simple external network
  27.    protocol handler.
  28.    If you login into a remote machine using the
  29.    /dev/ttyI* devices and then enable PPP on the
  30.    remote terminal server -> use the 'old' pppd
  31.    If your remote side immediately starts to send
  32.    frames ... you probably connect to a 
  33.    syncPPP machine .. use the network device part
  34.    of isdn4linux with the 'syncppp' encapsulation
  35.    and make sure, that the ipppd is running and 
  36.    connected to at least one /dev/ippp*. Check the 
  37.    isdn4linux manual on how to configure a network device.
  38. --
  39. Q02: when I start the ipppd .. I only get the
  40.    error message "this system lacks PPP support"
  41. A: check that at least the device 'ippp0' exists.
  42.    (you can check this e.g with the program 'ifconfig')
  43.    The ipppd NEEDS this device under THIS name .. 
  44.    If this device doesn't exists, use:
  45. isdnctrl addif ippp0
  46. isdnctrl encap ippp0 syncppp
  47. ... (see isdn4linux doc for more) ...
  48. A: Maybe you have compiled the ipppd with another
  49.    kernel source tree than the kernel you currently
  50.    run ... 
  51. --
  52. Q03: when I list the netdevices with ifconfig I see, that
  53.    my ISDN interface has a HWaddr and IRQ=0 and Base 
  54.    address = 0 
  55. A: The device is a fake ethernet device .. ignore IRQ and baseaddr
  56.    You need the HWaddr only for ethernet encapsulation.
  57.    
  58. --
  59. Q04: MPPP?? What's that and how can I use it ...
  60. A: MPPP or MP or MPP (Warning: MP is also an 
  61.    acronym for 'Multi Processor') stands for
  62.    Multi Point to Point and means bundling
  63.    of several channels to one logical stream.
  64.    To enable MPPP negotiation you must call the
  65.    ipppd with the '+mp' option. 
  66.    You must also configure a slave device for
  67.    every additional channel. (see the i4l manual
  68.    for more)
  69.    To use channel bundling you must first activate
  70.    the 'master' or initial call. Now you can add 
  71.    the slave channels with the command:
  72.        isdnctrl addlink <device>
  73.    e.g:
  74.        isdnctrl addlink ippp0
  75.    This is different from other encapsulations of
  76.    isdn4linux! With syncPPP, there is no automatic
  77.    activation of slave devices.
  78. --
  79. Q05: I tried MPPP but it doesn't work .. the ipppd
  80.    writes in the debug log something like:
  81.    .. rcvd [0][proto=0x3d] c0 00 00 00 80 fd 01 01 00 0a ...
  82.    .. sent [0][LCP ProtRej id=0x2 00 3d c0 00 00 00 80 fd 01 ...
  83. A: you forgot to compile MPPP/RFC1717 support into the
  84.    ISDN Subsystem. Recompile with this option enabled.
  85. --
  86. Q06: can I use asynchronous PPP encapsulation
  87.    over the network interface of isdn4linux ..
  88. A: No .. that's not possible .. Use the standard
  89.    PPP package over the /dev/ttyI* devices. You
  90.    must not use the ipppd for this.
  91.    
  92. --
  93. Q07: A SunISDN machine tries to connect my i4l system,
  94.    which doesn't work.
  95.    Checking the debug log I just saw garbage like:
  96. !![ ... fill in the line ... ]!!
  97. A: The Sun tries to talk asynchronous PPP ... i4l
  98.    can't understand this ... try to use the ttyI*
  99.    devices with the standard PPP/pppd package
  100. A: (from Alexanter Strauss: )
  101. !![ ... fill in mail ]!!
  102. --
  103. Q08: I wanna talk to remote machines, which need
  104.    a different configuration. The only way
  105.    I found to do this is to kill the ipppd and
  106.    start a new one with another config to connect
  107.    to the second machine. 
  108. A: you must bind a network interface explicitly to
  109.    an ippp device, where you can connect a (for this
  110.    interface) individually configured ipppd.
  111. --
  112. Q09: When I start the ipppd I only get error messages
  113.    from the i4l driver .. 
  114. A: When starting, the ipppd calls functions which may 
  115.    trigger a network packet. (e.g gethostbyname()).
  116.    Without the ipppd (at this moment, it is not
  117.    fully started) we can't handle this network request.
  118.    Try to configure hostnames necessary for the ipppd
  119.    in your local /etc/hosts file or in a way, that
  120.    your system can resolve it without using an
  121.    isdn/ippp network-interface.
  122. --
  123. Q10: I wanna use dynamic IP address assignment ... How 
  124.    must I configure the network device.
  125. A: At least you must have a route which forwards
  126.    a packet to the ippp network-interface to trigger
  127.    the dial-on-demand.
  128.    A default route to the ippp-interface will work.
  129.    Now you must choose a dummy IP address for your
  130.    interface.
  131.    If for some reason you can't set the default
  132.    route to the ippp interface, you may take any 
  133.    address of the subnet from which you expect your
  134.    dynamic IP number and set a 'network route' for
  135.    this subnet to the ippp interface.
  136.    To allow overriding of the dummy address you
  137.    must call the ipppd with the 'ipcp-accept-local' option.
  138. A: You must know, how the ipppd gets the addresses it wanna
  139.    configure. If you don't give any option, the ipppd
  140.    tries to negotiate the local host address!
  141.    With the option 'noipdefault' it requests an address
  142.    from the remote machine. With 'useifip' it gets the
  143.    addresses from the net interface. Or you set the address
  144.    on the option line with the <a.b.c.d:e.f.g.h> option.
  145.    Note: the IP address of the remote machine must be configured
  146.    locally or the remote machine must send it in an IPCP request.
  147.    If your side doesn't know the IP address after negotiation, it
  148.    closes the connection!
  149.    You must allow overriding of address with the 'ipcp-accept-*'
  150.    options, if you have set your own or the remote address 
  151.    explicitly.
  152. A: Maybe you try these options .. e.g:   
  153.     /sbin/ipppd :$REMOTE noipdefault /dev/ippp0
  154.    where REMOTE must be the address of the remote machine (the
  155.    machine, which gives you your address)
  156. --
  157. Q11: I can't connect. How can I check where the problem is.
  158. A: A good help log is the debug output from the ipppd...
  159.    Check whether you can find there:
  160.    - only a few LCP-conf-req SENT messages (less then 10)
  161.      and then a Term-REQ:
  162.      -> check whether your ISDN card is well configured
  163.         it seems, that your machine doesn't dial
  164.         (IRQ,IO,Proto, etc problems)
  165.         Configure your ISDN card to print debug messages and
  166.         check the /dev/isdnctrl output next time. There
  167.         you can see, whether there is activity on the card/line.
  168.    - there are at least a few RECV messages in the log:
  169.      -> fine: your card is dialing and your remote machine
  170.         tries to talk with you. Maybe only a missing 
  171.         authentication. Check your ipppd configuration again.
  172.    - the ipppd exits for some reason:
  173.      -> not good ... check /var/adm/syslog and /var/adm/daemon.
  174.         Could be a bug in the ipppd.
  175. --
  176. Q12: How can I reduce login delay?
  177. A: Log a login session ('debug' log) and check which options 
  178.   your remote side rejects. Next time configure your ipppd
  179.   to not negotiate these options. Another 'side effect' is, that
  180.   this increases redundancy. (e.g your remote side is buggy and
  181.   rejects options in a wrong way).