My host machine application is trying to establish a SCTP connection at port 38412 to a docker container which is running SCTP server at port 38412. I am mapping and publishing the ports but getting an error. My host application is timing out at the following check:
if (connect(fd, (struct sockaddr*)&myaddr,sizeof(myaddr))== -1){
higLog("SCTP CLIENT connect failed, port %d, Error %s",
port, strerror(errno));
return -1;
}
Same port no. mapping doesnβt work with sctp. Try different port no. for the container and host for the mapping. This change helped in solving my issue.
faced with a similar situation and trying to ask for help - I realized that I really have no idea how docker interacts with iptables to do itsβ magic. Unable to explain the problem - I spoke to my coach who recommended I build an isolated test case to demonstrate the issue.
+ cat /etc/docker/daemon.json
{ "userland-proxy": true }
++ docker ps -q
+ for i in $(docker ps -q)
+ docker rm -f 8ba2df66cf92
8ba2df66cf92
+ docker network prune -f
Deleted Networks:
mybr0
+ docker network create --driver=bridge --subnet=172.28.0.0/16 --ip-range=172.28.5.0/24 --gateway=172.28.5.254 mybr0
787b9bde508dba2261d74e5b9372bd35eb9ff7cfae89f436141feb309fb5ee78
+ tshark -i any -q sctp
+ sleep 1
+ docker run --rm --network mybr0 --ip 172.28.5.1 --publish 1234:1234/sctp -v /usr/lib64:/usr/lib64 -v /usr/bin/sctp_test:/usr/bin/sctp_test registry.access.redhat.com/ubi9/ubi sctp_test -H 172.28.5.1 -P 1234 -l -d 2
Running as user "root" and group "root". This could be dangerous.
Capturing on 'any'
local:addr=172.28.5.1, port=search-agent, family=2
seed = 1733813572
Starting tests...
socket(SOCK_SEQPACKET, IPPROTO_SCTP) -> sk=3
bind(sk=3, [a:172.28.5.1,p:search-agent]) -- attempt 1/10
listen(sk=3,backlog=100)
Server: Receiving packets.
recvmsg(sk=3) + netstat -laSnp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
sctp :::1234 LISTEN 57759/docker-proxy
sctp 0.0.0.0:1234 LISTEN 57752/docker-proxy
+ sctp_test -H 192.168.122.43 -P 4321 -h 192.168.122.43 -p 1234 -s -x 1 -d 2
remote:addr=192.168.122.43, port=search-agent, family=2
local:addr=192.168.122.43, port=rwhois, family=2
seed = 1733813573
Starting tests...
socket(SOCK_SEQPACKET, IPPROTO_SCTP) -> sk=3
bind(sk=3, [a:192.168.122.43,p:rwhois]) -- attempt 1/10
Client: Sending packets.(1/1)
sendmsg(sk=3, assoc=0) 1 bytes.
SNDRCV(stream=0 flags=0x1 ppid=371520400
sendmsg(sk=3, assoc=0) 1 bytes.
SNDRCV(stream=0 flags=0x1 ppid=1901294125
sendmsg(sk=3, assoc=0) 1 bytes.
SNDRCV(stream=0 flags=0x1 ppid=1788810168
sendmsg(sk=3, assoc=0) 1 bytes.
SNDRCV(stream=0 flags=0x1 ppid=933540669
sendmsg(sk=3, assoc=0) 1 bytes.
SNDRCV(stream=0 flags=0x1 ppid=386168570
sendmsg(sk=3, assoc=0) 1 bytes.
SNDRCVNotification: SCTP_ASSOC_CHANGE(COMMUNICATION_UP)
(assoc_change: state=0, error=0, instr=10 outstr=10)
recvmsg(sk=3) Data 1 bytes. First 1 bytes: <empty> text[0]=0
recvmsg(sk=3) Data 1 bytes. First 1 bytes: <empty> text[0]=0
SNDRCV(stream=0 ssn=0 tsn=1341563197 flags=0x1 ppid=1901294125
cumtsn=1341563197
recvmsg(sk=3) (stream=0 flags=0x1 ppid=1460147230
sendmsg(sk=3, assoc=0) 1 bytes.
SNDRCV(stream=0 flags=0x1 ppid=209436834
sendmsg(sk=3, assoc=0) 1 bytes.
SNDRCV(stream=0 flags=0x1 ppid=405171373
sendmsg(sk=3, assoc=0) 1 bytes.
SNDRCV(stream=0 flags=0x1 ppid=1479754597
sendmsg(sk=3, assoc=0) 1 bytes.
SNDRCV(stream=0 flags=0x1 ppid=936625727
close(sk=3)
Data 1 bytes. First 1 bytes: <empty> text[0]=0
SNDRCV(stream=0 ssn=0 tsn=1341563198 flags=0x1 ppid=1788810168
cumtsn=1341563198
recvmsg(sk=3) Data 1 bytes. First 1 bytes: <empty> text[0]=0
SNDRCV(stream=0 ssn=0 tsn=1341563199 flags=0x1 ppid=933540669
cumtsn=1341563199
recvmsg(sk=3) Data 1 bytes. First 1 bytes: <empty> text[0]=0
SNDRCV(stream=0 ssn=0 tsn=1341563200 flags=0x1 ppid=386168570
cumtsn=1341563200
recvmsg(sk=3) Data 1 bytes. First 1 bytes: <empty> text[0]=0
SNDRCV(stream=0 ssn=0 tsn=1341563201 flags=0x1 ppid=1460147230
cumtsn=1341563201
recvmsg(sk=3) Data 1 bytes. First 1 bytes: <empty> text[0]=0
SNDRCV(stream=0 ssn=0 tsn=1341563202 flags=0x1 ppid=209436834
cumtsn=1341563202
recvmsg(sk=3) Data 1 bytes. First 1 bytes: <empty> text[0]=0
SNDRCV(stream=0 ssn=0 tsn=1341563203 flags=0x1 ppid=405171373
cumtsn=1341563203
recvmsg(sk=3) Data 1 bytes. First 1 bytes: <empty> text[0]=0
SNDRCV(stream=0 ssn=0 tsn=1341563204 flags=0x1 ppid=1479754597
cumtsn=1341563204
recvmsg(sk=3) Data 1 bytes. First 1 bytes: <empty> text[0]=0
SNDRCV(stream=0 ssn=0 tsn=1341563205 flags=0x1 ppid=936625727
cumtsn=1341563205
recvmsg(sk=3) Notification: SCTP_ASSOC_CHANGE(SHUTDOWN_COMPLETE)
(assoc_change: state=3, error=0, instr=0 outstr=0)
recvmsg(sk=3) 8.5.1 SCTP 208 DATA DATA DATA DATA DATA DATA DATA DATA
52 184.296948061 192.168.122.43 β 172.28.5.1 SCTP 208 DATA (retransmission) DATA (retransmission) DATA (retransmission) DATA (retransmission) DATA (retransmission) DATA (retransmission) DATA (retransmission) DATA (retransmission)
53 184.296960905 172.28.5.1 β 192.168.122.43 SCTP 64 SACK
54 184.296960905 172.28.5.1 β 192.168.122.43 SCTP 64 SACK
55 184.296992493 192.168.122.43 β 172.28.5.1 SCTP 56 SHUTDOWN
56 184.296994564 192.168.122.43 β 172.28.5.1 SCTP 56 SHUTDOWN
57 184.297000952 172.28.5.1 β 192.168.122.43 SCTP 52 SHUTDOWN_ACK
58 184.297000952 172.28.5.1 β 192.168.122.43 SCTP 52 SHUTDOWN_ACK
59 184.297010138 192.168.122.43 β 172.28.5.1 SCTP 52 SHUTDOWN_COMPLETE
60 184.297022829 192.168.122.43 β 172.28.5.1 SCTP 52 SHUTDOWN_COMPLETE
61 229.266328325 192.168.122.43 β 172.28.5.1 SCTP 84 INIT
62 229.266335197 192.168.122.43 β 172.28.5.1 SCTP 84 INIT
63 229.266379559 172.28.5.1 β 192.168.122.43 SCTP 308 INIT_ACK
64 229.266379559 172.28.5.1 β 192.168.122.43 SCTP 308 INIT_ACK
65 229.266399935 192.168.122.43 β 172.28.5.1 SCTP 300 COOKIE_ECHO DATA
66 229.266402789 192.168.122.43 β 172.28.5.1 SCTP 300 COOKIE_ECHO DATA (retransmission)
67 229.266446197 172.28.5.1 β 192.168.122.43 SCTP 68 COOKIE_ACK SACK
68 229.266446197 172.28.5.1 β 192.168.122.43 SCTP 68 COOKIE_ACK SACK
69 229.266474789 192.168.122.43 β 172.28.5.1 SCTP 68 DATA
70 229.266477903 192.168.122.43 β 172.28.5.1 SCTP 68 DATA (retransmission)
71 229.266532280 192.168.122.43 β 172.28.5.1 SCTP 208 DATA DATA DATA DATA DATA DATA DATA DATA
72 229.266535147 192.168.122.43 β 172.28.5.1 SCTP 208 DATA (retransmission) DATA (retransmission) DATA (retransmission) DATA (retransmission) DATA (retransmission) DATA (retransmission) DATA (retransmission) DATA (retransmission)
73 229.266544529 172.28.5.1 β 192.168.122.43 SCTP 64 SACK
74 229.266544529 172.28.5.1 β 192.168.122.43 SCTP 64 SACK
75 229.266557710 192.168.122.43 β 172.28.5.1 SCTP 56 SHUTDOWN
76 229.266560039 192.168.122.43 β 172.28.5.1 SCTP 56 SHUTDOWN
77 229.266566416 172.28.5.1 β 192.168.122.43 SCTP 52 SHUTDOWN_ACK
78 229.266566416 172.28.5.1 β 192.168.122.43 SCTP 52 SHUTDOWN_ACK
79 229.266576215 192.168.122.43 β 172.28.5.1 SCTP 52 SHUTDOWN_COMPLETE
80 229.266583435 192.168.122.43 β 172.28.5.1 SCTP 52 SHUTDOWN_COMPLETE