I’d like to have multiple IPv6 addresses using “from-pool” on the same interface. If the have the same “address=…” specified, only one of them survives a reboot. Minimal working example (tested in RouterOS 7.11.2, but I’ve seen this behaviour already in RouterOS 6):
Using a single pool is not an option here. We have a few thousand devices and each has it’s own fd10:x:y:z::/64 prefix. In certain environments, we need an additional network that we can advertise to hosts, and this can’t be in the fd10::/16 range.
I know that article and I understand why you advocate using a larger net. For most applications that is definitely the way to go. But we have lots of other constrains that I didn’t mention here, some of which we don’t have control over. Mobile carriers limiting us to ::/64 per SIM card is only one example.
So I’d like to stop this discussion here and come back to the question I asked.
That’s not the problem at all. The issue here is, you aren’t aggregating your ULA into a single pool. The mobile carrier’s /64, you can just use NAT66 or NPTv6 for that whatever. But aggregate the pool, then configure the ULA /64 on per VLAN basis. It will work fine on reboot.
Sorry, but that’s wrong. Again: You don’t know all constrains and that’s okay. Please accept that. I’ve used these ULAs here to create a simple minimal example. Reality is more complex.
All I want to know is why in the first case only one address survives the reboot while in the second case both addresses survive the reboot.
Using eui64=yes triggers this bug, because it assigns the same (eui64-based) address= to both /ipv6/address entries, causing one of them to get lost during reboot. So setting address= explicitly is the only work-around I know at the moment.
I know that global IDs should be generated randomly. We have several thousand remote devices in multi-homed environments with LTE connections (two modems with SIM cards from two different carriers) and for about 20% of the devices we also have DSL or some other kind of customer provided internet connection with we use to establish VPN connections into our network. For the SIM cards we have a /47 address space per carrier (these are ULAs and routed straight into our company network, no internet access at all) and can use them to assign static /64 prefixes to the individual SIM cards. This restricts us to 2^17 /64 prefixes per mobile carrier. With the number of devices we have, random assignment is not practical since we fill a significant amount of the available address space. That’s why we chose to assign the prefixes based on device serial numbers.
Yes, that means that most of the “Global ID” part is fixed and not controlled by us. And no, the carriers are very reluctant to hand out larger address spaces. Apparently they run into memory limits for the routing tables on their towers.
Using eui64=yes triggers this bug, because it assigns the same (eui64-based) address= to both /ipv6/address entries, causing one of them to get lost during reboot. So setting address= explicitly is the only work-around I know at the moment.