Usage Notes

pptp is started as a psuedo-tty child process using pppd's pty option:

	pppd call provider [pppd-options] \
	pty "/usr/sbin/pptp hostname --nolaunchpppd [pptp-options]"

where hostname is the host name or IP address of the PPTP server.

pptp can also start pppd itself:

	pptp hostname [pptp-options] [pppd-options]

Note the unusual order of arguments, the hostname comes before the
pptp options, and the pppd options come last.

So, for example:

	pptp my.pptp.host debug name cananian \
	remotename ntdialup 172.18.0.2:172.18.0.3

	route add -net 172.18.0.0 netmask 255.255.0.0 gw 172.18.0.3

You will see three pptp-related processes in your process list: a call
manager, a GRE/PPP en/decapsulator, and pppd.  To shut down the pptp
connection, kill the pppd process.

NOTE THAT PPTP MUST BE RUN AS ROOT.  This is so that it can generate
GRE packets using a raw socket.

Most trouble with pptp will probably be due to incorrect pppd
configuration.  Be sure you thoroughly understand MS-CHAP support in
pppd.  Use the 'debug' option to pppd to log connection information;
this will help you trouble-shoot the pppd side of pptp.

See the project web site for diagnosis assistance.

QUIRKS HANDLING:

Some ADSL providers and some ADSL hardware are buggy or not conforming
to the RFC, and require special handling.  To this end, pptp supports
a 'quirks' mechanism.  Currently, only '--quirks BEZEQ_ISRAEL' is
defined, for connecting to Bezeq (the Israeli phone company) ADSL
service.

Only *some* of the equipment used by Bezeq needs this option, but even
the equipment that does not need it works fine with it.  If you use
Bezeq, you probably want the '--quirks BEZEQ_ISRAEL' switch.

More information on Bezeq's ADSL service can be found at
http://vipe.technion.il/~mulix/adsl-howto.txt and
http://damyen.technion.ac.il/~dani/adsl-howto.txt.

TESTING MULTIPLE TUNNELS:

For testing of PPTP servers, the client can be used to establish
multiple tunnels from multiple IP addresses.  The addresses must be
routable; this is something you'd do on a local area network.

1. use an address pool on a concentrator.

2. write an ip-up script (e.g. /etc/ppp/ip-up.local or /etc/ppp/ip-up.d)

	#!/bin/sh
	export PATH=/sbin:/usr/sbin:/bin:/usr/bin
	REALDEVICE=$1
	PEERADDR=$6
	ifconfig ${REALDEVICE} dstaddr ${PEERADDR}

The script performs an "ifconfig pppx dstaddr xx.xx.xx.xx" where
xx.xx.xx.xx is the private address of the concentrator so that the
routing works without having to do iptables or ipchains.  The address
used is given on the pptp command line.

3. create distinct source interfaces with:

        ifconfig eth0:n xx.xx.xx.xx netmask yy.yy.yy.yy 

Where "n" is the alias interface number, "xx.xx.xx.xx" is the new
address, and "yy.yy.yy.yy" is the network mask.

4. connect with

	pptp concentrator --bind xx.xx.xx.xx name \
        xx remotename yy ipparam yy.yy.yy.yy 
                                       ^ (private address of concentrator).

Where "xx.xx.xx.xx" is the address of the source interface, "xx" is
the local name of the tunnel, "yy" is the remote name of the tunnel,
and "yy.yy.yy.yy" is the private address of the concentrator.  This is
passed to the ip-up script as the sixth argument.

See also the following test scripts;

test-multiple-tunnels-1.sh  creates multiple source interfaces
test-multiple-tunnels-2.sh  creates multiple tunnels

$Id: USING,v 1.6 2003/02/15 04:32:50 quozl Exp $	
