I have another router that cannot do PPPoE but it can do IPv6 and DHCPv6. I want to use a Mikrotik router to terminate the PPPoE connection but have the other router obtain an IP address and send packets over the PPPoE connection that the Mikrotik router established.
Since PPP provides a layer 2 connection this should be easy, right? Just put the PPP interface and an ehternet port in a bridge and done. Except it looks like I can’t put a PPP interface into a bridge?
How do I get the Mikrotik router to forward ethernet frames between a PPPoE tunnel and an ethernet port?
It’s because PPPoE does not provide “layer 2 connection” like you wrote. It is a layer 2 that provide services that layer 3 stuff like IPv4/IPv6 can run on top of it. You can transport IP packets inside the PPPoE tunnel, but no ethernet frames (which is layer 2). But that PPPoE layer 2 is not the same layer 2 from ethernet. Ethernet frames can also transport IP packets, but they have things like MAC addresses, VLAN headers, EtherType headers, etc… that PPPoE doesn’t have at all. A packet inside a PPPoE tunnel is not an ethernet frame. A bridge in RouteOS is a “MAC bridge” that connects together Ethernet-like interfaces:
Ethernet-like networks (Ethernet, Ethernet over IP, IEEE 802.11 in ap-bridge or bridge mode, WDS, VLAN) can be connected together using MAC bridges
So, it’s totally understandable that you cannot add a non-ethernet interface to a bridge. What is the MAC address of that PPPoE interface? There is none. Can you create VLAN over a PPPoE interface? Of course not, where do you put the VLAN header?
Hm, good point, so what I want (receive DHCPv6 on ethernet port and forward it through PPPoE) would require routing of broadcast traffic and thus isn’t possible?
Terminate the ISP IPv6 connection on the Mikrotik, use the DHCPv6 client to receive a delegated prefix and the DHCPv6 server to serve some of this to the other router.
Normally you get a prefix from your ISP through DHCPv6 client. This prefix is assigned to a pool in RouterOS. Then you have many choices, depending on how the other router wants to receive the IPv6 prefix.
If it’s happy with a single /64 prefix and can use SLAAC you just have to add an address entry (IPv6 → Addresses) on the interface connecting the other router (a bridge for instance) and turn on Advertise.
If that router can use DHCPv6 then you’ll only needs to configure a DHCPv6 server instance on that interface, with the pool above as source. Here you can configure prefix lengths other than /64.
This doesn’t apply to your other router, because it can’t do PPPoE, but you can even configure PPPoE Server on RouterOS, with the pool as IPv6 prefix pool, and the other router can connect to your router with PPPoE and get the IPv6 address and prefixes too.