OpenWrt/LEDE Project

  • Status Unconfirmed
  • Percent Complete
    0%
  • Task Type Bug Report
  • Category Base system
  • Assigned To No-one
  • Operating System All
  • Severity Low
  • Priority Very Low
  • Reported Version openwrt-18.06
  • Due in Version Undecided
  • Due Date Undecided
  • Private
Attached to Project: OpenWrt/LEDE Project
Opened by Christof Schulze - 16.10.2019
Last edited by Yousong Zhou - 01.11.2019

FS#2555 - kmod-nat46 incorrect src-address for icmp packet too big

On a x86 openwrt with kernel
Linux kd-qemu 4.14.137 #0 SMP Sun Jun 23 13:10:01 2019 x86_64 GNU/Linux

with loaded nat46 module

[    8.118800] nat46: adding device (clat)
[    8.165298] nat46: netdevice nat46 'clat' created successfully.
[    8.168445] nat46: configure device (clat) with 'local.style RFC6052 local.v4 10.139.0.0/17 local.v6 fdff:ffff:ffff:5254:ee:43::/96 local.ea-len 0 local.psid-offset 0 remote.style RFC6052 remote.v4 0.0.0.0/0 remote.v6 64:ff9b::/96 remote.ea-len 0 remote.psid-offset 0'

I am observing ICMP packet too big messages that are sent from the router to the client that have an incorrect src-address: Instead of the router-IPv4 IP, the clients IPv4-IP is placed in the src-address field in the ipv4 packet.

In this particular case, I have a client connected to the openwrt router. The client has IP address 10.139.41.200 and the router has 10.139.0.1

tcpdump shows:

21:07:12.910199 IP 10.139.41.200 > 10.139.41.200: ICMP 140.82.118.4 unreachable - need to frag (mtu 1354), length 1220

The client discards these packets instead of processing them which results in broken network connectivity.

Instead the packet should look like this:

21:07:12.910199 IP 10.139.0.1 > 10.139.41.200: ICMP 140.82.118.4 unreachable - need to frag (mtu 1354), length 1220


Christof Schulze commented on 16.10.2019 19:21

sorry for this, I only saw the version field after posting. This is not for trunk but for r7835+24-89808e211c according to /etc/openwrt-version

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing