<chapter id="ppp.pppoe-1"><title>Setting
Up a PPPoE Tunnel (Tasks)</title><highlights><itemizedlist><para>This chapter contains tasks
for setting up the participants on
either end of the PPPoE tunnel: the
PPPoE client and PPPoE access server.
Specific topics include the following:</para><listitem><para><olink targetptr="ppp.pppoe-40" remap="internal">Major Tasks
for Setting Up a PPPoE Tunnel (Task
Maps)</olink></para>
</listitem><listitem><para><olink targetptr="ppp.pppoe-2" remap="internal">Setting Up
the PPPoE Client</olink></para>
</listitem><listitem><para><olink targetptr="ppp.pppoe-5" remap="internal">Setting Up
a PPPoE Access Server</olink></para>
</listitem>
</itemizedlist><para>The tasks use the scenario that
was introduced in <olink targetptr="ppp.p2plink-25" remap="internal">Planning
for DSL Support Over a PPPoE Tunnel</olink> as
an example. For an overview of PPPoE,
refer to <olink targetptr="ppp.intro-19" remap="internal">Support for DSL Users Through PPPoE</olink>.</para>
</highlights><sect1 id="ppp.pppoe-40"><title>Major
Tasks for Setting Up a PPPoE Tunnel
(Task Maps)</title><para>The following tables list
the major tasks for configuring PPPoE
clients and the PPPoE access server.
To implement PPPoE at your site, you
need to set up only your end of the
PPPoE tunnel, either the client side
or access-server side.</para><table frame="all" pgwide="100" id="ppp.pppoe-tbl-53"><title>Task
Map for Setting Up a PPPoE Client</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colname="colspec2" colwidth="25.33*"/><colspec colname="colspec1" colwidth="31.77*"/><colspec colname="colspec0" colwidth="41.92*"/><thead><row rowsep="1"><entry><para>Task</para>
</entry><entry><para>Description</para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>1. Configure an interface for
PPPoE</para>
</entry><entry><para>Define the Ethernet interface
to be used for the PPPoE tunnel.</para>
</entry><entry><para><olink targetptr="ppp.pppoe-55" remap="internal">How
to Configure an Interface for a PPPoE
Client</olink></para>
</entry>
</row><row><entry><para>2. Configure information about
the PPPoE access server</para>
</entry><entry><para>Define parameters for the access
server at the service provider end
of the PPPoE tunnel.</para>
</entry><entry><para><olink targetptr="ppp.pppoe-56" remap="internal">How
to Define a PPPoE Access Server Peer</olink></para>
</entry>
</row><row><entry><para>3. Set up the PPP configuration
files</para>
</entry><entry><para>Define the PPP configuration
files for the client, if you have
not done so already.</para>
</entry><entry><para><olink targetptr="ppp.dialin-53" remap="internal">How
to Define Communications Over the
Serial Line</olink></para>
</entry>
</row><row><entry><para>4. Create the tunnel</para>
</entry><entry><para>Call the access server.</para>
</entry><entry><para><olink targetptr="ppp.pppoe-56" remap="internal">How
to Define a PPPoE Access Server Peer</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</table><table frame="all" pgwide="100" id="ppp.pppoe-tbl-54"><title>Task
Map for Setting Up a PPPoE Access
Server</title><tgroup cols="3" colsep="1" rowsep="1"><colspec colname="colspec4" colwidth="25.33*"/><colspec colname="colspec5" colwidth="31.77*"/><colspec colname="colspec6" colwidth="41.92*"/><thead><row rowsep="1"><entry><para>Task</para>
</entry><entry><para>Description </para>
</entry><entry><para>For Instructions</para>
</entry>
</row>
</thead><tbody><row><entry><para>1. Set up a PPPoE access server</para>
</entry><entry><para>Define the Ethernet interface
to be used for the PPPoE tunnel and
define the services that the access
server offers.</para>
</entry><entry><para><olink targetptr="ppp.pppoe-58" remap="internal">How
to Set Up a PPPoE Access Server</olink></para>
</entry>
</row><row><entry><para>2.
Set up the PPP configuration files</para>
</entry><entry><para>Define the PPP configuration
files for the client, if you have
not done so already.</para>
</entry><entry><para><olink targetptr="pppsvrconfig.dialin-51" remap="internal">Configuring
Communications Over the Dial-in Server</olink></para>
</entry>
</row><row><entry><para>3. (Optional) Restrict use
of an interface</para>
</entry><entry><para>Use PPPoE options and PAP authentication
to restrict use of a particular Ethernet
interface to certain clients.</para>
</entry><entry><para><olink targetptr="ppp.pppoe-61" remap="internal">How
to Restrict the Use of an Interface
to Particular Clients</olink></para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</sect1><sect1 id="ppp.pppoe-2"><title>Setting
Up the PPPoE Client</title><para>To provide PPP  to client systems
over DSL, you must first configure
PPPoE on the interface that is connected
to the modem or hub. Then you need
to change the PPP configuration files
to define the access server on the
opposite end of the PPPoE.</para><sect2 id="ppp.pppoe-3"><title>Prerequisites
for Setting Up the PPPoE Client</title><itemizedlist><para>Before you set up the PPPoE
client, you must have done the following:</para><listitem><para>Installed Solaris
8 Update 6 release or subsequent releases
on the client machines to use the
PPPoE tunnel.</para>
</listitem><listitem><para>Contacted the service
provider for information about its
PPPoE access server.</para>
</listitem><listitem><para>Had the telephone
company or service provider assemble
the devices that are used by the client
machines. These devices  include,
for example, the DSL modem and the
splitter, which the telephone company
rather than you might assemble.</para>
</listitem>
</itemizedlist>
</sect2><task id="ppp.pppoe-55"><title>How
to Configure an Interface for a PPPoE
Client</title><tasksummary><para>Use this procedure to define
the Ethernet interface to be used
for the PPPoE tunnel.</para>
</tasksummary><procedure><step id="ppp.pppoe-step-16"><para>Become
superuser on the PPPoE client or assume
an equivalent role.</para><para>Roles
contain authorizations and privileged
commands. For more information about
roles, see <olink targetdoc="sysadv6" targetptr="rbactask-15" remap="external"><citetitle remap="section">Configuring RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink>.
To configure a role with the Primary
Administrator profile, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="ppp.pppoe-step-12"><para>Add the name of the Ethernet
interface with the DSL connection
to the <filename>/etc/ppp/pppoe.if</filename> file.</para><para>For example, you add
the following entry to <filename>/etc/ppp/pppoe.if</filename> for a PPPoE client that
uses <literal>hme0</literal> as the
network interface that is connected
to the DSL modem. </para><screen><userinput>hme0</userinput></screen><para>For more information about <filename>/etc/ppp/pppoe.if</filename>, go to <olink targetptr="ppp.reference-51" remap="internal">/etc/ppp/pppoe.if
File</olink>.</para>
</step><step id="ppp.pppoe-step-19"><para>Configure
the interface for PPPoE use.</para><screen># <userinput>/etc/init.d/pppd start</userinput></screen>
</step><step performance="optional" id="ppp.pppoe-step-49"><para>Verify
that the interface is now plumbed
for PPPoE.</para><screen># <userinput>/usr/sbin/sppptun query</userinput>
hme0:pppoe
hme0:pppoed</screen><para>You can also use the <command>/usr/sbin/sppptun</command> command to manually plumb
interfaces for PPPoE. For instructions,
refer to <olink targetptr="ppp.reference-49" remap="internal">/usr/sbin/sppptun
Command</olink>.</para>
</step>
</procedure>
</task><task id="ppp.pppoe-56"><title>How
to Define a PPPoE Access Server Peer</title><tasksummary><para>You define the access
server in the <filename>/etc/ppp/peers/</filename><replaceable>peer-name</replaceable> file. Many
of the options that are used for the
access server are also used to define
the dial-in server in a dial-up scenario.
For a detailed explanation of <filename>/etc/ppp/peers.</filename><replaceable>peer-name</replaceable>,
refer to <olink targetptr="pppsvrconfig.reference-56" remap="internal">/etc/ppp/peers/peer-name
File</olink>.</para>
</tasksummary><procedure><step id="ppp.pppoe-step-13"><para>Become
superuser on the PPPoE client or assume
an equivalent role.</para><para>Roles
contain authorizations and privileged
commands. For more information about
roles, see <olink targetdoc="sysadv6" targetptr="rbactask-15" remap="external"><citetitle remap="section">Configuring RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink>.
To configure a role with the Primary
Administrator profile, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="ppp.pppoe-step-20"><para>Define the service provider's
PPPoE access server in the <filename>/etc/ppp/peers/</filename><replaceable>peer-name</replaceable> file.</para><para>For example, the following
file, <filename>/etc/ppp/peers/dslserve</filename>,
defines the access server <literal>dslserve</literal> at Far ISP that is introduced
in <olink targetptr="ppp.p2plink-28" remap="internal">Example
of a Configuration for a PPPoE Tunnel</olink>. </para><screen># <userinput>cat /etc/ppp/peers/dslserve</userinput>
sppptun
plugin pppoe.so
connect "/usr/lib/inet/pppoec hme0"
noccp
noauth
user Red
password redsecret
noipdefault
defaultroute</screen><para>For a definition of the options
in this file, go to <olink targetptr="ppp.reference-46" remap="internal">/etc/ppp/peers/peer-name
File for Defining an Access Server
Peer</olink>.</para>
</step><step id="ppp.pppoe-step-22"><para>Modify
the other PPP configuration files
on the PPPoE client.</para><substeps><step id="ppp.pppoe-step-62"><para>Configure <filename>/etc/ppp/options</filename> as described
in the instructions for configuring
a dial-out machine in <olink targetptr="pppsvrconfig.dialin-52" remap="internal">Configuring
the Dial-out Machine</olink>.</para>
</step><step id="ppp.pppoe-step-57"><para>Create
an <filename>/etc/ppp/options.sppptun</filename> file.
 <filename>/etc/ppp/options.sppptun</filename> 
