Eir, an ONT, and OpenWRT without the F3000 modem

Eir have finally offered their FTTH service in my area; the black box went up on the pole a few months ago, but it’s taken them a while to get it all hooked in. Installation was done about one week after I signed up for the service (reducing my bill by 30% for the next two years and quintupling the speed, at the cost of a locked-in two years); one new cable strung from the telephone pole to the house, run down the wall, and a new hole punched through the wall to bring the fibre optic cable into the back of the optical network terminal (ONT). The technician then unplugged the phone line from the F3000 and plugged in a standard Ethernet cable from the ONT to the F3000. “Should be up in about an hour”, he said. I wandered back upstairs, expecting the need to tether via my phone for a bit, and found that my service was already active.

The thing about an ONT is it presents an Ethernet connection to the router/modem. Mine was already in bridge mode, so the OpenWRT installation was doing all the PPPoE work anyway. Thus I reasoned that it should be possible to take the Eir F3000 modem out of the path, and go from ONT -> Pi4/OpenWRT -> home network.

The first attempt failed; I swapped the network cable out of the ONT into the Pi’s USB gigabit Ethernet adapter, and after a few minutes the connection wasn’t up. So, put it back, and read up some more.

Turns out that Eir expect packets on the WAN to be tagged into VLAN 10. When you read up on OpenWRT and VLAN tagging, everything mentions using the Switch section of the networking configuration. On a Pi4, however, there is no switching topology/chipset, so all of those instructions didn’t provide me with any help. I eventually found a random post that basically said “create an aliased interface for the WAN device, and set the VLAN tag there, then use that new aliased device interface for the network connection”.

Setup

All of this is via the LuCI web interface. It’s just manipulating text files, but I haven’t bothered to check what the modifications are yet.

Network > Interfaces > Devices

Add Device Configuration

Set up a new 802.1q device, and give it a VLAN ID of 10 (this is what Eir want, after all)

A screenshot showing a new aliased device configuration, of type 802.1q. The VLAN ID is set to 10, and the base device is eth1 (the physical interface). The resulting name is eth1.10. Enable IPv6 is ticked.

Back over to Network > Interfaces > Interfaces, and modify the WAN interface. Instead of eth1 (which is the base name for the USB adapter), use eth1.10 and set it to DHCP Client.

A screenshot showing the interface configuration for a DHCP-enabled interface that uses the VLAN 10 tagged eth1.10 device as the physical interface.

Then add one for DHCPv6.

A screenshot showing the interface configuration for a DHCPv6-enabled interface that uses the VLAN 10 tagged eth1.10 device as the physical interface.

For both WAN interfaces, make sure they’re assigned to the WAN firewall zone.

Switch the cable from the ONT over to the Pi. Click Save & Apply to make the configuration live.

Sit back and watch both DHCP-configured interfaces come up.

This means I can factory reset the F3000 now, and keep it in a box somewhere as the “crap, the Pi died” backup.

In the “computers are weird” side of life, I noticed that DNS was feeling slow again from several of the PCs at home (all Windows ones). While reading my own bridge mode post, I saw the bit where I’d seen this before, and sure enough, I needed to reset the prefixpolicy to move one of the prefixes further down the list.

Addendum

A side effect of using the same aliased interface for both the DHCP and DHCPv6 logical interfaces is that they’ll show the same amount of traffic on the network counters in the interfaces view.

A screenshot from the OpenWRT network interfaces view, showing the duplication of counters between WAN (IPv4) and WAN6 (IPv6).

Makes sense, since those are packet/interface level counters, not protocol level counters. In PPPoE mode, I don’t recall seeing packet counters for the v6 virtual network interface.