cvmiller/nat64

Not working on Latest OpenWRT Trunk

Closed this issue ยท 16 comments

It gives out an error saying that the LAN interface doesn't have a GUA Adress, witch it has, and after analyzing the script it will check for a valid WAN6 IPv6 Adress, I have to recommend you to remove that, because for example, my ISP (MEO, Portugal ) doesn't give out IP adresses to the WAN, only a Prefix Pelegation Prefix, and it will give out an error in those cases.

Hope you can help me! :D

PS's:
After I remove the IPv6 checks it gives out these errors:

root@OpenWrt:~# /root/nat64_start.sh -w eth0.12 -6 eth0.12
=== Check that WAN interface is present and up
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
=== Collected address info:
=== WAN4 81.193.95.230
=== WAN6
=== LAN6
=== NAT64 Prefix 64:ff9b::/96
iptables: Bad rule (does a matching rule exist in that chain?).
ip6tables: Bad rule (does a matching rule exist in that chain?).
killall: tayga: no process killed
mv: can't rename '/etc/tayga.conf': No such file or directory
=== Making tun device: nat64
Incorrect number of arguments on line 4
Device "nat64" does not exist.
Cannot find device "nat64"
rm: can't remove '/tmp/db/tayga/dynamic.map': No such file or directory
Cannot find device "nat64"
Error: any valid address is expected rather than "dev".
Cannot find device "nat64"
Cannot find device "nat64"
=== Testing tayga
PING 64:ff9b::8.8.4.4 (64:ff9b::808:404): 56 data bytes

--- 64:ff9b::8.8.4.4 ping statistics ---
3 packets transmitted, 0 packets received, 100% packet loss
Pau!

Before I removed this happened:

root@OpenWrt:~# /root/nat64_start.sh -w eth0.12 -6 eth0.12
=== Check that WAN interface is present and up
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
=== Collected address info:
=== WAN4 81.193.95.230
=== WAN6
=== LAN6
=== NAT64 Prefix 64:ff9b::/96
LAN GUA IPv6 not detected. NAT64 requires end to end IPv6 connectivity

The script does not currently support Link-local-only for WAN, although this is a perfectly valid config. I'll have to update it for the purpose.

However, the script is failing on 2 other things, which I need more info:

  1. LAN6 does not detect your LAN GUA address. Perhaps you have statically defined the address, or for some other reason the GUA doesn't end in "::1"
  2. It appears that Tayga is not creating a TUN device (tayga --mktun), and perhaps there is something broken there as well.

Could you provide your LAN6 address, and run the command taya --mktun and provide the output.

thanks.

Can you provide an update on your issue?

Hey!

I'm sorry for the delay in feedback, I've been busy.
I can tell you that the lan doesn't have a static address as my ISP gives out the addresses with DHCP-PD.
As for the command I'll need to test it in the router, witch I don't have here right now, but I'll get back to you as soon as I can

PS: can't you filter out the link local addresses when asking for a output for the addresses in the system? (I know nothing of Linux, it's just a "advice" ๐Ÿ˜๐Ÿ˜๐Ÿ˜)

Results of tayga --mktun and the result is:

root@OpenWrt:~# tayga --mktun
Incorrect number of arguments on line 4

Output of ifconfig (although outdated):

br-lan    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          inet6 addr: 2001:8a0:6f38:5400:xxxx:xxxx:xxxx:xxxx/60 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:38494474 errors:0 dropped:0 overruns:0 frame:0
          TX packets:97769094 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6315419449 (5.8 GiB)  TX bytes:135182642194 (125.8 GiB)

eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:235822768 errors:0 dropped:0 overruns:7444 frame:0
          TX packets:43968119 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1108756526 (1.0 GiB)  TX bytes:600181135 (572.3 MiB)
          Interrupt:4

eth0.1    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:727314 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1915360 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:548955353 (523.5 MiB)  TX bytes:1770266694 (1.6 GiB)