defines PPP options for the serial
port to which the interface that is
plumbed for PPPoE is attached.</para><para>You can use any options that
are available for the <filename>/etc/ppp/options.</filename><replaceable>ttyname</replaceable> file
that is described in <olink targetptr="pppsvrconfig.reference-4" remap="internal">/etc/ppp/options.ttyname
Configuration File</olink>. You must
name the file <filename>/etc/ppp/options.sppptun</filename> because <literal>sppptun</literal> is
the specified device name in the <command>pppd</command> configuration.</para>
</step>
</substeps>
</step><step id="ppp.pppoe-step-21"><para>Ensure
that all users can start PPP on the
client.</para><screen># <userinput>touch /etc/ppp/options</userinput></screen>
</step><step id="ppp.pppoe-step-23"><para>Test if PPP can run over
the DSL line.</para><screen>% <userinput>pppd debug updetach call dslserve</userinput></screen><para><userinput>dslserve</userinput> is
the name that is given to the access
server at the ISP that is shown in <olink targetptr="ppp.p2plink-28" remap="internal">Example
of a Configuration for a PPPoE Tunnel</olink>.
The <literal>debug updetach</literal> option
causes debugging information to be
displayed in a terminal window.</para><para>If PPP is running correctly,
the terminal output shows the link
becoming active. If PPP still does
not run, try the following command
to see if the servers are running
correctly:</para><screen># <userinput>/usr/lib/inet/pppoec -i hme0</userinput></screen><note><para>Users of configured PPPoE
clients can begin running PPP over
a DSL line by typing the following:</para><screen>% pppd call <replaceable>ISP-server-name</replaceable></screen><para>Then the users can run an application
or a service.</para>
</note>
</step>
</procedure><taskrelated role="see-also"><para>The following list provides
references to related information.</para><itemizedlist><listitem><para>See <olink targetptr="ppp.pppoe-2" remap="internal">Setting Up
the PPPoE Client</olink>.</para>
</listitem><listitem><para>See <olink targetptr="ppp.reference-45" remap="internal">Creating
PPPoE Tunnels for DSL Support</olink>.</para>
</listitem><listitem><para>See <olink targetptr="pppsvrconfig.troubleshoot-1" remap="internal">Chapter&nbsp;21,
Fixing Common PPP Problems (Tasks)</olink>.</para>
</listitem><listitem><para>See <olink targetptr="ppp.pppoe-5" remap="internal">Setting Up
a PPPoE Access Server</olink>.</para>
</listitem>
</itemizedlist>
</taskrelated>
</task>
</sect1><sect1 id="ppp.pppoe-5"><title>Setting
Up a PPPoE Access Server</title><para>If your company is a service
provider, you can offer Internet and
other services to clients that reach
your site through DSL connections.
The procedure involves determining
which interfaces on the server to
involve in the PPPoE tunnel and defining
which services are made available
to the users.</para><task id="ppp.pppoe-58"><title>How
to Set Up a PPPoE Access Server</title><tasksummary><para>Use this procedure to define
the Ethernet interface to be used
for the PPPoE tunnel and to configure
the services that the access server
offers.</para>
</tasksummary><procedure><step id="ppp.pppoe-step-14"><para>Become
superuser on the access server or
assume an equivalent role.</para><para>Roles
contain authorizations and privileged
commands. For more information about
roles, see <olink targetdoc="sysadv6" targetptr="rbactask-15" remap="external"><citetitle remap="section">Configuring RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink>.
To configure a role with the Primary
Administrator profile, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="ppp.pppoe-step-26"><para>Add
the name of the Ethernet interfaces
that are dedicated to the PPPoE tunnels
to the <filename>/etc/ppp/pppoe.if</filename> file.</para><para>For example, you would
use the following <filename>/etc/ppp/pppoe.if</filename> file for the access server <literal>dslserve</literal> that is shown in <olink targetptr="ppp.p2plink-28" remap="internal">Example
of a Configuration for a PPPoE Tunnel</olink>.</para><screen># <userinput>cat /etc/ppp/pppoe.if</userinput>
<userinput>hme1</userinput>
<userinput>hme2</userinput></screen>
</step><step><para>Define global services
that are provided by the access server
in the <filename>/etc/ppp/pppoe</filename> file.</para><para>The following <filename>/etc/ppp/pppoe</filename> file lists the services
that are provided by access server <literal>dslserve</literal>, which was shown
in <olink targetptr="ppp.p2plink-fig-38" remap="internal">Figure 16&ndash;5</olink>.</para><screen><userinput>device hme1,hme2</userinput>
<userinput>service internet</userinput>
    <userinput>pppd "proxyarp 192.168.1.1:"</userinput>
