Okay, I have a bunch of questions and every time I think I have figured something out, something else is weird.
I am setting up IPv6 on my network, since I recently discovered that Spectrum offers this where I am. I have read a BUNCH of forum posts. I am putting the work in to try and understand what I am doing and what should be happening.
The weird thing is I am getting a random Dynamic Global address on only one of my VLANs and I have no idea why. I get link-local addresses on each of my interfaces. And a single DG address on a VLAN.
Other questions I have, every post I have seen says to setup the IPv6 client like
You probably dont want this. You will get a route by listening to RAs on your WAN interface. This command just sets a default route pointing to the DHCP server.
Here are some basic commands to see how your IPv6 is working
# basic ipv6
/ipv6/settings/print
# check address assignments
/ipv6/address print
/ipv6/dhcp-client/ print
/ipv6/pool print
# see if ND is working on WAN
/ipv6/neighbor/print where interface=ether1
/ipv6/nd/prefix print
# see if default route is there
/ipv6/route/print
/ipv6/address print
Flags: D - DYNAMIC; G - GLOBAL, L - LINK-LOCAL
Columns: ADDRESS, FROM-POOL, INTERFACE, ADVERTISE
# ADDRESS FROM-POOL INTERFACE ADVERTISE
0 G 2603:7080:953d:1000::1/64 ipv6 BR1 yes
1 D ::1/128 lo no
2 DL fe80::f61e:57ff:fe82:e0ae/64 MAIN no
3 DL fe80::f61e:57ff:fe82:e0ae/64 BASE_MGMT no
4 DL fe80::f61e:57ff:fe82:e0ae/64 IOT no
5 DL fe80::f61e:57ff:fe82:e0ae/64 BR1 no
6 DL fe80::f61e:57ff:fe82:e0ae/64 GUEST no
7 DL fe80::f61e:57ff:fe82:e0ad/64 ether1 no
8 DG fdec:9b34:23e9:5e54:f61e:57ff:fe82:e0ae/64 IOT no
/ipv6/pool print
Flags: D - DYNAMIC
Columns: NAME, PREFIX, PREFIX-LENGTH, EXPIRES-AFTER
# NAME PREFIX PREFIX-LENGTH EXPIRES-AFTER
0 D ipv6 2603:7080:953d:1000::/56 64 6d43m39s
/ipv6/neighbor/print where interface=ether1
Flags: X - disabled, D - dynamic; R - router
0 DR address=fe80::201:5cff:fe8a:4a46 interface=ether1
mac-address=00:01:5C:8A:4A:46 status="reachable"
/ipv6/nd/prefix print
Flags: X - disabled, I - invalid; D - dynamic
0 D prefix=2603:7080:953d:1000::/64 6to4-interface=none interface=BR1
on-link=yes autonomous=yes valid-lifetime=4w2d preferred-lifetime=1w
/ipv6/route/print
Flags: D - DYNAMIC; A - ACTIVE; c - CONNECT, d - DHCP
Columns: DST-ADDRESS, GATEWAY, DISTANCE
DST-ADDRESS GATEWAY DISTANCE
DAd 2603:7080:953d:1000::/56 1
DAc 2603:7080:953d:1000::/64 BR1 0
DAc fdec:9b34:23e9:5e54::/64 IOT 0
DAc fe80::/64 BASE_MGMT 0
DAc fe80::/64 BR1 0
DAc fe80::/64 GUEST 0
DAc fe80::/64 IOT 0
DAc fe80::/64 MAIN 0
DAc fe80::/64 ether1 0
DAc ::1/128 lo 0
Everything seems fine except you are not picking up a default route on ether1. This is odd because you can see that the neighbor on ether1 is announcing it is a router. Let me dig around.
Just a note. When the “accept router advertisement” setting is changed, it only takes effect after a reboot. (Newer versions have a warning about this.)
other-configuration (yes | no; Default: no)
The flag indicates whether hosts should use stateful autoconfiguration to obtain additional information (excluding addresses).
/ipv6/neighbor/print detail where interface=ether1
Flags: X - disabled, D - dynamic; R - router
0 DR address=fe80::201:5cff:fe8a:4a46 interface=ether1
mac-address=00:01:5C:8A:4A:46 status="stale"
After adding add-default-route=yes
/ipv6/route/print
Flags: D - DYNAMIC; A - ACTIVE; c - CONNECT, d - DHCP
Columns: DST-ADDRESS, GATEWAY, DISTANCE
DST-ADDRESS GATEWAY DISTANCE
DAd ::/0 fe80::201:5cff:fe8a:4a46%ether1 1
DAd 2603:7080:953d:1000::/56 1
DAc 2603:7080:953d:1000::/64 BR1 0
DAc fdec:9b34:23e9:5e54::/64 IOT 0
DAc fe80::/64 MAIN 0
DAc fe80::/64 GUEST 0
DAc fe80::/64 BASE_MGMT 0
DAc fe80::/64 BR1 0
DAc fe80::/64 IOT 0
DAc fe80::/64 ether1 0
DAc ::1/128 lo 0
So adding default route does work for me. I guess that’s just how Spectrum does it or a weird combination of what my ISP is doing and what Mikrotik has going on.
Assuming that is the state things SHOULD be, regardless of how we got here, I just have two more questions.
Should I be getting an IPv6 address on my client? All of the forum posts I’ve read left out requesting an address and just requested a client. And I don’t know why, none of them explained.
Any ideas why I am getting a random address on the IOT interface?
Good, it sounds like we’ve learned something about Spectrum.
Should I be getting an IPv6 address on my client? All of the forum posts I’ve read left out requesting an address and just requested a client. And I don’t know why, none of them explained.
Not sure what you mean here. Do you mean “request an IPv6 address for interface ether1”? No, you dont need one.
Any ideas why I am getting a random address on the IOT interface?
That looks like a locally assigned address for some reason. Are you trying to assign it from your pool? If so show us
Just to add some detail as to why you dont need to request an IPv6 address for ether1, it already has one. (Almost) all interfaces with IPv6 enabled generate a “link local” address (starting with fe80) that can be used to communicate with IPv6 devices on their local network.
If you look at the default route
DST-ADDRESS GATEWAY DISTANCE
DAd ::/0 fe80::201:5cff:fe8a:4a46%ether1
The router uses the link local address of the ISP router along with your routers interface physical name to send traffic out to the internet. The ISP router will have a similar route back to your assigned addresses.
For the ether1 IP address, I am only familiar with IPv4. Where you have your LAN addresses assigned by your router to your devices but then you have your WAN address assigned by your ISP to your router. So I am guessing IPv6 doesn’t work the same way.
radvd log
received Router Advertisement on ether1 from fe80::201:5cff:fe8a:4a46
neighbor fe80::201:5cff:fe8a:4a46 on interface ether1 uses managed address configuration
neighbor fe80::201:5cff:fe8a:4a46 on interface ether1 uses other stateful configuration
And I haven’t assigned any addresses like that. That showed up as soon as I setup IPv6 along with the link-local addresses that are generated. That’s why I’m so confused.
/ipv6/address> export
# 2025-03-27 16:20:15 by RouterOS 7.18.2
# software id = T8PN-YYG2
#
# model = RB5009UG+S+
# serial number = HHD0A51AM0X
/ipv6 address
add address=::1 from-pool=ipv6 interface=BR1