]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 |