-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot open SCTP connections from FreeBSD to Linux #432
Comments
The problem also occurs when trying to connect from FreeBSD to FreeBSD. |
I ran
2018/02/01 00:30:45 socat[901] I socat by Gerhard Rieger and contributors - see www.dest-unreach.org
2018/02/01 01:30:40 socat[2676] I socat by Gerhard Rieger - see www.dest-unreach.org |
Can you capture the traffic on the FreeBSD box on all interfaces and provide the capture file? The |
Are those real machines or VMs? If VMs: which adapter type do you use? |
The machines are VMs. Both machines has a NAT adapter and an Internal Network adapter. Data captured on the FreeBSD internal network interface (em1): 23:12:42.430110 IP6 fe80::a00:27ff:fe3b:b9c9 > ip6-allrouters: ICMP6, router solicitation, length 16 Data captured on the FreeBSD loopback interface (lo0): 23:12:57.479029 IP 192.168.20.40.38101 > 10.0.2.15.12327: sctp (1) [HB REQ] The ABORT is captured on the loopback interface sent from the NAT service. When disabling the NAT adapter, SCTP works properly. I don't understand why the connection should fail even though the 4-way handshake has completed between the endpoints though... Or how to get SCTP to work when the NAT interface is enabled. I tried to specify only the internal network IP with the |
If you specify the local IP addresses on both sides, it should work. There should be not address parameters in the INIT or INIT-ACK chunk. We can chat in Oslo about why it doesn't work with NAT boxes being involved... |
Ah, that makes sense. I noticed that there are address parameters in the INIT and INIT-ACK chunks, so I attempted to connect the Packet capture: em1.txt 21:18:01.335896 IP 192.168.20.40.39895 > 192.168.10.10.12327: sctp (1) [INIT] [init tag: 3472062275] [rwnd: 1864135] [OS: 123] [MIS: 123] [init TSN: 3735537264] NEAT client output: Connecting to: 192.168.10.10:12327 Initializing NEAT context... As can be seen from the client log, the only SCTP event notification received is the SCTP_ASSOC_CHANGE event. No SCTP_ADAPTATION_INDICATION event is received, etc. |
You're at risk of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7906b00f5cd1cd484fced7fcda892176e3202c8a |
When running
tneat
as a server on Linux as follows:$ ./tneat -P prop_sctp.json
and connecting to this server with tneat on FreeBSD as follows:
$ ./tneat -P prop_sctp.json <IP address>
on_connected
is never called on the client side on FreeBSD. However, this works when both machines are running Linux. This also works when e.g. TCP is used, so the problem seems to be related to how NEAT handles SCTP and how it is handled differently on Linux and FreeBSD.The Linux machine ran Ubuntu 16.04.1 LTS 4.13.0-32-generic. The FreeBSD machine ran FreeBSD 11.1-RELEASE r321309.
The text was updated successfully, but these errors were encountered: