Notes on Setting up a Linux router for IPoE DHCP instead of PPPoE.

After a few years of reasonable successful use of bridged VDSL modem with Linux Router running pppoe and nftables my ISP informed me that they do not use authentication on the connection with username and password. In fact they mention they used dhcp IPoE instead of PPPoE. I set up my spare modem as they described and it worked straight way. When I tried my Linux router with bridge modem it no longer worked, until I removed the password and user name. It actually seems to use default username and password in the pppoe software that seemed to function.

I investigated this ISP dhcp setup and came up with the other term IPoE. All a bit strange really, as dhcp is used on most networks to allow automatic configuration of network IP addresses and most IP traffic is over Ethernet. This needs to be taken in context of ISP access PPPoE versus IPoE using DHCP.

There is not much information on how to make this work.

I use the RJ45 ethernet interface call eno1. In my netplan configuration file, /etc/netplan/network.yaml,

the following was made:

After reboot following ip a

these entries were revealed:

So the networkd builtin dhcpd would seem to be functional.

The networkctl status eno1

-

The following dhclient commands are used to manual control dhcp connections. Note however this does not work with the built-in systemd-networkd dhcpd functionality (see man systemd-networkd, networkctl and systemd.netdev).

tldr:

When using pppoe a separate device is created that can be used to filter against. When using IPoE with dhcp same device reference is shared by the IPoE WAN link and the modem LAN web page link. My modem is setup at 192.168.5.1. The fire wall needs to be modified to consider this shared device instead of separate one. Other than changing the $wan reference from ppp1 to eno1 the postrouting to the modem needs to be made IP range specific.

e.g.

  • /app/www/public/data/pages/linux_router/ipoe.txt
  • Last modified: 2023-04-30 Sun wk17 17:43
  • by 127.0.0.1