Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PPPD(8)			    System Manager's Manual		       PPPD(8)

NAME
       pppd - Point to Point Protocol daemon

SYNOPSIS
       pppd [ tty_name ] [ speed ] [ options ]

DESCRIPTION
       The  Point-to-Point  Protocol  (PPP) provides a method for transmitting
       datagrams over serial point-to-point links.  PPP	is composed  of	 three
       parts:  a  method for encapsulating datagrams over serial links,	an ex-
       tensible	Link Control Protocol (LCP), and a family of  Network  Control
       Protocols  (NCP)	 for  establishing  and	configuring different network-
       layer protocols.

       The encapsulation scheme	is provided by	driver	code  in  the  kernel.
       Pppd provides the basic LCP, authentication support, and	an NCP for es-
       tablishing and configuring the Internet Protocol	(IP)  (called  the  IP
       Control Protocol, IPCP).

FREQUENTLY USED	OPTIONS
       _tty_name_
	      Communicate  over	 the  named  device.   The  string  "/dev/" is
	      prepended	if necessary.  If no device name is given, or  if  the
	      name  of	the terminal connected to the standard input is	given,
	      pppd will	use that terminal, and will not	fork to	put itself  in
	      the  background.	This option is privileged if the noauth	option
	      is used.

       _speed_
	      Set the baud rate	to <speed> (a  decimal	number).   On  systems
	      such as 4.4BSD and NetBSD, any speed can be specified, providing
	      that it is supported by the serial device	driver.	 Other systems
	      (e.g. SunOS, Linux) allow	only a limited set of speeds.

       active-filter filter-expression
	      Specifies	 a  packet filter to be	applied	to data	packets	to de-
	      termine which packets are	to be regarded as link	activity,  and
	      therefore	 reset the idle	timer, or cause	the link to be brought
	      up in demand-dialling mode.  This	option is useful  in  conjunc-
	      tion with	the idle option	if there are packets being sent	or re-
	      ceived regularly over the	link (for example, routing information
	      packets)	which  would  otherwise	prevent	the link from ever ap-
	      pearing to be idle.  The	filter-expression  syntax  is  as  de-
	      scribed  for  tcpdump(1),	except that qualifiers which are inap-
	      propriate	for a PPP link,	such as	ether and arp, are not permit-
	      ted.  Generally the filter expression should be enclosed in sin-
	      gle-quotes to prevent whitespace in the  expression  from	 being
	      interpreted  by  the  shell.  This option	only available if both
	      the kernel and pppd were compiled	with PPP_FILTER	defined.

       asyncmap	_map_
	      Set the async character map to <map>.  This map describes	 which
	      control  characters cannot be successfully received over the se-
	      rial line.  Pppd will ask	the peer to send these characters as a
	      2-byte  escape  sequence.	  The  argument	is a 32	bit hex	number
	      with each	 bit  representing  a  character  to  escape.	Bit  0
	      (00000001) represents the	character 0x00;	bit 31 (80000000) rep-
	      resents the character 0x1f or ^_.	 If multiple asyncmap  options
	      are  given, the values are ORed together.	 If no asyncmap	option
	      is given,	no async character map will be negotiated for the  re-
	      ceive direction; the peer	should then escape all control charac-
	      ters.  To	escape transmitted characters, use the escape option.

       auth   Require the peer to authenticate itself before allowing  network
	      packets to be sent or received.

       call name
	      Read  options  from the file /etc/ppp/peers/name.	 This file may
	      contain privileged options, such as noauth, even if pppd is  not
	      being  run by root.  The name string may not begin with /	or in-
	      clude .. as a pathname component.	 The  format  of  the  options
	      file is described	below.

       connect script
	      Use  the	executable or shell command specified by script	to set
	      up the serial line.  This	script would typically use the chat(8)
	      program  to  dial	 the  modem  and start the remote ppp session.
	      This option is privileged	if the noauth option is	used.

       connect-max-attempts _n_
	      Attempt dial-out connection to remote system no more than	speci-
	      fied  number  of	times (default = 1).  If the connection	is not
	      made, pppd will exit.  Requires that persist has been specified.

       crtscts
	      Use hardware flow	control	(i.e. RTS/CTS) to control the flow  of
	      data  on	the  serial  port.   If	 neither  the  crtscts nor the
	      nocrtscts	option is given, the hardware flow control setting for
	      the serial port is left unchanged.

       defaultroute
	      Add a default route to the system	routing	tables,	using the peer
	      as the gateway, when IPCP	negotiation is successfully completed.
	      This  entry  is removed when the PPP connection is broken.  This
	      option is	privileged if the nodefaultroute option	has been spec-
	      ified.

       disconnect script
	      Run  the	executable  or shell command specified by script after
	      pppd has terminated the link.  This script could,	 for  example,
	      issue  commands  to the modem to cause it	to hang	up if hardware
	      modem control signals were not available.	 The disconnect	script
	      is  not  run  if	the modem has already hung up.	This option is
	      privileged if the	noauth option is used.

       escape xx,yy,...
	      Specifies	that certain characters	should be escaped on transmis-
	      sion (regardless of whether the peer requests them to be escaped
	      with its async control character map).  The characters to	be es-
	      caped  are  specified as a list of hex numbers separated by com-
	      mas.  Note that almost any character can be  specified  for  the
	      escape option, unlike the	asyncmap option	which only allows con-
	      trol characters to be specified.	The characters which  may  not
	      be escaped are those with	hex values 0x20	- 0x3f or 0x5e.

       file name
	      Read  options  from  file	 name (the format is described below).
	      The file must be readable	by the user who	has invoked pppd.

       lock   Specifies	that pppd should create	a UUCP-style lock file for the
	      serial device to ensure exclusive	access to the device.

       mru n  Set  the	MRU  [Maximum Receive Unit] value to n.	 Pppd will ask
	      the peer to send packets of no more than n bytes.	  The  minimum
	      MRU  value  is  128.  The	default	MRU value is 1500.  A value of
	      296 is recommended for slow links	(40 bytes for TCP/IP header  +
	      256 bytes	of data).

       mtu n  Set the MTU [Maximum Transmit Unit] value	to n.  Unless the peer
	      requests a smaller value via MRU negotiation, pppd will  request
	      that  the	 kernel	 networking  code send data packets of no more
	      than n bytes through the PPP network interface.

       passive
	      Enables the "passive" option in the LCP.	With this option, pppd
	      will  attempt  to	initiate a connection; if no reply is received
	      from the peer, pppd will then just wait passively	 for  a	 valid
	      LCP  packet from the peer, instead of exiting, as	it would with-
	      out this option.

