Загрузка данных


/bin/sh <<'TB_TSO_TEST'
case "$(/sbin/ifconfig bridge0)" in
  *'inet 192.168.77.2 '*) ;;
  *) echo 'Stop: run this on M4.'; exit 1 ;;
esac
/sbin/ifconfig bridge0 | sed -n '1,3p'

tb_old=$(/usr/sbin/sysctl -n net.inet.tcp.tso) || exit 1
[ "$tb_old" = 1 ] || { echo "Stop: TCP TSO is already $tb_old; no change made."; exit 1; }

for tb_target in 10.12.165.142 172.21.0.1; do
  tb_if=$(/sbin/route -n get "$tb_target" | awk '/interface:/{print $2}')
  [ "$tb_if" = utun10 ] || { echo "Stop: $tb_target uses $tb_if."; exit 1; }
done

tb_connection() {
  netstat -an -p tcp | awk '/194[.]186[.]63[.]/ && /ESTABLISHED/ {print $4, $5}'
}
tb_peer=$(tb_connection)
[ -n "$tb_peer" ] || { echo 'Stop: no corporate TCP connection.'; exit 1; }
sudo -v || exit 1

tb_restore() {
  trap - EXIT
  if [ "$(/usr/sbin/sysctl -n net.inet.tcp.tso)" = "$tb_old" ]; then
    echo 'TCP TSO remains at its original value.'
  elif sudo -n /usr/sbin/sysctl -w "net.inet.tcp.tso=$tb_old" &&
       [ "$(/usr/sbin/sysctl -n net.inet.tcp.tso)" = "$tb_old" ]; then
    echo "Verified: TCP TSO restored to $tb_old."
  else
    echo "Restore failed. Run: sudo /usr/sbin/sysctl -w net.inet.tcp.tso=$tb_old"
  fi
}
trap tb_restore EXIT
trap 'exit 130' HUP INT TERM

echo 'BEFORE:'
date -u
netstat -an -p tcp | awk '/194[.]186[.]63[.]/ && /ESTABLISHED/ {print}'

sudo -n /usr/sbin/sysctl -w net.inet.tcp.tso=0 || exit 1
[ "$(/usr/sbin/sysctl -n net.inet.tcp.tso)" = 0 ] || exit 1
sleep 10

echo 'TEST WITH TCP TSO DISABLED:'
date -u
netstat -an -p tcp | awk '/194[.]186[.]63[.]/ && /ESTABLISHED/ {print}'
/usr/bin/nc -4 -n -z -v -G 6 -w 6 10.12.165.142 8443
/usr/bin/dig @172.21.0.1 jss.corp.mail.ru A +time=4 +tries=1 +notcp +ignore +noall +comments +answer
netstat -an -p tcp | awk '/194[.]186[.]63[.]/ && /ESTABLISHED/ {print}'

if [ "$(tb_connection)" = "$tb_peer" ]; then
  echo 'Corporate TCP connection unchanged.'
else
  echo 'Corporate connection changed; comparison is inconclusive.'
fi
echo 'Restoring original TCP TSO value now.'
TB_TSO_TEST