<userinput>service debugging</userinput>
    <userinput>pppd "debug proxyarp 192.168.1.1:"</userinput></screen><para>In the file example, Internet
service is announced for <literal>dslserve</literal>'s Ethernet interfaces <literal>hme1</literal> and <literal>hme2</literal>.
Debugging is turned on for PPP links
on the Ethernet interfaces.</para>
</step><step><para>Set up the PPP configuration
files in the same way that you would
for a dial-in server.</para><para>For
more information, refer to <olink targetptr="ppp.reference-39" remap="internal">Creating
an IP Addressing Scheme for Callers</olink>.</para>
</step><step><para>Start the <command>pppoed</command> daemon.</para><screen><userinput># /etc/init.d/pppd start</userinput></screen><para><command>pppd</command> also
plumbs the interfaces that are listed
in <filename>/etc/ppp/pppoe.if</filename>.</para>
</step><step performance="optional" id="ppp.pppoe-step-45"><para>Verify
that the interfaces on the server
are plumbed for PPPoE.</para><screen># <userinput>/usr/sbin/sppptun query</userinput>
hme1:pppoe
hme1:pppoed
hme2:pppoe
hme2:pppoed</screen><para>The previous sample shows that
interfaces <literal>hme1</literal> and <literal>hme2</literal> are currently plumbed
for PPPoE. You can also use the <command>/usr/sbin/sppptun</command> command
to manually plumb interfaces for PPPoE.
For instructions, refer to <olink targetptr="ppp.reference-49" remap="internal">/usr/sbin/sppptun
Command</olink>.</para>
</step>
</procedure>
</task><task id="ppp.pppoe-60"><title>How
to Modify an Existing <filename>/etc/ppp/pppoe</filename> File</title><procedure><step id="ppp.pppoe-step-50"><para>Become
superuser on the access server or
assume an equivalent role.</para><para>Roles
contain authorizations and privileged
commands. For more information about
roles, see <olink targetdoc="sysadv6" targetptr="rbactask-15" remap="external"><citetitle remap="section">Configuring RBAC (Task Map)</citetitle> in <citetitle remap="book">System Administration Guide: Security Services</citetitle></olink>.
To configure a role with the Primary
Administrator profile, see <olink targetdoc="sysadv1" targetptr="smcover-1" remap="external">Chapter 2, <citetitle remap="chapter">Working With the Solaris Management Console (Tasks),</citetitle> in <citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink>.</para>
</step><step id="ppp.pppoe-step-47"><para>Modify <filename>/etc/ppp/pppoe</filename>, as needed.</para>
</step><step id="ppp.pppoe-step-48"><para>Cause
the <command>pppoed</command> daemon
to recognize the new services.</para><screen># <userinput>pkill -HUP pppoed</userinput></screen>
</step>
</procedure>
</task><task id="ppp.pppoe-61"><title>How
to Restrict the Use of an Interface
to Particular Clients</title><tasksummary><para>The next procedure shows
how to restrict an interface to a
group of PPPoE clients. Before performing
this task, you need to obtain the
real Ethernet MAC addresses of the
clients you are assigning to the interface.</para><note><para>Some systems allow you
to change the MAC address on the Ethernet
interface. You should view this ability
as a convenience factor, not a security
measure. </para>
</note><para>Using the example that is shown
in <olink targetptr="ppp.p2plink-28" remap="internal">Example
of a Configuration for a PPPoE Tunnel</olink>,
these steps show how to reserve one
of <literal>dslserve</literal>'s interfaces, <literal>hme1</literal>, for clients at MiddleCo.</para>
</tasksummary><procedure><step id="ppp.pppoe-step-44"><para>Configure the access server's
interfaces and define the services,
as shown in <olink targetptr="ppp.pppoe-58" remap="internal">How to Set
Up a PPPoE Access Server</olink>.</para>
</step><step id="ppp.pppoe-step-52"><para>Create
entries for clients in the server's <filename>/etc/ethers</filename> database.</para><para>Here is a sample entry for clients
Red, Blue, and Yellow.</para><screen>8:0:20:1:40:30 redether
8:0:20:1:40:10 yellowether
8:0:20:1:40:25 blueether</screen><para>The sample assigns the symbolic
names <literal>redether</literal>, <literal>yellowether</literal>, and <literal>blueether</literal> to the Ethernet addresses
of clients Red, Yellow, and Blue.
The assignment of symbolic names to
the MAC addresses is optional. </para>
</step><step id="ppp.pppoe-step-32"><para>Restrict services that
are provided on a specific interface
by defining the following information
in the <filename>/etc/ppp/pppoe.</filename><emphasis>device</emphasis> file.</para><para>In
this file, <emphasis>device</emphasis> is
the name of the device to be defined.</para><screen># <userinput>cat /etc/ppp/pppoe.hme1</userinput>
service internet
     pppd "name dslserve-hme1"
     clients redether,yellowether,blueether</screen><para><literal>dslserve-hme1</literal> is