OPTIONS
       _local_IP_address_:_remote_IP_address_
	      Set the local and/or remote interface IP addresses.  Either  one
	      may  be  omitted.	 The IP	addresses can be specified with	a host
	      name or in decimal dot notation (e.g. 150.234.56.78).   The  de-
	      fault local address is the (first) IP address of the system (un-
	      less the noipdefault option is given).  The remote address  will
	      be obtained from the peer	if not specified in any	option.	 Thus,
	      in simple	cases, this option is not required.  If	a local	and/or
	      remote  IP  address is specified with this option, pppd will not
	      accept a different value from the	peer in	the IPCP  negotiation,
	      unless  the  ipcp-accept-local and/or ipcp-accept-remote options
	      are given, respectively.

       bsdcomp nr,nt
	      Request that the peer compress packets that it sends, using  the
	      BSD-Compress  scheme,  with  a maximum code size of nr bits, and
	      agree to compress	packets	sent to	the peer with a	 maximum  code
	      size  of	nt  bits.   If nt is not specified, it defaults	to the
	      value given for nr.  Values in the range 9 to 15 may be used for
	      nr  and  nt;  larger  values give	better compression but consume
	      more kernel memory for compression dictionaries.	Alternatively,
	      a	 value	of  0  for nr or nt disables compression in the	corre-
	      sponding direction.  Use nobsdcomp or bsdcomp 0 to disable  BSD-
	      Compress compression entirely.

       callback	phone_number
	      Request a	call-back to the phone_number.	This only works	if the
	      peer is speaking the Call	Back Configuration Protocol.   Do  not
	      put  this	into the main options file if you sometimes connect to
	      servers that don't support it.

       chap-interval n
	      If this option is	given, pppd will rechallenge the peer every  n
	      seconds.

       chap-max-challenge n
	      Set the maximum number of	CHAP challenge transmissions to	n (de-
	      fault 10).

       chap-restart n
	      Set the CHAP restart interval (retransmission timeout for	 chal-
	      lenges) to n seconds (default 3).

       debug  Enables  connection  debugging  facilities.   If	this option is
	      given, pppd will log the contents	of all control packets sent or
	      received	in  a  readable	 form.	The packets are	logged through
	      syslog with facility daemon and level debug.   This  information
	      can  be directed to a file by setting up /etc/syslog.conf	appro-
	      priately (see syslog.conf(5)).

       default-asyncmap
	      Disable asyncmap negotiation, forcing all	control	characters  to
	      be escaped for both the transmit and the receive direction.

       default-mru
	      Disable  MRU  [Maximum Receive Unit] negotiation.	 With this op-
	      tion, pppd will use the default MRU value	of 1500	bytes for both
	      the transmit and receive direction.

       deflate nr,nt
	      Request  that the	peer compress packets that it sends, using the
	      Deflate scheme, with a maximum window size of 2**nr  bytes,  and
	      agree to compress	packets	sent to	the peer with a	maximum	window
	      size of 2**nt bytes.  If nt is not specified, it defaults	to the
	      value given for nr.  Values in the range 8 to 15 may be used for
	      nr and nt; larger	values give  better  compression  but  consume
	      more kernel memory for compression dictionaries.	Alternatively,
	      a	value of 0 for nr or nt	disables  compression  in  the	corre-
	      sponding	direction.   Use nodeflate or deflate 0	to disable De-
	      flate compression	entirely.  (Note: pppd requests	 Deflate  com-
	      pression	in  preference	to BSD-Compress	if the peer can	do ei-
	      ther.)

       demand Initiate the link	only on	demand,	 i.e.  when  data  traffic  is
	      present.	With this option, the remote IP	address	must be	speci-
	      fied by the user on the command line  or	in  an	options	 file.
	      Pppd will	initially configure the	interface and enable it	for IP
	      traffic without connecting to the	peer.  When traffic is	avail-
	      able, pppd will connect to the peer and perform negotiation, au-
	      thentication, etc.  When this is completed, pppd	will  commence
	      passing data packets (i.e., IP packets) across the link.

	      The demand option	implies	the persist option.  If	this behaviour
	      is not desired, use the nopersist	option after  the  demand  op-
	      tion.   The idle and holdoff options are also useful in conjunc-
	      tion with	the demand option.

       domain d
	      Append the domain	name d to the local host name for  authentica-
	      tion  purposes.	For example, if	gethostname() returns the name
	      porsche,	 but   the   fully   qualified	  domain    name    is
	      porsche.Quotron.COM, you could specify domain Quotron.COM.  Pppd
	      would then use the name porsche.Quotron.COM for looking  up  se-
	      crets  in	 the  secrets file, and	as the default name to send to
	      the peer when authenticating itself to the peer.	This option is
	      privileged.

       holdoff n
	      Specifies	how many seconds to wait before	re-initiating the link
	      after it terminates.  This option	only has  any  effect  if  the
	      persist or demand	option is used.	 The holdoff period is not ap-
	      plied if the link	was terminated because it was idle.

       idle n Specifies	that pppd should disconnect if the link	is idle	for  n
	      seconds.	 The  link is idle when	no data	packets	(i.e. IP pack-
	      ets) are being sent or received.	Note: it is not	 advisable  to
	      use  this	 option	with the persist option	without	the demand op-
	      tion.  If	the active-filter option is given, data	packets	 which
	      are  rejected by the specified activity filter also count	as the
	      link being idle.

       ipcp-accept-local
	      With this	option,	pppd will accept the peer's idea of our	 local
	      IP address, even if the local IP address was specified in	an op-
	      tion.

       ipcp-accept-remote
	      With this	option,	pppd will accept the peer's idea of  its  (re-
	      mote) IP address,	even if	the remote IP address was specified in
	      an option.

       ipcp-max-configure n
	      Set the maximum number of	IPCP  configure-request	 transmissions
	      to n (default 10).

       ipcp-max-failure	n
	      Set  the	maximum	 number	of IPCP	configure-NAKs returned	before
	      starting to send configure-Rejects instead to n (default 10).

       ipcp-max-terminate n
	      Set the maximum number of	IPCP  terminate-request	 transmissions
	      to n (default 3).

       ipcp-restart n
	      Set the IPCP restart interval (retransmission timeout) to	n sec-
	      onds (default 3).

       ipparam string
	      Provides an extra	parameter to the ip-up	and  ip-down  scripts.
	      If this option is	given, the string supplied is given as the 6th
	      parameter	to those scripts.

       ipx    Enable the IPXCP and IPX protocols.  This	 option	 is  presently
	      only  supported  under  Linux,  and only if your kernel has been
	      configured to include IPX	support.

       ipx-network n
	      Set the IPX network number in the	IPXCP configure	request	 frame
	      to  n, a hexadecimal number (without a leading 0x).  There is no
	      valid default.  If this option is	 not  specified,  the  network
	      number is	obtained from the peer.	 If the	peer does not have the
	      network number, the IPX protocol will not	be started.

       ipx-node	n:m
	      Set the IPX node numbers.	 The two node  numbers	are  separated
	      from  each  other	with a colon character.	 The first number n is
	      the local	node number.  The second number	m is the  peer's  node
	      number.	Each  node  number is a	hexadecimal number, at most 10
	      digits long.  The	 node  numbers	on  the	 ipx-network  must  be
	      unique.  There is	no valid default.  If this option is not spec-
	      ified then the node numbers are obtained from the	peer.

       ipx-router-name _string_
	      Set the name of the router.  This	is a string and	is sent	to the
	      peer as information data.

       ipx-routing n
	      Set  the	routing	 protocol to be	received by this option.  More
	      than one instance	of ipx-routing may be specified.   The	'none'
	      option (0) may be	specified as the only instance of ipx-routing.
	      The values may be	0 for NONE, 2 for RIP/SAP, and 4 for NLSP.

       ipxcp-accept-local
	      Accept the peer's	NAK for	the node number	specified in the  ipx-
	      node  option.  If	a node number was specified, and non-zero, the
	      default is to insist that	the value be  used.   If  you  include
	      this  option then	you will permit	the peer to override the entry
	      of the node number.

       ipxcp-accept-network
	      Accept the peer's	NAK for	the network number  specified  in  the
	      ipx-network option.  If a	network	number was specified, and non-
	      zero, the	default	is to insist that the value be used.   If  you
	      include  this  option  then you will permit the peer to override
	      the entry	of the node number.

       ipxcp-accept-remote
	      Use the peer's network number specified in the configure request
	      frame.  If a node	number was specified for the peer and this op-
	      tion was not specified, the peer will be forced to use the value
	      which you	have specified.

       ipxcp-max-configure n
	      Set  the	maximum	number of IPXCP	configure request frames which
	      the system will send to n.  The default is 10.

       ipxcp-max-failure n
	      Set the maximum number of	IPXCP NAK frames which the local  sys-
	      tem  will	send before it rejects the options.  The default value
	      is 3.

       ipxcp-max-terminate n
	      Set the maximum number of	IPXCP terminate	request	frames	before
	      the  local  system  considers  that the peer is not listening to
	      them.  The default value is 3.

       kdebug n
	      Enable debugging code in the kernel-level	PPP driver.  The argu-
	      ment  n  is a number which is the	sum of the following values: 1
	      to enable	general	debug messages,	2 to request that the contents
	      of  received  packets be printed,	and 4 to request that the con-
	      tents of transmitted packets be printed.	On most	systems,  mes-
	      sages printed by the kernel are logged by	syslog(1) to a file as
	      directed in the /etc/syslog.conf configuration file.

       lcp-echo-failure	n
	      If this option is	given, pppd will presume the peer to  be  dead
	      if  n  LCP  echo-requests	are sent without receiving a valid LCP
	      echo-reply.  If this happens, pppd will  terminate  the  connec-
	      tion.  Use of this option	requires a non-zero value for the lcp-
	      echo-interval parameter.	This option can	be used	to enable pppd
	      to  terminate  after  the	 physical  connection  has been	broken
	      (e.g., the modem has hung	up) in situations  where  no  hardware
	      modem control lines are available.

       lcp-echo-interval n
	      If  this	option	is  given,  pppd will send an LCP echo-request
	      frame to the peer	every n	seconds.  Normally the peer should re-
	      spond to the echo-request	by sending an echo-reply.  This	option
	      can be used with the lcp-echo-failure option to detect that  the
	      peer is no longer	connected.

       lcp-max-configure n
	      Set the maximum number of	LCP configure-request transmissions to
	      n	(default 10).

       lcp-max-failure n
	      Set the maximum number of	 LCP  configure-NAKs  returned	before
	      starting to send configure-Rejects instead to n (default 10).

       lcp-max-terminate n
	      Set the maximum number of	LCP terminate-request transmissions to
	      n	(default 3).

       lcp-restart n
	      Set the LCP restart interval (retransmission timeout) to n  sec-
	      onds (default 3).

       local  Don't  use the modem control lines.  With	this option, pppd will
	      ignore the state of the CD (Carrier Detect) signal from the  mo-
	      dem  and	will  not  change  the state of	the DTR	(Data Terminal
	      Ready) signal.

       login  Use the system password database for authenticating the peer us-
	      ing PAP, and record the user in the system wtmp file.  Note that
	      the peer must have an entry in the /etc/ppp/pap-secrets file  as
	      well as the system password database to be allowed access.

       maxconnect n
	      Terminate	 the connection	when it	has been available for network
	      traffic for n seconds (i.e. n seconds after  the	first  network
	      control protocol comes up).

       modem  Use  the modem control lines.  This option is the	default.  With
	      this option, pppd	will wait for the CD (Carrier  Detect)	signal
	      from  the	 modem	to  be asserted	when opening the serial	device
	      (unless a	connect	script is specified), and it will drop the DTR
	      (Data Terminal Ready) signal briefly when	the connection is ter-
	      minated and before executing the	connect	 script.   On  Ultrix,
	      this  option  implies  hardware flow control, as for the crtscts
	      option.

       ms-dns _addr_
	      If pppd is acting	as a server  for  Microsoft  Windows  clients,
	      this  option  allows  pppd to supply one or two DNS (Domain Name
	      Server) addresses	to the clients.	 The first  instance  of  this
	      option  specifies	 the  primary DNS address; the second instance
	      (if given) specifies the secondary DNS  address.	 (This	option
	      was  present  in some older versions of pppd under the name dns-
	      addr.)

       ms-wins _addr_
	      If pppd is acting	as a server for	Microsoft Windows  or  "Samba"
	      clients, this option allows pppd to supply one or	two WINS (Win-
	      dows Internet Name Services) server addresses  to	 the  clients.
	      The first	instance of this option	specifies the primary WINS ad-
	      dress; the second	instance (if given)  specifies	the  secondary
	      WINS address.

       name name
	      Set  the name of the local system	for authentication purposes to
	      name.  This is a privileged option.  With	this option, pppd will
	      use  lines  in  the  secrets files which have name as the	second
	      field when looking for a secret to  use  in  authenticating  the
	      peer.  In	addition, unless overridden with the user option, name
	      will be used as the name to send to the peer when	authenticating
	      the  local  system to the	peer.  (Note that pppd does not	append
	      the domain name to name.)

       netmask n
	      Set the interface	netmask	to n, a	32  bit	 netmask  in  "decimal
	      dot"  notation  (e.g.  255.255.255.0).  If this option is	given,
	      the value	specified is ORed with the default netmask.   The  de-
	      fault  netmask  is  chosen based on the negotiated remote	IP ad-
	      dress; it	is the appropriate network mask	for the	class  of  the
	      remote  IP address, ORed with the	netmasks for any non point-to-
	      point network interfaces in the system which  are	 on  the  same
	      network.

       noaccomp
	      Disable Address/Control compression in both directions (send and
	      receive).

       noauth Do not require the peer to authenticate itself.  This option  is
	      privileged if the	auth option is specified in /etc/ppp/options.

       nobsdcomp
	      Disables	BSD-Compress  compression;  pppd  will	not request or
	      agree to compress	packets	using the BSD-Compress scheme.

       noccp  Disable CCP (Compression Control	Protocol)  negotiation.	  This
	      option  should  only  be	required if the	peer is	buggy and gets
	      confused by requests from	pppd for CCP negotiation.

       nocrtscts
	      Disable hardware flow control (i.e. RTS/CTS) on the serial port.
	      If  neither  the	crtscts	nor the	nocrtscts option is given, the
	      hardware flow control setting for	the serial port	 is  left  un-
	      changed.

       nodefaultroute
	      Disable  the  defaultroute option.  The system administrator who
	      wishes to	prevent	users from creating default routes  with  pppd
	      can do so	by placing this	option in the /etc/ppp/options file.

       nodeflate
	      Disables	Deflate	compression; pppd will not request or agree to
	      compress packets using the Deflate scheme.

       nodetach
	      Don't detach from	the controlling	terminal.   Without  this  op-
	      tion, if a serial	device other than the terminal on the standard
	      input is specified,  pppd	 will  fork  to	 become	 a  background
	      process.

       noip   Disable  IPCP  negotiation  and  IP  communication.  This	option
	      should only be required if the peer is buggy and	gets  confused
	      by requests from pppd for	IPCP negotiation.

       noipdefault
	      Disables the default behaviour when no local IP address is spec-
	      ified, which is to determine (if possible) the local IP  address
	      from the hostname.  With this option, the	peer will have to sup-
	      ply the local IP address	during	IPCP  negotiation  (unless  it
	      specified	explicitly on the command line or in an	options	file).

       noipx  Disable the IPXCP	and IPX	protocols.  This option	should only be
	      required if the peer is buggy and	gets confused by requests from
	      pppd for IPXCP negotiation.

       nomagic
	      Disable magic number negotiation.	 With this option, pppd	cannot
	      detect a looped-back line.  This option should only be needed if
	      the peer is buggy.

       nopcomp
	      Disable  protocol	 field compression negotiation in both the re-
	      ceive and	the transmit direction.

       nopersist
	      Exit once	a connection has been made and	terminated.   This  is
	      the  default unless the persist or demand	option has been	speci-
	      fied.

       nopredictor1
	      Do not accept or agree to	Predictor-1 compression.

       noproxyarp
	      Disable the  proxyarp  option.   The  system  administrator  who
	      wishes  to  prevent  users  from creating	proxy ARP entries with
	      pppd can do so by	placing	this option  in	 the  /etc/ppp/options
	      file.

       novj   Disable Van Jacobson style TCP/IP	header compression in both the
	      transmit and the receive direction.

       novjccomp
	      Disable the connection-ID	compression  option  in	 Van  Jacobson
	      style  TCP/IP  header  compression.  With	this option, pppd will
	      not omit the connection-ID byte  from  Van  Jacobson  compressed
	      TCP/IP headers, nor ask the peer to do so.

       papcrypt
	      Indicates	 that  all  secrets  in	 the /etc/ppp/pap-secrets file
	      which are	used for checking the identity of  the	peer  are  en-
	      crypted,	and  thus pppd should not accept a password which, be-
	      fore  encryption,	 is  identical	to   the   secret   from   the
	      /etc/ppp/pap-secrets file.

       pap-max-authreq n
	      Set the maximum number of	PAP authenticate-request transmissions
	      to n (default 10).

       pap-restart n
	      Set the PAP restart interval (retransmission timeout) to n  sec-
	      onds (default 3).

       pap-timeout n
	      Set the maximum time that	pppd will wait for the peer to authen-
	      ticate itself with PAP to	n seconds (0 means no limit).

       pass-filter filter-expression
	      Specifies	a packet filter	to applied to data packets being  sent
	      or  received  to	determine  which  packets should be allowed to
	      pass.  Packets which are rejected	by  the	 filter	 are  silently
	      discarded.   This	option can be used to prevent specific network
	      daemons (such as routed) using up	link bandwidth,	or to  provide
	      a	basic firewall capability.  The	filter-expression syntax is as
	      described	for tcpdump(1),	except that qualifiers which are inap-
	      propriate	for a PPP link,	such as	ether and arp, are not permit-
	      ted.  Generally the filter expression should be enclosed in sin-
	      gle-quotes  to  prevent  whitespace in the expression from being
	      interpreted by the shell.	 Note that it  is  possible  to	 apply
	      different	constraints to incoming	and outgoing packets using the
	      inbound and outbound qualifiers.	This option is currently  only
	      available	 under	NetBSD,	 and  then only	if both	the kernel and
	      pppd were	compiled with PPP_FILTER defined.

       persist
	      Do not exit after	a connection is	terminated; instead try	to re-
	      open the connection.

       predictor1
	      Request  that  the peer compress frames that it sends using Pre-
	      dictor-1 compression, and	agree to compress  transmitted	frames
	      with Predictor-1 if requested.  This option has no effect	unless
	      the kernel driver	supports Predictor-1 compression.

       proxyarp
	      Add an entry to this system's ARP	[Address Resolution  Protocol]
	      table  with  the IP address of the peer and the Ethernet address
	      of this system.  This will have the effect of  making  the  peer
	      appear to	other systems to be on the local ethernet.

       remotename name
	      Set  the	assumed	 name  of the remote system for	authentication
	      purposes to name.

       refuse-chap
	      With this	option,	pppd will not agree to authenticate itself  to
	      the peer using CHAP.

       refuse-pap
	      With  this option, pppd will not agree to	authenticate itself to
	      the peer using PAP.

       require-chap
	      Require the peer to authenticate itself  using  CHAP  [Challenge
	      Handshake	Authentication Protocol] authentication.

       require-pap
	      Require  the peer	to authenticate	itself using PAP [Password Au-
	      thentication Protocol] authentication.

       silent With this	option,	pppd will not transmit LCP packets to initiate
	      a	 connection until a valid LCP packet is	received from the peer
	      (as for the `passive' option with	ancient	versions of pppd).

       usehostname
	      Enforce the use of the hostname (with domain name	 appended,  if
	      given)  as  the name of the local	system for authentication pur-
	      poses (overrides the name	option).

       user name
	      Sets the name used for authenticating the	local  system  to  the
	      peer to name.

       vj-max-slots n
	      Sets the number of connection slots to be	used by	the Van	Jacob-
	      son TCP/IP header	compression and	decompression code to n, which
	      must be between 2	and 16 (inclusive).

       welcome script
	      Run  the	executable or shell command specified by script	before
	      initiating PPP negotiation, after	the connect  script  (if  any)
	      has  completed.	This option is privileged if the noauth	option
	      is used.

       xonxoff
	      Use software flow	control	(i.e. XON/XOFF)	to control the flow of
	      data on the serial port.

OPTIONS	FILES
       Options	can  be	 taken	from  files as well as the command line.  Pppd
       reads  options  from   the   files   /etc/ppp/options,	~/.ppprc   and
       /etc/ppp/options.ttyname	 (in that order) before	processing the options
       on the command line.  (In fact, the command-line	options	are scanned to
       find  the  terminal  name before	the options.ttyname file is read.)  In
       forming the name	of the options.ttyname file, the initial /dev/ is  re-
       moved  from  the	 terminal name,	and any	remaining / characters are re-
       placed with dots.

       An options file is parsed into a	series of words, delimited  by	white-
       space.	Whitespace  can	be included in a word by enclosing the word in
       double-quotes (").  A backslash (\) quotes the following	character.   A
       hash  (#)  starts a comment, which continues until the end of the line.
       There is	no restriction on using	the file or call options within	an op-
       tions file.

SECURITY
       pppd provides system administrators with	sufficient access control that
       PPP access to a server machine can  be  provided	 to  legitimate	 users
       without	fear of	compromising the security of the server	or the network
       it's on.	 In part this is provided by the /etc/ppp/options file,	 where
       the  administrator can place options to restrict	the ways in which pppd
       can be used, and	in part	by the PAP and CHAP secrets files,  where  the
       administrator  can  restrict  the  set of IP addresses which individual
       users may use.

       The normal way that pppd	should be set up is to have the	auth option in
       the  /etc/ppp/options  file.  (This may become the default in later re-
       leases.)	 If users wish to use pppd to dial out to a  peer  which  will
       refuse  to  authenticate	itself (such as	an internet service provider),
       the  system  administrator  should  create  an	options	  file	 under
       /etc/ppp/peers  containing  the	noauth	option,	the name of the	serial
       port to use, and	the connect option (if required), plus any  other  ap-
       propriate options.  In this way,	pppd can be set	up to allow non-privi-
       leged users to make unauthenticated connections only to trusted peers.

       As indicated above, some	 security-sensitive  options  are  privileged,
       which  means  that  they	 may not be used by an ordinary	non-privileged
       user running a setuid-root pppd,	either on the  command	line,  in  the
       user's ~/.ppprc file, or	in an options file read	using the file option.
       Privileged options may be used in /etc/ppp/options file or  in  an  op-
       tions  file  read  using	 the call option.  If pppd is being run	by the
       root user, privileged options can be used without restriction.

AUTHENTICATION
       Authentication is the process whereby one peer convinces	the  other  of
       its  identity.	This  involves	the first peer sending its name	to the
       other, together with some kind of secret	information which  could  only
       come  from  the	genuine	 authorized user of that name.	In such	an ex-
       change, we will call the	first peer the	"client"  and  the  other  the
       "server".   The	client has a name by which it identifies itself	to the
       server, and the server also has a name by which it identifies itself to
       the  client.  Generally the genuine client shares some secret (or pass-
       word) with the server, and authenticates	 itself	 by  proving  that  it
       knows  that secret.  Very often,	the names used for authentication cor-
       respond to the internet hostnames of the	peers, but this	is not	essen-
       tial.

       At  present,  pppd  supports two	authentication protocols: the Password
       Authentication Protocol (PAP) and the Challenge	Handshake  Authentica-
       tion  Protocol  (CHAP).	PAP involves the client	sending	its name and a
       cleartext password to the server	to authenticate	itself.	 In  contrast,
       the  server  initiates  the  CHAP  authentication exchange by sending a
       challenge to the	client (the challenge  packet  includes	 the  server's
       name).  The client must respond with a response which includes its name
       plus a hash value derived from the shared secret	and the	challenge,  in
       order to	prove that it knows the	secret.

       The  PPP	 protocol, being symmetrical, allows both peers	to require the
       other to	authenticate itself.  In that case, two	separate and  indepen-
       dent  authentication exchanges will occur.  The two exchanges could use
       different authentication	protocols, and in principle,  different	 names
       could be	used in	the two	exchanges.

       The default behaviour of	pppd is	to agree to authenticate if requested,
       and to not require authentication from the peer.	  However,  pppd  will
       not  agree  to authenticate itself with a particular protocol if	it has
       no secrets which	could be used to do so.

       Pppd  stores  secrets  for  use	in  authentication  in	secrets	 files
       (/etc/ppp/pap-secrets  for  PAP,	/etc/ppp/chap-secrets for CHAP).  Both
       secrets files have the same format.  The	secrets	files can contain  se-
       crets  for  pppd	 to  use in authenticating itself to other systems, as
       well as secrets for pppd	to use when authenticating  other  systems  to
       itself.

       Each  line  in  a  secrets file contains	one secret.  A given secret is
       specific	to a particular	combination of client and server - it can only
       be  used	 by  that  client to authenticate itself to that server.  Thus
       each line in a secrets file has at least	3  fields:  the	 name  of  the
       client,	the  name  of the server, and the secret.  These fields	may be
       followed	by a list of the IP addresses that the	specified  client  may
       use when	connecting to the specified server.

       A  secrets  file	 is  parsed  into words	as for an options file,	so the
       client name, server name	and secrets fields must	each be	one word, with
       any embedded spaces or other special characters quoted or escaped.  Any
       following words on the same line	are taken to be	a list	of  acceptable
       IP  addresses  for  that	 client, or an override	for "local:remote" ad-
       dresses (the same format	used on	the command line  or  in  the  options
       file)  when on a	line that contains a specific client name (not a wild-
       card nor	empty).	 If there are only 3 words on  the  line,  or  if  the
       first  word is "-", then	all IP addresses are disallowed.  To allow any
       address,	use "*".  A word starting with "!" indicates that  the	speci-
       fied  address is	not acceptable.	 An address may	be followed by "/" and
       a number	n, to indicate a whole subnet, i.e. all	addresses  which  have
       the  same value in the most significant n bits.	Note that case is sig-
       nificant	in the client and server names and in the secret.

       If the secret starts with an `@', what follows is  assumed  to  be  the
       name  of	 a file	from which to read the secret.	A "*" as the client or
       server name matches any name.  When selecting a secret, pppd takes  the
       best match, i.e.	 the match with	the fewest wildcards.

       Thus  a	secrets	 file  contains	both secrets for use in	authenticating
       other hosts, plus secrets which we use for authenticating ourselves  to
       others.	 When  pppd  is	 authenticating	 the peer (checking the	peer's
       identity), it chooses a secret with the peer's name in the first	 field
       and  the	name of	the local system in the	second field.  The name	of the
       local system defaults to	the hostname, with the domain name appended if
       the  domain  option  is	used.  This default can	be overridden with the
       name option, except when	the usehostname	option is used.

       When pppd is choosing a secret to use in	authenticating itself  to  the
       peer,  it first determines what name it is going	to use to identify it-
       self to the peer.  This name can	be specified by	the user with the user
       option.	 If  this option is not	used, the name defaults	to the name of
       the local system, determined as described in  the  previous  paragraph.
       Then  pppd looks	for a secret with this name in the first field and the
       peer's name in the second field.	 Pppd will know	the name of  the  peer
       if  CHAP	 authentication	is being used, because the peer	will have sent
       it in the challenge packet.  However, if	PAP is being used,  pppd  will
       have  to	 determine  the	 peer's	name from the options specified	by the
       user.  The user can specify the peer's name directly with  the  remote-
       name  option.   Otherwise,  if the remote IP address was	specified by a
       name (rather than in numeric form), that	 name  will  be	 used  as  the
       peer's name.  Failing that, pppd	will use the null string as the	peer's
       name.

       When authenticating the peer with PAP, the supplied password  is	 first
       compared	 with  the  secret  from  the  secrets	file.  If the password
       doesn't match the secret, the password is encrypted using  crypt()  and
       checked	against	the secret again.  Thus	secrets	for authenticating the
       peer can	be stored in encrypted form if desired.	 If the	 papcrypt  op-
       tion  is	given, the first (unencrypted) comparison is omitted, for bet-
       ter security.

       Furthermore, if the login option	was specified, the username and	 pass-
       word  are also checked against the system password database.  Thus, the
       system administrator can	set up the pap-secrets file to allow  PPP  ac-
       cess  only  to  certain	users, and to restrict the set of IP addresses
       that each user can use.	Typically, when	using the  login  option,  the
       secret  in /etc/ppp/pap-secrets would be	"", which will match any pass-
       word supplied by	the peer.  This	avoids the need	to have	the  same  se-
       cret in two places.

       Additional  checks are performed	when the login option is used.	If the
       file /etc/ppp/ppp.deny exists, and the user is listed in	 it,  the  au-
       thentication  fails.   If  the  file /etc/ppp/ppp.shells	exists and the
       user's normal login shell is not	listed,	the authentication fails.

       Authentication must be satisfactorily completed	before	IPCP  (or  any
       other  Network  Control	Protocol)  can be started.  If the peer	is re-
       quired to authenticate itself, and fails	to do so, pppd will terminated
       the  link  (by closing LCP).  If	IPCP negotiates	an unacceptable	IP ad-
       dress for the remote host, IPCP will be closed.	IP packets can only be
       sent or received	when IPCP is open.

       In some cases it	is desirable to	allow some hosts which can't authenti-
       cate themselves to connect and use one of a restricted set  of  IP  ad-
       dresses,	 even  when  the local host generally requires authentication.
       If the peer refuses to authenticate itself when requested,  pppd	 takes
       that  as	 equivalent  to	authenticating with PAP	using the empty	string
       for the username	and password.  Thus, by	adding a line to  the  pap-se-
       crets  file  which  specifies the empty string for the client and pass-
       word, it	is possible to allow restricted	access to hosts	 which	refuse
       to authenticate themselves.

ROUTING
       When  IPCP  negotiation is completed successfully, pppd will inform the
       kernel of the local and remote IP  addresses  for  the  ppp  interface.
       This  is	 sufficient  to	 create	 a host	route to the remote end	of the
       link, which will	enable the peers to exchange IP	 packets.   Communica-
       tion  with  other  machines  generally requires further modification to
       routing tables and/or ARP (Address  Resolution  Protocol)  tables.   In
       most  cases the defaultroute and/or proxyarp options are	sufficient for
       this,  but  in  some  cases  further  intervention  is  required.   The
       /etc/ppp/ip-up script can be used for this.

       Sometimes  it  is  desirable  to	add a default route through the	remote
       host, as	in the case of a machine whose only connection to the Internet
       is  through  the	ppp interface.	The defaultroute option	causes pppd to
       create such a default route when	IPCP comes up, and delete it when  the
       link is terminated.

       In some cases it	is desirable to	use proxy ARP, for example on a	server
       machine connected to a LAN, in order to allow other hosts  to  communi-
       cate with the remote host.  The proxyarp	option causes pppd to look for
       a network interface on the same subnet as the remote host (an interface
       supporting  broadcast  and ARP, which is	up and not a point-to-point or
       loopback	interface).  If	found, pppd creates a permanent, published ARP
       entry  with  the	IP address of the remote host and the hardware address
       of the network interface	found.

       When the	demand option is used, the interface IP	addresses have already
       been set	at the point when IPCP comes up.  If pppd has not been able to
       negotiate the same addresses that it used to  configure	the  interface
       (for  example  when the peer is an ISP that uses	dynamic	IP address as-
       signment), pppd has to change the interface IP addresses	to the negoti-
       ated  addresses.	 This may disrupt existing connections,	and the	use of
       demand dialling with peers that do dynamic IP address assignment	is not
       recommended.

EXAMPLES
       The  following  examples	assume that the	/etc/ppp/options file contains
       the auth	option (as in the default /etc/ppp/options  file  in  the  ppp
       distribution).

       Probably	 the  most  common use of pppd is to dial out to an ISP.  This
       can be done with	a command such as

	      pppd call	isp

       where the /etc/ppp/peers/isp file is set	up by the system administrator
       to contain something like this:

	      ttyS0 19200 crtscts
	      connect '/usr/sbin/chat -v -f /etc/ppp/chat-isp'
	      noauth

       In  this	 example,  we  are  using  chat	to dial	the ISP's modem	and go
       through any logon sequence required.  The /etc/ppp/chat-isp  file  con-
       tains  the  script used by chat;	it could for example contain something
       like this:

	      ABORT "NO	CARRIER"
	      ABORT "NO	DIALTONE"
	      ABORT "ERROR"
	      ABORT "NO	ANSWER"
	      ABORT "BUSY"
	      ABORT "Username/Password Incorrect"
	      "" "at"
	      OK "at&d0&c1"
	      OK "atdt2468135"
	      "name:" "^Umyuserid"
	      "word:" "\qmypassword"
	      "ispts" "\q^Uppp"
	      "~-^Uppp-~"

       See the chat(8) man page	for details of chat scripts.

       Pppd can	also be	used to	provide	a dial-in ppp service for  users.   If
       the  users  already have	login accounts,	the simplest way to set	up the
       ppp service is to let the users log in to their accounts	and  run  pppd
       (installed setuid-root) with a command such as

	      pppd proxyarp

       To  allow  a user to use	the PPP	facilities, you	need to	allocate an IP
       address for that	user's machine and create an entry in /etc/ppp/pap-se-
       crets  or  /etc/ppp/chap-secrets	 (depending  on	 which	authentication
       method the PPP implementation on	the user's machine supports), so  that
       the  user's machine can authenticate itself.  For example, if Joe has a
       machine called "joespc" which is	to be allowed to dial in  to  the  ma-
       chine  called  "server" and use the IP address joespc.my.net, you would
       add an entry like this  to  /etc/ppp/pap-secrets	 or  /etc/ppp/chap-se-
       crets:

	      joespc	server	  "joe's secret" joespc.my.net

       Alternatively,  you  can	 create	a username called (for example)	"ppp",
       whose login shell is pppd and whose home	directory  is  /etc/ppp.   Op-
       tions  to be used when pppd is run this way can be put in /etc/ppp/.pp-
       prc.

       If your serial connection is any	more complicated than a	piece of wire,
       you  may	need to	arrange	for some control characters to be escaped.  In
       particular, it is often useful to escape	XON (^Q) and XOFF (^S),	 using
       asyncmap	a0000.	If the path includes a telnet, you probably should es-
       cape ^] as well (asyncmap 200a0000).  If	the path includes  an  rlogin,
       you  will  need to use the escape ff option on the end which is running
       the rlogin client, since	many rlogin implementations are	not  transpar-
       ent; they will remove the sequence [0xff, 0xff, 0x73, 0x73, followed by
       any 8 bytes] from the stream.

DIAGNOSTICS
       Messages	are sent to  the  syslog  daemon  using	 facility  LOG_DAEMON.
       (This  can  be overriden	by recompiling pppd with the macro LOG_PPP de-
       fined as	the desired facility.)	In order to see	the  error  and	 debug
       messages,  you  will  need to edit your /etc/syslog.conf	file to	direct
       the messages to the desired output device or file.

       The debug option	causes the contents of all control packets sent	or re-
       ceived to be logged, that is, all LCP, PAP, CHAP	or IPCP	packets.  This
       can be useful if	the PPP	negotiation does not succeed or	if authentica-
       tion  fails.  If	debugging is enabled at	compile	time, the debug	option
       also causes other debugging messages to be logged.

       Debugging can also be enabled or	disabled by sending a  SIGUSR1	signal
       to the pppd process.  This signal acts as a toggle.

SCRIPTS
       Pppd  invokes  scripts at various stages	in its processing which	can be
       used to perform site-specific ancillary processing.  These scripts  are
       usually	shell  scripts,	 but  could  be	executable code	files instead.
       Pppd does not wait for the scripts to finish.  The scripts are executed
       as  root	 (with	the real and effective user-id set to 0), so that they
       can do things such as update routing tables or run privileged  daemons.
       Be  careful  that  the contents of these	scripts	do not compromise your
       system's	security.  Pppd	runs the scripts with standard	input,	output
       and  error  redirected  to  /dev/null,  and with	an environment that is
       empty except for	some environment variables that	give information about
       the link.  The environment variables that pppd sets are:

       DEVICE The name of the serial tty device	being used.

       IFNAME The name of the network interface	being used.

       IPLOCAL
	      The  IP address for the local end	of the link.  This is only set
	      when IPCP	has come up.

       IPREMOTE
	      The IP address for the remote end	of the link.  This is only set
	      when IPCP	has come up.

       PEERNAME
	      The  authenticated  name	of  the	peer.  This is only set	if the
	      peer authenticates itself.

       SPEED  The baud rate of the tty device.

       UID    The real user-id of the user who invoked pppd.

       Pppd invokes the	following scripts, if they exist.  It is not an	 error
       if they don't exist.

       /etc/ppp/auth-up
	      A	 program  or  script which is executed after the remote	system
	      successfully authenticates itself.  It is	executed with the  pa-
	      rameters

	      interface-name peer-name user-name tty-device speed

	      Note  that  this	script is not executed if the peer doesn't au-
	      thenticate itself, for example when the noauth option is used.

       /etc/ppp/auth-down
	      A	program	or script which	is executed when the link  goes	 down,
	      if  /etc/ppp/auth-up was previously executed.  It	is executed in
	      the same manner with the same parameters as /etc/ppp/auth-up.

       /etc/ppp/ip-up
	      A	program	or script which	is executed when the link is available
	      for  sending  and	 receiving  IP packets (that is, IPCP has come
	      up).  It is executed with	the parameters

	      interface-name tty-device	speed  local-IP-address	 remote-IP-ad-
	      dress ipparam

       /etc/ppp/ip-down
	      A	program	or script which	is executed when the link is no	longer
	      available	for sending and	receiving IP packets.  This script can
	      be  used	for  undoing the effects of the	/etc/ppp/ip-up script.
	      It is invoked in the same	manner and with	the same parameters as
	      the ip-up	script.

       /etc/ppp/ipx-up
	      A	program	or script which	is executed when the link is available
	      for sending and receiving	IPX packets (that is, IPXCP  has  come
	      up).  It is executed with	the parameters

	      interface-name  tty-device  speed	network-number local-IPX-node-
	      address remote-IPX-node-address  local-IPX-routing-protocol  re-
	      mote-IPX-routing-protocol	   local-IPX-router-name   remote-IPX-
	      router-name ipparam pppd-pid

	      The local-IPX-routing-protocol  and  remote-IPX-routing-protocol
	      field may	be one of the following:

	      NONE	to indicate that there is no routing protocol
	      RIP	to indicate that RIP/SAP should	be used
	      NLSP	to indicate that Novell	NLSP should be used
	      RIP NLSP	to indicate that both RIP/SAP and NLSP should be used

       /etc/ppp/ipx-down
	      A	program	or script which	is executed when the link is no	longer
	      available	for sending and	receiving IPX  packets.	  This	script
	      can  be  used  for  undoing  the	effects	of the /etc/ppp/ipx-up
	      script.  It is invoked in	the same manner	and with the same  pa-
	      rameters as the ipx-up script.

FILES
       /var/run/pppn.pid (BSD or Linux), /etc/ppp/pppn.pid (others)
	      Process-ID for pppd process on ppp interface unit	n.

       /etc/ppp/pap-secrets
	      Usernames,  passwords  and  IP addresses for PAP authentication.
	      This file	should be owned	by root	and not	readable  or  writable
	      by  any  other user.  Pppd will log a warning if this is not the
	      case.

       /etc/ppp/chap-secrets
	      Names, secrets and IP addresses for CHAP authentication.	As for
	      /etc/ppp/pap-secrets,  this file should be owned by root and not
	      readable or writable by any other	user.  Pppd will log a warning
	      if this is not the case.

       /etc/ppp/options
	      System  default  options	for pppd, read before user default op-
	      tions or command-line options.

       ~/.ppprc
	      User default options, read before	/etc/ppp/options.ttyname.

       /etc/ppp/options.ttyname
	      System default options for the serial port being used, read  af-
	      ter  ~/.ppprc.  In forming the ttyname part of this filename, an
	      initial /dev/ is stripped	from the port name (if	present),  and
	      any slashes in the remaining part	are converted to dots.

       /etc/ppp/peers
	      A	 directory  containing	options	files which may	contain	privi-
	      leged options, even if pppd was invoked by  a  user  other  than
	      root.  The system	administrator can create options files in this
	      directory	to permit non-privileged users to dial out without re-
	      quiring  the  peer  to authenticate, but only to certain trusted
	      peers.

       /etc/ppp/ppp.deny
	      Lists users who may not use the system password PAP  authentica-
	      tion.

       /etc/ppp/ppp.shells
	      Lists user shells	which are approved for system password PAP au-
	      thentication logins.

       /usr/share/examples/pppd/
	      Sample pppd configuration	files.

SEE ALSO
       chat(8),	ppp(8)

       RFC1144
	      Jacobson,	V.  Compressing	TCP/IP headers	for  low-speed	serial
	      links.  February 1990.

       RFC1321
	      Rivest, R.  The MD5 Message-Digest Algorithm.  April 1992.

       RFC1332
	      McGregor,	 G.   PPP  Internet  Protocol Control Protocol (IPCP).
	      May 1992.

       RFC1334
	      Lloyd, B.; Simpson, W.A.	PPP authentication protocols.  October
	      1992.

       RFC1661
	      Simpson, W.A.  The Point-to-Point	Protocol (PPP).	 July 1994.

       RFC1662
	      Simpson, W.A.  PPP in HDLC-like Framing.	July 1994.

NOTES
       The following signals have the specified	effect when sent to pppd.

       SIGINT, SIGTERM
	      These signals cause pppd to terminate the	link (by closing LCP),
	      restore the serial device	settings, and exit.

       SIGHUP This signal causes pppd to terminate the link, restore  the  se-
	      rial  device settings, and close the serial device.  If the per-
	      sist or demand option has	been specified,	pppd will try  to  re-
	      open  the	 serial	device and start another connection (after the
	      holdoff period).	Otherwise pppd will exit.  If this  signal  is
	      received	during	the  holdoff period, it	causes pppd to end the
	      holdoff period immediately.

       SIGUSR1
	      This signal toggles the state of the debug option.

       SIGUSR2
	      This signal causes pppd to renegotiate compression.  This	can be
	      useful  to re-enable compression after it	has been disabled as a
	      result of	a fatal	decompression error.  (Fatal decompression er-
	      rors generally indicate a	bug in one or other implementation.)

AUTHORS
       Paul Mackerras (Paul.Mackerras@cs.anu.edu.au), based on earlier work by
       Drew Perkins, Brad Clements, Karl Fox, Greg Christy, and	Brad Parker.

								       PPPD(8)

NAME | SYNOPSIS | DESCRIPTION | FREQUENTLY USED OPTIONS | OPTIONS | OPTIONS FILES | SECURITY | AUTHENTICATION | ROUTING | EXAMPLES | DIAGNOSTICS | SCRIPTS | FILES | SEE ALSO | NOTES | AUTHORS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pppd&sektion=8&manpath=FreeBSD+6.0-RELEASE>

home | help