After much suffering from the incompitence of Virgin Media we have switched to PlusNet for our broadband provider. Thankfully FTTC has arrived in our neighbourhood so we can, at long last, get more than 300kbps estimated speed down the phone line (although we had to have a new phone line installed, as we did not already have one).

Configuring Debian router for PlusNet

I use a Mini-ITX router which runs Debian GNU/Linux.

In years gone by I connected my non-cable ADSL to my router with a DrayTek Vigor 120 Modem which I still have. Unfortunately this trusy little box does not support VDSL2, the standard required for PlusNet's (and I belive most UK providers) FTTC provision. There is a newer model, the (unsurprisingly named) Vigor 130 which does so I have bought one of these.

Interfaces file

First thing to change is the interfaces file. As I had my Virgin router in "modem mode", I just had to configure the router to get it's address by DHCP and the router would hand it the public IP:

auto enp4s0
iface enp4s0 inet dhcp

In my new setup, the Vigor operates as a plain modem so, unlike the Virgin router, my router also needs to handle the authentication. This is done using PPP, so I need to configure my ethernet device and PPP software. The interfaces side of this looks like this:

auto enp4s0
iface enp4s0 inet manual

auto dsl-provider
iface dsl-provider inet ppp
  post-down /sbin/ifconfig enp4s0 down
  pre-up /sbin/ifconfig enp4s0 up
  provider dsl-provider


The final piece of the puzzle is configuring PPP. To do this we need to install the pppoe package (PlusNet is using PPPoE encapsulation):

$ apt-get install pppoe

Then we need to configure the peer. The name of this must match the provider specified in the interfaces file. To do this, we create /etc/ppp/peers/dsl-provider:

password mypassword
pty "/usr/sbin/pppoe -I enp4s0 -T 80 -m 1412"

lcp-echo-interval 20
lcp-echo-failure 3

# Override any connect script that may have been set in /etc/ppp/options.
connect /bin/true
mtu 1492


# Keep trying to connect indefinitely
maxfail 0

Using our new configuration

This is simply a case of bringing up the dsl-provider interface:

$ ifup dsl-provider