NICMx / Jool

SIIT and NAT64 for Linux
GNU General Public License v2.0
320 stars 66 forks source link

Configuration strangeness on CentOS #333

Closed Chaz6 closed 4 years ago

Chaz6 commented 4 years ago

The host is running CentOS 7 using kernel 5.7.7 from the elrepo-kernel repository with all the jool software (cli, xtables modules and kernel modules) installed successfully. I followed the documentation at https://jool.mx/en/run-nat64.html and ran modprobe jool && jool instance add "example" --netfilter --pool6 64:ff9b::/96, however it did not pass any packets. After doing some searching, I ran modprobe jool pool6=64:ff9b::/96 and then it started working! Is this expected behavior?

ydahhrk commented 4 years ago

What's Jool's version, according to dmesg?

Chaz6 commented 4 years ago
[  128.541591] jool_common: loading out-of-tree module taints kernel.
[  128.542491] Jool: Core Jool v4.1.1.0 module inserted.
[  128.542816] NAT64 Jool v4.1.1.0 module inserted.
ydahhrk commented 4 years ago

I'm very confused. Jool 4.1.1's code completely ignores modprobe arguments.

I'm going to try and replicate your environment. Did you try doing the modprobe jool && jool instance .. again from a clean slate (ie. after rebooting)?

ydahhrk commented 4 years ago

Works properly on my setup. I tested both in the default kernel (3.10.0-1127.13.1.el7.x86_64), and also the mainline stable (5.7.7-1.el7.elrepo.x86_64).

As a matter of fact, it complains if I send an unknown argument:

3.10:

[root@localhost ~]# modprobe jool pool6=64:ff9b::/96
modprobe: ERROR: could not insert 'jool': Unknown symbol in module, or unknown parameter (see dmesg)
[root@localhost ~]# dmesg
[ 1359.529507 ] jool: Unknown parameter 'pool6'

5.7:

[root@localhost ~]# modprobe jool pool6=64:ff9b::/96
[root@localhost ~]# dmesg
[ 1371.536971] Jool: Core Jool v4.1.1.0 module inserted.
[ 1371.537654] jool: unknown parameter 'pool6' ignored
[ 1371.536971] NAT64 Jool v4.1.1.0 module inserted.

(These validations belong to modprobe, by the way. Jool itself doesn't care.)

Was an old version of Jool installed on that machine at some point?

Aside: Do you have other reasons to use Linux 5.7? Centos 7.7's default kernel is supported by Jool.

Chaz6 commented 4 years ago

I only discovered Jool recently, and I installed it freshly from git master, commit fc1a6877b. For now I am trying it on my development host which I keep up to date with the most recent kernel as I use it to experiment with various software.

Chaz6 commented 4 years ago

At least I know this is not expected, so I will try to figure out the cause. Thanks for your input.