NICMx / Jool

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

Documentation incorrectly says forwarding must be enabled #119

Closed toreanderson closed 9 years ago

toreanderson commented 9 years ago

According to https://github.com/NICMx/NAT64/blob/master/INSTALL#L26-L28, IPv4 and IPv6 forwarding must be enabled for Jool to do it's magic. This isn't actually the case, Jool works just fine with fowarding disabled (surprisingly enough):

$ modprobe jool pool4=185.47.42.1 pool6=64:ff9b::/96
$ grep . /proc/sys/net/*/conf/*/forwarding
/proc/sys/net/ipv4/conf/all/forwarding:0
/proc/sys/net/ipv4/conf/default/forwarding:0
/proc/sys/net/ipv4/conf/eth0/forwarding:0
/proc/sys/net/ipv4/conf/lo/forwarding:0
/proc/sys/net/ipv6/conf/all/forwarding:0
/proc/sys/net/ipv6/conf/default/forwarding:0
/proc/sys/net/ipv6/conf/eth0/forwarding:0
/proc/sys/net/ipv6/conf/lo/forwarding:0
$ tcpdump -c 4 -ni eth0 net 64:ff9b::/96 or host 185.47.42.1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:13:27.191655 IP6 2a02:c0:1001:100::145 > 64:ff9b::57ee:2102: ICMP6, echo request, seq 192, length 64
12:13:27.191694 IP 185.47.42.1 > 87.238.33.2: ICMP echo request, id 60061, seq 192, length 64
12:13:27.191947 IP 87.238.33.2 > 185.47.42.1: ICMP echo reply, id 60061, seq 192, length 64
12:13:27.191966 IP6 64:ff9b::57ee:2102 > 2a02:c0:1001:100::145: frag (0|64) ICMP6, echo reply, seq 192, length 64

So either the documentation is wrong, or if Jool is supposed to check the forwarding sysctls, then that check doesn't seem to work correctly.

Tore

ydahhrk commented 9 years ago

Well.

I recall verifying this a couple of times in the past, and concluded we needed the sysctls both times. Now, however, I can confirm they don't seem to do anything.

I'm hesitant to remove this from the doc since I don't know what's going on. Fortunately, keeping it doesn't break anything.

Will eventually figure out where are those sysctls used in the kernel and will choose a course of action then.