eth0.12   Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:81.193.95.230  Bcast:81.193.95.255  Mask:255.255.255.0
          inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:235078603 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42029325 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:318434687348 (296.5 GiB)  TX bytes:7231176233 (6.7 GiB)

ifb4eth0.12 Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:221639491 errors:0 dropped:0 overruns:0 frame:0
          TX packets:221639491 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:32
          RX bytes:303883874967 (283.0 GiB)  TX bytes:303883874967 (283.0 GiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:16310 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16310 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1330572 (1.2 MiB)  TX bytes:1330572 (1.2 MiB)

wlan0     Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21969340 errors:0 dropped:0 overruns:0 frame:0
          TX packets:61264074 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4305480207 (4.0 GiB)  TX bytes:83512191936 (77.7 GiB)

wlan0-1   Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:270383 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:20018784 (19.0 MiB)

wlan1     Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet6 addr: fe80::724f:57ff:fe8a:c48e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16961890 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36309830 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2087900013 (1.9 GiB)  TX bytes:52225004358 (48.6 GiB)

wlan1-1   Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet6 addr: fe80::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:574734 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:42355631 (40.3 MiB)

I hope it helps as it gave me a lot of work to blur out the device specific info ahahahah

Thanks for the info. It really isn't necessary to blot out Link-Local addresses, since they will not cross a router, and hence of little value, unless someone is already on your network (and then you have other problems).

The biggest problem is that tayga, the daemon which does the real work in NAT64 is failing with an odd message.

I'll set up a router on 18.06.1 and see what I can determine about the failure.

I have tested the nat64_start.sh script on 18.06.1 (release), and it works correctly. It could be that something is broken on Trunk. Since trunk is a moving target, things are broken and fixed all the time. Is it possible that you can put your router on 18.06.1 release and try again?

Closing.

Hey!

Sorry I didn't answer you, I was cough up with school and life in general.
I can't put my router in 18.06.1 as the device is heavily used in my home and people would beat me if we had no tv, internet or phone ahahah.
But I've tested it again and I saw one issue I didn't mention last time, my ISP only gives out a prefix, not an IP to the wan so when your script checks the wan it sees no IP and gives up, while I actually have a IPv6 connection.
This issue gave me errors because of lines number 137, 138, 139 (where it asks for the wan prefix) and in the line 182.

I'm really sorry for taking so long to answer.

UPDATE:After reboot I get this error:
nat64 (2065): unable to open /var/etc/tayga-nat64.conf, aborting: No such file or directory

Although using link-local address on the WAN is a perfectly acceptable method, it is not currently supported in the nat64_start.sh script.

You may want to try to statically assign your WAN link-local address at line 123. Something like this:
WAN_IP6="fe80::1234:4567:8910:1234"

But tayga may not like using a link-local address without scope.

Unfortunately, I don't have an ISP situation at the moment which use Link-local for WAN connectivity to test.

But why does tayga need a wan IPv6 address? That's not it's problem. It just needs to take the IPv6 packets destined to it's prefix and 'NAT' them.
Am wrong?

I can help you make the tests if you want.

It may work with a link-local address. But I don't know if it will work without scope. Have you tried the work-around I suggested above (line 123)?

I'm not with the router, as soon as I can I'll test it.

Great. Here's another line to try at position 123 if the first one doesn't work:
WAN_IP6="fe80:๐Ÿ”ข4567:8910:1234%eth1"

You will have to put in your own link-local address of the WAN interface, and put the WAN interface ID after the % sign. This is the scope I mentioned earlier.

tiagogaspar8, please download the latest (version 1.0) and test. I have removed the requirement for the WAN interface to have a GUA. Hopefully this will work for you.

Hey!
Sorry for the delay again.
I decided not to go on with tayga as jool offered me a easier stable way to deploy the nat64 service.

Thanks for all the help and sorry for the trouble I caused.

No worries. Jool is a great piece of software. Have fun!