Correct PPTP server firewall rules chain.
[tomato/davidwu.git] / release / src / router / pptp-client / Documentation / DESIGN.PPTP
blobe1cdf6ff60bb312f730c4b3d343963f4ae6a8d6e
1 pptp called as:
2  pptp hostname [[pptp options] --] [pppd options]
4 The pptp program does:
6 gethostbyname([hostname]) to get ip number.
8 Try to open unix domain socket at /var/run/pptp/ip.num.ber.here.  
9 If not found, launch call manager for that ip address.
11 Call manager opens unix domain socket at /var/run/pptp/ip.num.ber.here, does:
12   1) Open connection to the ip address using port 1723 protocol.
13   2) accept unix domain socket connection. 
14      [wait for any pptp call request to this ip]
15   3)  On receiving a connection, open CALL to ip.address using port 1723. 
16   2)  send callID over unix domain socket for gre encapsulation.
17   3)  Keepalive the socket.  When either side closes socket, send
18       call-close message to ip.address using port 1723.
19   4)  on close of last call, send connection close using port 1723, 
20       close the unix domain socket at /var/run/pptp/ip.num.ber.here,
21       and exit.
23 Once call manager is opened (fork when done to return status to parent),
24 the main process forks.
25    Parent) launch gre-copy task. Holds call manager socket.  
26    Child)  launch pppd with command-line options.
28 Killing any of the three threads should cleanly shutdown system. HOW?
29 Send pid of parent and child to call manager after fork over 
30 Unix-domain socket.
32 Alternatively pptp may be launched by pppd. One advantage is that
33 many existing tools for managing serial ppp connections can be used with
34 pptp connections as well. Another is some pppd options can only be used 
35 this way. In particular the options "persist" and "demand" may be of use.
37 Add the following option to your pppd options script:
39 pty "<insert.path.to>/pptp hostname --nolaunchpppd [--phone phone-nr]"
41 and start the connection like any other pppd connection. Note that
42 old versions of pppd may not support the pty option.
44 The following options are understood by pptp:
46 --phone phone-number
47         Specify the phone number for the connection. This is required 
48         by a number of ADSL services.
50 --nolaunchpppd
51         Needed if pptp is to be launched by pppd. See above
52         
53