How to configure internet connection using PPPoE on Solaris 10

This guide will help you how to make your computer get connected to internet using PPP over Ethernet (PPPoE) on Solaris 10.

Requirements:
– Solaris 10 Installed on PC (I am using Intel-based processor)
– Network Interface Card (Ethernet card)
– Internet Service Provider that provide PPP authentication and tunneling. I am using netZAP (Instant Broadband Internet) located in Jakarta Indonesia.
– A cup of fresh coffee. Trust me this also will help you :)

Go ahead to the guide.
When you finished installing Solaris 10, PPP packages are installed by default. To make sure that you already have all the packages, check them by using the command below:

fuad@solaris $ pkginfo |grep ppp
system SUNWpppd Solaris PPP Device Drivers
system SUNWpppdr Solaris PPP configuration files
system SUNWpppdt Solaris PPP Tunneling
system SUNWpppdu Solaris PPP daemon and utilities

[ad#AmzPSol10AdmEss] Above are all packages that you will need to follow this guide. Of course to make internet connection using PPPoE :).
You also have the tools to run pppoe: /usr/lib/inet/pppoec, /usr/lib/inet/pppoed, /usr/sbin/sppptun, and /usr/bin/pppd.

The configuration files are located in /etc/ppp. You can look at the directory, there are some files inside.
Go to the /etc/ppp directory, and create a file called pppoe.if and put an interface name you intend to run pppoe over in it. For example, I am using ‘rtls0’ interface to run pppoe so I run command below to put the interface in pppoe.if

# echo rtls0 > /etc/ppp/pppoe.if

You need to reboot the system to know what interface to setup pppoe and configure the devices.
When the system has been restarted, check the sppp and spptun devices are running. Fire this command to check them:

fuad@solaris $ ls /dev|grep ppp
sppp
sppptun

Yes, the devices are running and now we are ready to go to the configuration files.
You need to configure the informations about your connection in a file located in directory /etc/ppp/peers. There is also a template you can edit. For example, my connection is using netZAP internet provider so I create a file named netzap and put the information about my connection there.

fuad@solaris $ cat /etc/ppp/peers/netzap
sppptun # what device to use
plugin pppoe.so # initialize the
connect "/usr/lib/inet/pppoec rtls0" # connect string
persist # if the connection dies, bring it back up
user "yourusername" # your username typed here
noauth # Do not make the other side authenticate itself
noipdefault # Let them give you what IP they want to give you
noccp # No compression
novj # No compression
noaccomp # No compression
nopcomp # No compression
defaultroute # add an appropriate default route
usepeerdns # will create an /etc/ppp/resolv.conf file

Change the interface ‘rtls0’ and ‘username’ to yours.
Then you need to put your username and password in /etc/ppp/chap-secrets and or /etc/ppp/pap-secrets. Because netZAP use CHAP for authentication, so I just need to edit /etc/ppp/chap-secrets and put my username and password in it. Now open the file and add a line like this:

"USERNAME" * "PASSWORD"

Make sure this file is not world readable so you need to set perms it 0600 and also there must be tabs in between those fields, not spaces.
Now, make sure that both pppoe and pppoed are on your network card. Do sppptun query like below:

fuad@solaris $ sudo sppptun query
rtls0:pppoe
rtls0:pppoed

Now you have configured all things and ready to make internet connection using PPPoE.
Run this command to bring the link up:

fuad@solaris $ sudo /usr/bin/pppd call netzap

Wait a second to let the system process the connection. You should have sppp0 interface when you run ifconfig -a command. Type ifconfig sppp0 to see specific sppp0 interface:

fuad@solaris $ ifconfig sppp0
sppp0: flags=10010008d1 mtu 1492 index 3
inet 10.11.1.11 --> 10.20.1.1 netmask ffffff00

As you can see, you get an IP address assigned from your ISP.
You need to add symbolic link from /etc/ppp/resolv.conf to /etc/resolv.conf

fuad@solaris $ sudo rm /etc/resolv.conf
fuad@solaris $ sudo ln -s /etc/ppp/resolv.conf /etc/resolv.conf

Don’t forget to set /etc/nsswitch.conf so that both “hosts” and “ipnodes” resolve through “files dns”

$ grep dns /etc/nsswitch.conf
hosts:      files dns
ipnodes:    files dns

Try to ping or browsing to the internet.

fuad@solaris $ ping www.yahoo.com
www.yahoo.com is alive

Yes, it works and now you are ready to browse internet using PPPoE in Solaris 10.
Hope this guide is clear enough to help you.

References:
– http://www.phildev.net/solaris/spppoe.html