Some ISP’s establish connections with their customers' networks through PPPoE. I recently setup an OpenBSD 6.6 router which required PPPoE. This is my story.

DNS Servers

If necessary, configure your system to use your preferred DNS nameservers.

A common way of connecting to your ISP’s network is through DHCP. DHCP is capable of providing your system with DNS nameservers according to RFC 2132 and RFC 2937. To my knowledge, this capability is absent from the PPPoE Specification. If you are switching from DHCP to PPPoE, be mindful that you may need to set your nameservers if you have not explicitly done so.

The place to do this is resolv.conf. My system uses a couple of nameservers from the list provided by DNSCrypt. The Google nameservers are also quite popular.

/etc/resolv.conf
nameserver 176.103.130.132 (1)
nameserver 185.228.168.10 (2)
1 adguard-dns-family
2 cleanbrowsing-adult

PPPoE Configuration

The configuration is fairly straightforward. I use a hostname.if file to initialize the PPPoE interface when the system boots. This example is very similar to the jumbo frames example provided in the PPPOE(4) manpage. Because this is a router, it requires more than the basic setup. PPPoE has an overhead and the incoming LAN connections will not be aware of this. My modifications to the example are as follows. First, chap replaces pap as the authentication protocol. Second, only IPv4 options are present since my ISP doesn’t support IPv6.

/etc/hostname.pppoe0
inet 0.0.0.0 255.255.255.255 NONE mtu 1500 \ (1)
	pppoedev em0 authproto chap \ (2)
	authname 'username' authkey 'password' up
dest 0.0.0.1
!/sbin/route add default -ifp pppoe0 0.0.0.1
1 Set the IP to 0.0.0.0, a wildcard representing whatever IP the PPPoE connection provides, and adjust the frame size.
2 em0 is the ethernet interface for the router’s WAN port.

The physical em0 interface must be up.

/etc/hostname.em0
up mtu 1508

Start up the em0 and pppoe0 interfaces.

sh /etc/netstart em0 pppoe0

The /etc/netstart script was not able to successfully establish a PPPoE connection when I changed my configuration from pap to chap. I had to reboot my system after changing the configuration file for the connection to succeed.

reboot