MikroTik, IPv6, GRE6 and OSPFv3

This is not a very interesting post, but perhaps it will show up in a search and save some poor soul the hour or two I wasted.

I was trying to a get a GRE6 tunnel up between two MikroTik routers and run OSPFv3 across it. One router was my main home router, which has been up and running for months. The other was a RB951G that I use for experimentation. Three things got in my way.

I tried to set up my first GRE6 effort using the link local addresses of the two routers. After much cursing, I posted a question on the MikroTik forum, and received a response from MikroTik – that GRE6 does not work between link local addresses! The end points must be global unicast addresses. Why this limitation would be there is a mystery to me, but it is IMHO a bug.

I reset my test router to its default state and began again. This time I used the global unicast addresses of the two interfaces for the GRE6 endpoints and GRE6 worked fine.

Then I tried to get OSPFv3 working across the GRE6 tunnel. No go! More cursing… and after much experimenting and googling, I found a forum post that caused me to look at the GRE6 tunnel virtual endpoints more closely – it turns out that GRE6 tunnel virtual endpoints have no link local addresses. Argh! And of course without link local addresses, OSPFv3 can’t work.

OK: I regrouped and decided, just for the sake of experiment, to instead get OSPFv3 working between the two real interfaces involved. I reset the configuration of my test router back to default and set up OSPFv3 between ether5 on the remote router and ether5 on my test router. To do this, I first had to take ether5 off the master-port where it was configured by default. Could I get OSPFv3 working? No, I could not. But after a while (more cursing) I realised that there was no link local address on my test router’s real port, ether5, either! I tried various things to get a link-local address to appear, such as disabling/enabling the port, but to no avail.

It turns out that if you remove an Ethernet interface from a master-port, you need to reboot the router for the newly-independent interface to get its own MAC address. And without an independent MAC address, the router cannot autoconfigure a link local address.

So – OSPFv3 works, but not over a GRE6 tunnel. GRE6 tunnels work, but not between link local addresses. And if you remove an Ethernet interface from a master-port, you need to reboot the router before trying to work with IPv6 on that interface.

BTW – this was all with RouterOS 5.24. Do let me know if you use a later version and the above issues have been fixed…


Leave a Reply

Your email address will not be published. Required fields are marked *