EoIPv6

I’ve been experimenting with EoIPv6 (/interface eoipv6) and noticed that it doesn’t use GRE like EoIP. It uses EtherIP (RFC 3378) instead.

A few notes about this.

  1. EtherIP is archaic. RFC 3378, dated September 2002, ‘… describes the EtherIP, an early tunneling protocol, to provide informational and historical context …’, rather than for practical application.

  2. EoIPv6 uses 12 reserved bits in the EtherIP header for the tunnel-id (0–4095). This is contrary to RFC 3378, which requires that these these bits MUST be 0 (zero).

  3. The MikroTik implementation swaps the first four bits of the EtherIP header with the second four bits. If the tunnel-id is 1234 (0x4d2), then the EtherIP header is 0x43d2. (3 is the value of the version field, which MUST be 3.)

  4. The overhead is low: two octets only.

  5. It seems to be a hack, but it works.

However, given that it doesn’t use GRE, I doubt it will interoperate with other vendors’ equipment, but I can’t say anything definitive about this.

EoIP is Mikrotik proprietary tunnel, so it cannot interoperate with other vendors any way.

If you want to use pure GRE then use Gre6 tunnel.

Good point.

However, as far as I am aware, GRE6 (/interface gre6) only supports routed tunnels (IP over IPv6), not bridged ones (Ethernet over IPv6): it lacks the tunnel-id attribute of EoIPv6.