The interfaces that are used at either end of the PPPoE tunnel must be configured before the tunnel can support PPP communications. Use /usr/sbin/sppptun and /etc/ppp/pppoe.if files for this purpose. You must use these tools to configure Ethernet interfaces on all Oracle Solaris PPPoE clients and PPPoE access servers.
The /etc/ppp/pppoe.if file lists the names of all Ethernet interfaces on a host to be used for the PPPoE tunnels. This file is processed during system boot when the interfaces that are listed are plumbed for use in PPPoE tunnels.
You need to create explicitly /etc/ppp/pppoe.if. Type the name of one interface to be configured for PPPoE on each line.
# cat /etc/ppp/pppoe.if hme1 hme2 hme3
PPPoE clients usually have only one interface that is listed in /etc/ppp/pppoe.if.
You can use the /usr/sbin/sppptun command to manually plumb and unplumb the Ethernet interfaces to be used for PPPoE tunnels. By contrast, /etc/ppp/pppoe.if is only read when the system boots. These interfaces should correspond to the interfaces that are listed in /etc/ppp/pppoe.if.
sppptun plumbs the Ethernet interfaces that are used in PPPoE tunnels in a manner that is similar to the ipadm command. Unlike ipadm, you must plumb interfaces twice to support PPPoE because two Ethernet protocol numbers are involved.
The basic syntax for sppptun is as follows:
# /usr/sbin/sppptun plumb pppoed device-name device-name:pppoed # /usr/sbin/sppptun plumb pppoe device-name device-name:pppoe
In this syntax, device-name is the name of the device to be plumbed for PPPoE.
The first time that you issue the sppptun command, the discovery protocol pppoed is plumbed on the interface. The second time that you run sppptun, the session protocol pppoe is plumbed. sppptun prints the name of the interface that was just plumbed. You use this name to unplumb the interface, when necessary.
For more information, refer to the sppptun(1M) man page.
The following example shows how to manually plumb an interface for PPPoE by using /usr/sbin/sppptun.
# /usr/sbin/sppptun plumb pppoed hme0 hme0:pppoed # /dev/sppptun plumb pppoe hme0 hme0:pppoe
This example shows how to list the interfaces on an access server that was plumbed for PPPoE.
# /usr/sbin/sppptun query hme0:pppoe hme0:pppoed hme1:pppoe hme1:pppoed hme2:pppoe hme2:pppoed
This example shows how to unplumb an interface.
# sppptun unplumb hme0:pppoed # sppptun unplumb hme0:pppoe