I tried to setup IPv6 on dynamic prefixes, given by ISP and it make me crazy
ISP - Linux router - Mikrotik - LAN
I got prefix and right IPv6 on both interfaces of Linux router by wide-dhcpv6.
I sent RA by radvd through LAN interface
interface enp3s0
{
AdvSendAdvert on;
Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
/ipv6 neighbor print
Flags: R - router
0 R address=fe80::f66d:4ff:fe94:4e62 interface=wan
Is any way to setup Mikrotik interfaces using RA from Linux router? The main problem is dynamic prefixes from ISP, so, I canāt wrote fixed IPv6 on Mikrotik
Last time I checked, unconditional accept-router-advertisements=yes worked correctly. Well, if the āspecial silent modeā of operation where you wonāt see neither the address nor default route anywhere in RouterOS counts as ācorrectlyā. But it was there and router could use it.
Sorry, but how to check this silent mode? I mean, that if I sent this RA from Linux router, all Mikrotik clients must receive correct IPv6 with this prefix too, isnāt it?
Iām confused at all⦠After switching on/off ND, router can ping external IPv6, sorry⦠I suppose itās problem with RA intervals, but Iāll solve it laterā¦
Nowadays problem in absense of dynamic prefix on bridge interface
/ipv6 nd prefix> print
Flags: X - disabled, I - invalid, D - dynamic
so ROS donāt send RA to clients
If I setup it manually, RA sended to clients, but itās unroutable adresses
/ipv6 nd prefix> print
Flags: X - disabled, I - invalid, D - dynamic
0 prefix=::/64 interface=bridge on-link=yes autonomous=yes valid-lifetime=4w2d preferred-lifetime=1w
Of course. There is no way a RA advertised address will be further propagated to clients.
You need to add a static /64 (different from the one you use between the two systems now)
to your LAN side and add a route in your Linux router to route that to the MikroTik.
Then the MikroTik will further advertise that to the clients (when that is enabled).
Or use DHCPv6. RouterOS canāt yet use it to give addresses to clients, but it can use it to receive prefix from upstream router and then automatically take /64s from that for use on other interfaces and advertise those to clients using RA.
Excuse me, I donāt understand⦠So, if ROS give clients fake adresses, how clients can access Internet hosts? IPv6 donāt support NATā¦
As I wrote before, ISP give me dynamic prefix, so I āforwardā it to Mikrotik by wide-dhcp6 and radvd. Mikrotik accesses Internet IPv6 hosts whithout any problems⦠But what can I do with ROS clients, which needed Internet hosts too? Can you provide some example, please?
When you get only a single /64 from your provider, there is nothing you can do.
(except from removing the Linux router from the network)
When you get more than a /64, e.g. a /60 or a /56 or a /48, you should take a single /64 from that range and use it on the network behind your MikroTik.
When the prefix is dynamic, you should configure a DHCPv6 client on your MikroTik that requests a prefix, and a DHCPv6 server on your Linux router.
On the Linux router there would have to be a method to get the prefix from the provider, maybe also a DHCPv6 client requesting a prefix.
All in all, the existence of that Linux router makes everything more complicated. Try to get rid of it.
I have a question regarding prefix delegation. My ISP is giving me /56 prefix. They agreed to give me static prefix and so far itās working fine. However: I have some services accessible from internet and I have to make some allow filters in my FW. Therefore I manually set the /64 prefix which RB is giving to my internal hosts ⦠and the server which serves external services is configured with static IPv6 address.
Now my concern: if ISP ever decides to screw me up and changes the /56 prefix they are delegating me, how can I delegate a right /64 prefix to my internal hosts? The thing with prefixes is that RB seems to choose randomly which one it will use if left to its own will. It happened that after a reboot of RB, /64 prefix for internal hosts changed and my statically configured host lost IPv6 connectivity to the rest of world (inclding other LAN hosts). So I had to manually configure also the IPv6 address of RBās LAN interface.
As I understand, RB doesnāt support proper IPv6 DHCP server (yet), so I can not set the static address of the server on RB itself (that was true a year ago), but how about the rest of clients? So that they donāt loose IPv6 internet connectivity in such a case? Yet another thing is updating the DNS mappings (AAAA and PTR to IPv6 records), so I really hope my ISP doesnāt screw things ā¦
Unfortunately, I canāt remove Linux router, because itās webserver too. ISP give me /56⦠Are you know any DHCP-server, which can take dynamic prefix to provides it to clients (ROS)? Iām too lazy to write complicated script to rewrite config and restart DHCPv6 server May be, some ideas, how to do it?
Nowadays I request /56 from ISP and send /64 to ROS (as I wrote RA packet above).
In that case, put the MikroTik on the line and the Linux machine behind it. Then it will just work, I have a similar config.
(MikroTik requests the prefix and uses RA to announce it to the Linux system)
Then donāt be lazy and reconfigure your Linux server. Add DHCPv6 server, tell it to send a portion of /56 to internal network, where it will be picked by RB. Itās a one-time operation and then everything will work correctly.
@mkx: Itās a combined problem. One thing is RouterOS being ācreativeā (I didnāt test it lately, but Iām going to believe you). Only way to properly fix it is for MikroTik to make it behave reliably and predictably. The whole dynamic nature of DHCPv6 is different story. Youāre basically always at ISPās mercy. You can either trust their word about keeping the prefix same, or to configure everything dynamically, including DNS updates, which can be a lot of (wasted) work. Or try to get all-static config from them. If nothing else, it would send a message that you really donāt want the prefix changed under any circumstances.
Iām create configuration to tell ROS IPv6 config
/ipv6> address print
Flags: X - disabled, I - invalid, D - dynamic, G - global, L - link-local
# ADDRESS FROM-POOL INTERFACE ADVERTISE
0 DL fe80::6e3b:6bff:fe12:29f9/64 bridge no
1 DL fe80::6e3b:6bff:fe12:29f8/64 wan no
2 DG 2a02:2168:d83:9e19:626c:a251:c42e:8d93/64 wan no
/ipv6> dhcp-client print
Flags: D - dynamic, X - disabled, I - invalid
# INTERFACE STATUS REQUEST PREFIX
0 wan bound address 2a02:2168:d83:9e00::/56, 1h49m6s
prefix
ROS ping hosts very well, but how to automatically transmit this config to clients on other interfaces in bridge?
Add an address to each internal interface and specify from-pool.
That pool name is the pool you also specified in the DHCPv6 client.
Set RA advertisement so this address is advertised to the clients on that interface.