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