RouterOS in a Docker container- I’m not sure that is at all possible. My understanding is that Docker containers are meant to run a single application, not the whole OS. Containers are self-contained in that they contain an application plus all the required libraries, but not the OS kernel. RouterOS is an OS, not an application.
RouterOS as a Docker host… Come on, guys, we are talking about the CHR here, which is already a virtual appliance. You need Docker host- just run it in a separate virtual appliance. Keeping things simple is always a GoodThing.
A Docker image doesn’t contain the Linux kernel, but it does contain everything beyond the kernel, including the shell and OS binaries. RouterOS does use the Linux kernel, but it has proprietary binaries and an opaque shell on top of it. So it can theoretically be made into a Docker image.
Agree. Though having RouterOS itself (as in, not necessarily CHR) support running Docker images would be great. If nothing else, it would allow the running of (effectively) lighter VMs, which would in turn be used for custom web servers, custom RADIUS servers, and other added custom software to work within the same physical device. Sure, you can do that today with KVM and MetaRouter, but those run a second copy of a kernel in a full blown VM, rather than sharing the OS’ kernel, thus reducing overall RAM and CPU use.
RouterOS is much more than just a shell and some binaries. The kernel and many modules (eg: netfilter/iptables) are an essential part of RouterOS.
Just think about the so many features and fixes that are postponed for v7 just because of the kernel.
In every single setup i put a Mikrotik device on a border, this is followed by various services, often requiring few resources, web frontend TLS, some PHP scripts, some databases and so on. If i could run these on Mikrotik somehow – there would be no sense to setup and support other OSes at all.
Secondly, if you look at the container management market you will become sad, Synology’s Docker is close to friendly, but others are very far from people, they are super geeky. I ran your metarouter and KVM stuff without even reading a manual, so i think you have a real opportunity to master this market.
Please read the topic title again. This thread is about CHR - i.e. a virtual appliance always running on top of some hypervisor, and NOT about other RouterOS builds that you usually use on border devices. This thread has its purpose, so please do not hijack it with an unrelated stuff.
as far as i see/remember, RouterOS uses custom kernel with custom modules. just mount the disk where normally CHR/ROSx86 runs on to another virtual machine as secondary volume and see for yourself. i did not have much at hand but an old RouterOS 5.21 installation running some legacy dude. grabbing + uncompressing the kernel revealed this and that:
crowley:~ me$ strings vmlinux | grep '^Linux version'
Linux version 2.6.35 (build@build6) (gcc version 4.5.0 (GCC) ) #15 Fri Oct 12 08:26:11 EEST 2012
crowley:~ me$ strings vmlinux | grep '/build/' | head -1
/home/build/5.21/kernel/linux6/arch/x86/kernel/alternative.c
and the latter one hints me a custom (RouterOS-version-dependent) build directory.
but let’s just assume, this may be vanilla kernel, you have a bunch of custom kernel loadable modules in the routers installation (trafflow.ko, best.ko, snif.ko) and in a docker environment one may not taint the kernel with nothing, so you just cannot load modules. see here for more info
vm tools support. specifically, network and disk reporting back to the host and time syncing
a sane install process for ESXi. ova would be wonderful, but even just using a SCSI disk instead of IDE would be a huge improvement
Would be nice:
split horizon DNS
CNAME-like ability for DNS (e.g. when I create 5 names for the same host I’d like to be able to update its IP once instead of 5 times)
If I had a million dollars to fund your development:
centralized management of CSS switches from CHR.
in a perfect world I’d be able to configure a group of CSS switches via the CHR
but at least the ability to pull a backup from the CSS switch in routeros would be awesome
Note:
Yes, I know only the first two are really CHR features. In fact, personally I’d be more likely to use the CSS management feature from a CRS, not a CHR.
So on an off-topic note, the two CSS features would be a non-issue for me if I could pull a backup from the CSS switch in an automated fashion. Manual backups never happen, as we all know very well.
How hard would it be to make a CHR that did not do routing but acted as a synchronization server for Mikrotik routers.
Everyone knows that they can use VRRP however lets say you add some IP’s, firewall rules, users etc to the master and then you have to remember to also do it on the slave. It would sure be awesome if it had similar functionality to many other offerings where master config is replicated to slave. Ideally the master would have this ability on its own without a third configuration server however any way that its possible would be welcome. I would even pay for a different license level or additional feature upgrade as I know it would take some development.
P.S. I am aware that some have cobbled up some scripting to try and make their own replication. I am talking about an official Mikrotik function.
Only a couple of routing daemons in the world today are multithreaded in the way you’re wanting. It doesn’t really matter HOW they address the convergence issues as long as they do. They said a few years ago that they optimized the process and it’s way faster in v7… whenever that is.