the access server's name, which is
used in matching entries in the <filename>pap-secrets</filename> file. The <literal>clients</literal> option restricts
the use of interface <literal>hme1</literal> to
clients with the symbolic Ethernet
names <literal>redether</literal>, <literal>yellowether</literal>, and <literal>blueether</literal>. </para><para>If you did
not define symbolic names for client's
MAC addresses in <filename>/etc/ethers</filename>,
you can use the numeric addresses
as arguments for the <literal>clients</literal> option.
Wildcards are allowed.</para><para>For
example, you can specify the numeric
address <literal>clients 8:0:20:*:*:*</literal>.
By using wildcards, all matching addresses
in <filename>/etc/ethers</filename> are
accepted.</para>
</step><step id="ppp.pppoe-step-37"><para>Create the <filename>/etc/ppp/pap-secrets</filename> file for the access server: </para><screen><userinput>Red         dslserve-hme1   redpasswd     *</userinput>
<userinput>Blue        dslserve-hme1   bluepasswd    *</userinput>
<userinput>Yellow      dslserve-hme1   yellowpassd   *</userinput></screen><para>The entries are the PAP names
and passwords of clients that are
allowed to run PPP over <literal>dslserve</literal>'s <literal>hme1</literal> interface. </para><para>For more information
about PAP authentication, see <olink targetptr="pppsvrconfig.auth-2" remap="internal">Configuring
PAP Authentication</olink>.</para>
</step>
</procedure><taskrelated role="see-also"><para>The following list provides
references to related information.</para><itemizedlist><listitem><para>To learn more about
PPPoE, see <olink targetptr="ppp.reference-45" remap="internal">Creating
PPPoE Tunnels for DSL Support</olink>.</para>
</listitem><listitem><para>To troubleshoot PPPoE
and PPP problems, see <olink targetptr="ppp.trouble-6" remap="internal">Solving
PPP-Related and PPPoE-Related Problems</olink>.</para>
</listitem><listitem><para>To configure a PPPoE
client, see <olink targetptr="ppp.pppoe-2" remap="internal">Setting Up
the PPPoE Client</olink>.</para>
</listitem><listitem><para>To configure PAP authentication
for a client, see <olink targetptr="pppsvrconfig.auth-6" remap="internal">Configuring
PAP Authentication for Trusted Callers
(Dial-out Machines)</olink>.</para>
</listitem><listitem><para>To configure PAP authentication
on a server, see <olink targetptr="pppsvrconfig.auth-3" remap="internal">Configuring
PAP Authentication on the Dial-in
Server</olink>.</para>
</listitem>
</itemizedlist>
</taskrelated>
</task>
</sect1>
</chapter>