Bummer... and I really do not understand why that would be. Maybe it is the integration with the automatic routing protocols?I want to also add the need for IPv6 Policy Routing (using routing marks and routing tables)
mrz mentioned back in 2012 that this would require a rewrite of the routing so I guess we'd have to wait until v7 for this.
Yeah, I think policy routing is pretty important, but I left it out of the triage list because:I agree with everything and I want to also add the need for IPv6 Policy Routing (using routing marks and routing tables)
mrz mentioned back in 2012 that this would require a rewrite of the routing so I guess we'd have to wait until v7 for this.
Yeah - and I think the Mikrotik guys fall into the camp that advocates that NAT should not ever be implemented in IPv6 because it's no longer needed and that we should adjust our mindset into the realm of complete abundance of address space eliminating the need for it.Stateful NAT
I know that we all hate having state in our network. And we all hate running out of addresses. And IPv6 is going to solve that. But NAT in IPv6 would be useful for e.g. transparent HTTP/HTTPS proxies; or DNS filtering (maybe you are a broadband provider for schools); etc. It's in the Linux kernel from 3.9.0.
This is what Unique Local Addresses (ULA), fc00::/7, are intended for.NAT66 prefix translation
We're not all lucky enough to have forward-thinking ISPs willing to statically assign our address blocks to us. Some of us have a different routing prefix every other day, and it sure sucks if your print driver has a static IPv6 address for a network-attached printer, and that address becomes invalid every other Tuesday.
There appear to be two reasons:Why would ISP's be changing prefix so often? With the sheer number I plan on setting my reservations ridiculously high, like 6 months to a year. Could make tracking old information a bit easier.
Do you mean on WlanX interfaces? Over ethernet, you can still use queue trees / simple queues + connection/packet marking to implement qos there.We need 'set priority' rule for IPv6 mangle, otherwise we cannot do QoS except over VPLS tunnels.
I agree that this seems to be the most in line with "natless world" IPv6 vision, and was what I also wanted to implement back when I was working at an enterprise shop (moved back to ISP shop for the extra challenges) - but in my experimentation, I found that it was difficult to convince the OS (Linux and Windows both) whether it should use the ULA or the Globally-unique address whenever connecting to a given host. This is because both are seen by the OS as "global" scope. In practice, my test boxes tended to try using the ULA when going to Google, etc.It's perfectly feasible to use both a (static) ULA addressing scheme and distribute the daily changing global prefix through DHCPv6-PD. It has some drawbacks but it can be done today, with MT's.
I implemented ULA's in my home/office/test network (all MikroTik equipment), so I have limited experience with it. As long as you block (reject) fc00::/7 addresses from leaving the network on your border router, you won't notice any delay. Between sites you probably have a VPN anyway, so routing different ULA-prefixes between them shouldn't be a problem. Within your site you route ULA's the same way like global addresses. (See also RFC 4193: Unique Local IPv6 Unicast Addresses.)I agree that this seems to be the most in line with "natless world" IPv6 vision, and was what I also wanted to implement back when I was working at an enterprise shop (moved back to ISP shop for the extra challenges) - but in my experimentation, I found that it was difficult to convince the OS (Linux and Windows both) whether it should use the ULA or the Globally-unique address whenever connecting to a given host. This is because both are seen by the OS as "global" scope. In practice, my test boxes tended to try using the ULA when going to Google, etc.It's perfectly feasible to use both a (static) ULA addressing scheme and distribute the daily changing global prefix through DHCPv6-PD. It has some drawbacks but it can be done today, with MT's.
Another wrinkle in this approach for my enterprise gig was that we would've basically needed a unique ULA for each campus in our organization, and the idea of "oh I want to talk to this other host with a ULA" gets stranger when the source/dest aren't in the same /48. Is "dst fdxx:xxxx:xxxx::/48 reachable from my fdxxxxx/48?" Maybe, maybe not. How does my host know that this dst ULA is on my own network and not some other site that goofed and leaked their ULAs into global DNS?
Furthermore, I knew my boss well enough to know that hell would freeze over before he would allow SLAAC on our network. (heh - and of course he'd first need to learn what SLAAC was, but once he did, he would immediately denounce it as "not on my watch" type of tech.)
Not all possible. I don't want to have to set up queue trees for radio links (AirFiber and NV2) where the modulation can change and overall throughput fluctuates, and so then you are doing QoS to a moving target. It is better to use the strict priority queueing that the radio offers in each case, b/c the radio should know at any given moment how much bandwidth it has to work with. With AirFiber, it is done with VLAN priority (CoS), which the 'set priority' action sets, and in NV2's case it is similar ('set priority' for the traffic). Either way you need set priority, unless you use a bridge filter to do it but then you need extra bridges you wouldn't need otherwise etc.Do you mean on WlanX interfaces? Over ethernet, you can still use queue trees / simple queues + connection/packet marking to implement qos there.We need 'set priority' rule for IPv6 mangle, otherwise we cannot do QoS except over VPLS tunnels.
There's even an action to set DSCP on IPv6 packets... so you could have a bridge rule that sets dot1p priority based on DSCP and achieve layer2 QoS on ethernet.
(Full disclosure - I haven't actually tried this in the lab, so there may be some kind of hidden gotcha that I'm not thinking of, but this is all possible)
+9999999999999999999I will add:
1.Support Radius "Delegated-IPv6-Prefix" attribute for PPPoE
2.IPv6 accounting
100% agree that queueing based on a moving target is bad, and I guess I just forgot on that last point. Whoops.the radio should know at any given moment how much bandwidth it has to work with.
...
Also, there is no bridge filter match rule for DSCP...
This was essentially my point - that the router has little to do with a multi-prefixed deployment. It's just going to forward both prefixes per the rules you specify, no questions asked. It's the end-nodes that must all be savvy with juggling the multiple prefixes and knowing when to use which one as the source address / dest address.I did however have trouble configuring more than one fixed IPv6 address on my printer (a pretty decent Kyocera multifunctional) and couldn't get it working on a FreeNAS server either.
^^ Sadly this is all too true. That said, they company I work for has shifted their policy from "No IPv6 needed" to "IPv6 for any edge services." We're a multi-national consulting company so hopefully that shift filters into actions for more sites and services run by our customers. I'm not saying it's the silver bullet but it never hurts. A lot of our larger customers are already using load-balancer products like F5's BigIP and in those cases it's stupid simple to present a AAAA and have the load-balancer translate the IPv6 traffic back to IPv4 servers. It gives customers an excuse to get us in and configure their routing and security products to get IPv6 over to at least the load-balancers. That said I've also been knighted the IPv6 evangelist so I'm probably the one screaming the loudestMeanwhile, I was sad to notice that neither my bank's secure website nor my Chase card's secure website have any AAAA records in DNS....
This is possible on Linux with ip tokenAbility to specify which interfaces get which subnets assigned to them from a pool of IPv6 space
I have not found a way to do this - e.g. if I were to receive a /56 from dhcpv6-pd, it would be nice to say: "MyPool:ff::1/64 -> GuestBridge"
If this is doable, I'd love to know how.
https://www.linux.org/docs/man8/ip-token.htmlDESCRIPTION
IPv6 tokenized interface identifer support is used for assigning well-known host-part addresses to nodes
whilst still obtaining a global network prefix from Router advertisements. The primary target for tokenized
identifiers are server platforms where addresses are usually manually configured, rather than using DHCPv6 or
SLAAC. By using tokenized identifiers, hosts can still determine their network prefix by use of SLAAC, but
more readily be automatically renumbered should their network prefix change [1]. Tokenized IPv6 Identifiers
are described in the draft [1]: <draft-chown-6man-tokenised-ipv6-identifiers-02>.
That's how Cisco lets you do it as well. When I saw "from pool" in RouterOS, I thought it would work the same way.This is possible on Linux with ip token
https://www.linux.org/docs/man8/ip-token.html
So maybe MT could fairly easy implement that in RouterOS as well. I agree this would be useful.
Unfortunately the download server for updating and the registration for CHR (trial) licenses do not.So, I saw forum.mikrotik.com has a AAAA now. I'm pretty sure that's new.
Code: Select all
/ipv6 address add address=::1ee7:t00c:ee/64 from-pool=some-pool interface=lala
E.g. you have a /56 or /48 pool from the provider.About from-pool - what it is missing when comparing to the ip-token?
if you add IPv6 address like thisCode: Select all
/ipv6 address add address=::1ee7:t00c:ee/64 from-pool=some-pool interface=lala
Thanks for explaining it succinctly. I've always found that my explanations for this ended up being 2 paragraphs at minimum -E.g. you have a /56 or /48 pool from the provider.
You can set "[64 bits]/64 from pool" but you cannot control WHICH /64 from the pool it will assign to WHICH interface.
It should be possible to select the subnet number (8 or 16 bits in the above cases) for each interface, so every time the
same address is assigned to the interface(s), even after adding an address to another interface and rebooting.
When the pool prefix from the provider is fixed, the entire address will be fixed. When it is variable, only the prefix will
vary but the subnet within the prefix will remain the same.
What we're asking for in this feature is this:About from-pool - what it is missing when comparing to the ip-token?
if you add IPv6 address like thisCode: Select all
/ipv6 address add address=::1ee7:t00c:ee/64 from-pool=some-pool interface=lala
Let me state this differently than the others.E.g. you have a /56 or /48 pool from the provider.
You can set "[64 bits]/64 from pool" but you cannot control WHICH /64 from the pool it will assign to WHICH interface.
It should be possible to select the subnet number (8 or 16 bits in the above cases) for each interface, so every time the
same address is assigned to the interface(s), even after adding an address to another interface and rebooting.
When the pool prefix from the provider is fixed, the entire address will be fixed. When it is variable, only the prefix will
vary but the subnet within the prefix will remain the same.
That "index number" is what I referred to as the "subnet number".Let me state this differently than the others.
+ I get a /60 from my provider
+That gives me a pool of 16 /64's
+ Each /64 should be given an "index number"
+1 & Janisk, this was one of the most pronounced and immediate differences I noticed moving from an OpenWRT router to my first MikroTik. If you have something capable of running OpenWRT (GNS3 maybe), fire it up and take a look at the LAN side interfaces (maybe create a couple). You'll be able to give it some values, they use nibbles and assume you're working in 4 bit chunks but I'd be fine with hex too for really fine grained control.Pe1chl, proximus and ZeroByte - differences noted. now let us see what can be done about them.
^^ Reference: https://wiki.openwrt.org/doc/uci/network6Distribution of prefixes onto downstream interfaces (including size, ID and class hints)
I'd say that it's more common (judging on threads here) that people use it to enhance the services offered by a Mikrotik - Asterisk, etc... or else to run more full-featured services where the built-in is only quite basic, like DNS.Isn't this one of the specific reasons why people run OpenWRT in MetaROUTER? I haven't looked at OpenWRT's IPv6 capabilities.
But it already does that! Doesn't it?Another probably-easy-to-implement feature that would be quite useful in IPv6 is:
Automatic Null route for IPv6 pool addresses
/ipv6 dhcp-client print
Flags: D - dynamic, X - disabled, I - invalid
# INTERFACE STATUS REQUEST PREFIX
0 test1 bound prefix 2001:db8:ffff::/56, 4m36s
/ipv6 route print
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, o - ospf, b - bgp, U - unreachable
# DST-ADDRESS GATEWAY DISTANCE
...
2 ADSU 2001:db8:ffff::/56 1
Not all possible. I don't want to have to set up queue trees for radio links (AirFiber and NV2) where the modulation can change and overall throughput fluctuates, and so then you are doing QoS to a moving target. It is better to use the strict priority queueing that the radio offers in each case, b/c the radio should know at any given moment how much bandwidth it has to work with. With AirFiber, it is done with VLAN priority (CoS), which the 'set priority' action sets, and in NV2's case it is similar ('set priority' for the traffic). Either way you need set priority, unless you use a bridge filter to do it but then you need extra bridges you wouldn't need otherwise etc.
Also, there is no bridge filter match rule for DSCP...