OpenWrt IKEv2 NAT traversal (or similar) problem

Peter Naulls peter at chocky.org
Wed May 31 07:20:18 PDT 2023


On 5/30/23 21:09, Yousong Zhou wrote:
> On Wed, 31 May 2023 at 06:38, Peter Naulls <peter at chocky.org> wrote:
>>

> 
> Is it that your dns traffic is not going through the tunnel?  curl
> -vvv should reveal the IP address it tries to connect.  One
> possibility is that maybe the resolv result does not work.

Yes, a DNS was an early check, I don't think this is the problem though.
When I said no data comes back from curl, this wasn't 100% correct - here's
the output (https://www.yahoo.com/ which is another problem site):


   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* 
   Trying 74.6.231.21:443...
* Connected to www.yahoo.com (74.6.231.21) port 443 (#0)
* ALPN: offers h2
* ALPN: offers http/1.1
*  CAfile: C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
*  CApath: none
} [5 bytes data]
* [CONN-0-0][CF-SSL] TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
   0     0    0     0    0     0      0      0 --:--:--  0:00:04 --:--:--     0

In Wireshark on the VPN interface, I can see that after the TLSv1 Client
Hello and then ACK, after that I get two errors:

"TCP Previous segment not captured" (port 443) and "Dup ACK".  The latter might 
just be a side effect of VPN retries or something.

Looking at the interface itself, during the stream of ESP packets, we get a
TCP re transmission packet from the VPN host to the LAN IP, which seems wrong. 
This is a match for this tcpdump from br-lan on OpenWrt:

14:14:45.368484 IP (tos 0x0, ttl 255, id 64433, offset 0, flags [none], proto 
UDP (17), length 128)
     192.168.113.102.4500 > 89.187.170.130.4500: [no cksum] UDP-encap: 
ESP(spi=0xce938746,seq=0x52), length 100
14:14:47.919812 IP (tos 0x68, ttl 60, id 18554, offset 0, flags [none], proto 
TCP (6), length 342)
     20.25.241.18.443 > 192.168.113.102.62792: Flags [P.], cksum 0x12c7 
(correct), seq 0:302, ack 1, win 172, length 302
14:14:50.120142 IP (tos 0x0, ttl 255, id 64434, offset 0, flags [none], proto 
UDP (17), length 112)
     192.168.113.102.4500 > 89.187.170.130.4500: [no cksum] UDP-encap: 
ESP(spi=0xce938746,seq=0x53), length 84

Which I think is already a clue - the response is coming back via TCP 443 not
over the VPN UDP 4500.

Thanks again.









More information about the openwrt-devel mailing list