# socks5 proxy on smtp transport, TCP Fast Open # # NOTE: ensure that TFO is fully enabled in the kernel. # For linux: sysctl net.ipv4.tcp_fastopen=3 # munge loopback # # # Wipe any stored TFO cookie, to start from known state. # Disable TFO blackhole-detection as we seem to be running afoul of that sudo perl system ("ip tcp_metrics delete 127.0.0.1"); system ("[ -e /proc/sys/net/ipv4/tcp_fastopen_blackhole_timeout_sec ] && echo 0 > /proc/sys/net/ipv4/tcp_fastopen_blackhole_timeout_sec"); **** # # TFO both clients and server, no cookie yet server -tfo PORT_D <<\x05\x01\x00 >>\x05\x00 <<\x05\x01\x00\x01\x7f\x00\x00\x01\x04\xc8 >>\x05\x00\x00\x01\x7f\x00\x00\x01\xbe\xef 220 Connected OK EHLO 250-server id 250 MAIL FROM 250 RCPT TO 250 DATA 354 go ahead . 250 accepted OK QUIT 250 bye **** # # exim -odi -bs -DOPT= ehlo test.ex mail from:<> rcpt to: data Date: Fri, 17 Dec 2004 14:35:01 +0100 Subject: message should be sent connection trying TFO via proxy; no cookie yet . quit **** # # # # TFO client, not server server PORT_D <<\x05\x01\x00 >>\x05\x00 <<\x05\x01\x00\x01\x7f\x00\x00\x01\x04\xc8 >>\x05\x00\x00\x01\x7f\x00\x00\x01\xbe\xef 220 Connected OK EHLO 250-server id 250 MAIL FROM 250 RCPT TO 250 DATA 354 do me . 250 accepted OK QUIT 250 bye **** # # exim -odi -bs -DOPT= ehlo test.ex mail from:<> rcpt to: data Date: Fri, 17 Dec 2004 14:35:01 +0100 Subject: message should be sent connection trying TFO via null-auth proxy . quit **** # # # # TFO client and server server -tfo PORT_D <<\x05\x01\x00 >>\x05\x00 <<\x05\x01\x00\x01\x7f\x00\x00\x01\x04\xc8 >>\x05\x00\x00\x01\x7f\x00\x00\x01\xbe\xef 220 Connected OK EHLO 250-server id 250 MAIL FROM 250 RCPT TO 250 DATA 354 do me mate . 250 accepted OK QUIT 250 bye **** # # exim -odi -bs -DOPT= ehlo test.ex mail from:<> rcpt to: data Date: Fri, 17 Dec 2004 14:35:01 +0100 Subject: message should be sent connection using TFO via null-auth proxy . quit **** # millisleep 500 # sudo perl system ("[ -e /proc/sys/net/ipv4/tcp_fastopen_blackhole_timeout_sec ] && echo 3600 > /proc/sys/net/ipv4/tcp_fastopen_blackhole_timeout_sec"); **** # # Ends