BMX6 Error - Kernel requires IP_MULTIPLE_TABLES

Good morning,

I'm trying to run BMX6 on a OpenWRT image over a docker container. The installation works fine but when I try to run any BMX6 command it stpps because of something missing related with IP_MULTIPLE_TABLES in the kernel.

Is there a way to solve this? Maybe recompiling the image with a different kernel configuration?

Docker version: 18.06.1-ce, build e68fc7a
OpenWRT image: openwrt-x86-generic-rootfs latest

To be clear:

  • You're using an image from http://downloads.openwrt.org/ and
  • You installed BMX6 by:
    • opkg update
    • opkg install bmx6 bmx6-uci-config luci-app-bmx6

Correct?

This isn't helpful. Can you provide the version number (i.e. OpenWrt 18.06.1 r7258-5eb055306f).

Yes. that's correct.

About the version number its Attitude Adjustment 12.09, r36088
Should I try with a newer one maybe?

Whoa...yes, the old version might be your issue. I wouldn't advise running such outdated software, anyways.

Try using 18.06.1.

Thank you very much. I'll try so :slight_smile:

So, I've updated from 12.09 to 18.06.1 from https://downloads.openwrt.org/releases/18.06.1/targets/x86/generic/
and funnily enough I have the same, but updated, problem

ERROR is_policy_rt_supported: Disabled policy-routing for IPv6! (Kernel requires CONFIG_IPV6_MULTIPLE_TABLES,...)

The only thing I last to try is another host, which may resolve the problem

Something's wrong, then:

root@OpenWrt:~# ip -6 route add :: dev test_wireguard table 2
root@OpenWrt:~# ip -6 route show table 2
:: dev test_wireguard metric 1024 pref medium

Multiple tables ability is complied and exists in OpenWrt.

(Moving to the For Developers section.)

Vhen I try the "ip -6 route add" command it tells me:
RTNETLINK answers: Operation not permitted

Please paste the full command and error.

Example:

root@OpenWrt:~# ip -6 route add :: dev eth0.2 table 2
root@OpenWrt:~# ip -6 route show table 2
:: dev eth0.2 metric 1024 pref medium

That's the command and error inside the operwrt docker container.

/ # ip -6 route add :: dev eth0.2 table 2
ip: can't find device 'eth0.2'
/ # ip -6 route show table 2
/ #

I guess your problem is related to Docker or rather the host system kernel and not OpenWrt. IIRC with Docker you only use OpenWrt's rootfs, but not OpenWrt's kernel.

1 Like

Just to be sure, when I run the "opkg install bmx etc" command, at the end I get a "Fail to connect to ubus".
Does this tell you anything?

/ # opkg install bmx6 bmx6-uci-config luci-app-bmx6
Installing bmx6 (r2018020902-5) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/i386_pentium4/routing/bmx6_r2018020902-5_i386_pentium4.ipk
Installing kmod-iptunnel6 (4.14.63-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/targets/x86/generic/packages/kmod-iptunnel6_4.14.63-1_i386_pentium4.ipk
Installing kmod-ip6-tunnel (4.14.63-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/targets/x86/generic/packages/kmod-ip6-tunnel_4.14.63-1_i386_pentium4.ipk
Installing kmod-tun (4.14.63-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/targets/x86/generic/packages/kmod-tun_4.14.63-1_i386_pentium4.ipk
Installing bmx6-uci-config (r2018020902-5) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/i386_pentium4/routing/bmx6-uci-config_r2018020902-5_i386_pentium4.ipk
Installing luci-app-bmx6 (5) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/i386_pentium4/routing/luci-app-bmx6_5_i386_pentium4.ipk
Installing luci-lib-json (git-18.247.71242-9541751-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/i386_pentium4/luci/luci-lib-json_git-18.247.71242-9541751-1_all.ipk
Installing luci-lib-httpprotoutils (git-18.247.71242-9541751-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/i386_pentium4/luci/luci-lib-httpprotoutils_git-18.247.71242-9541751-1_all.ipk
Installing luci-lib-httpclient (git-18.247.71242-9541751-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/i386_pentium4/luci/luci-lib-httpclient_git-18.247.71242-9541751-1_all.ipk
Installing luci-lib-jquery-1-4 (5) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/i386_pentium4/routing/luci-lib-jquery-1-4_5_i386_pentium4.ipk
Installing luci-lib-dracula (5) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/i386_pentium4/routing/luci-lib-dracula_5_i386_pentium4.ipk
Configuring kmod-iptunnel6.
Configuring kmod-ip6-tunnel.
Configuring kmod-tun.
Configuring bmx6.
Configuring luci-lib-json.
Configuring luci-lib-httpprotoutils.
Configuring luci-lib-httpclient.
Configuring luci-lib-jquery-1-4.
Configuring luci-lib-dracula.
Configuring luci-app-bmx6.
Configuring bmx6-uci-config.
**Failed to connect to ubus**

I would really try with a proper VM using the OpenWrt kernel and the OpenWrt init system. This Docker business is more or less a glorified chroot which will basically inherit the limitations of your host system.

The ubus service is supposed to be started by procd during the system init phase, but I guess your docker container bypasses OpenWrt init.

1 Like

Just for if someone comes across with this post, I finally runned the docker container with the --privileged tag and then inside the OpenWRT container I changed the /proc/sys/net/ipv6/conf/all/forwarding from a 0 to 1.