docker ретрансляция tcp в сети docker - PullRequest
0 голосов
/ 24 апреля 2020

TCP-передача происходит в любой сети docker.

простой тест: создайте ВМ в Azure, сенто 7,7

yum update
yum install docker
systemctl start docker
docker run --name mynginx1 -P -d nginx

tshark -tad -i any -Y "tcp.analysis.retransmission"

curl localhost:32768

, что приведет к повторной передаче TCP.

[root@vm1 ~]#  tshark -tad -i any -Y "tcp.analysis.retransmission"
Running as user "root" and group "root". This could be dangerous.
Capturing on 'any'


121 2020-04-24 07:26:55.504210673 109.81.211.189 -> 10.0.0.4     SSH 92 [TCP Retransmission] Encrypted request packet len=36
418 2020-04-24 07:27:04.982215355 109.81.211.189 -> 10.0.0.4     SSH 92 [TCP Retransmission] Encrypted request packet len=36
572 2020-04-24 07:27:10.746826933   172.17.0.1 -> 172.17.0.2   HTTP 147 [TCP Retransmission] GET / HTTP/1.1
576 2020-04-24 07:27:10.747858244   172.17.0.2 -> 172.17.0.1   TCP 307 [TCP Retransmission] http > 40514 [PSH, ACK] Seq=1 Ack=80 Win=29056 Len=239 TSval=1217913 TSecr=1217912
580 2020-04-24 07:27:10.747930345   172.17.0.2 -> 172.17.0.1   TCP 680 [TCP Retransmission] http > 40514 [PSH, ACK] Seq=240 Ack=80 Win=29056 Len=612 TSval=1217914 TSecr=1217913[Reassembly error, protocol TCP: New fragment overlaps old data (retransmission?)]

та же проблема на Kubernetes (протестирована с фланелевым плагином)

эта проблема значительно снижает производительность контейнера, в нашем случае высокопроизводительный анализатор сообщений внутри docker дает в 4 раза меньше результатов , Использование docker хост-сети решает проблему. Но использование мостовой сети вызывает эту проблему.

Пожалуйста, совет или помощь? для справки - причина повторной передачи видна из проволочной акулы как внешнее / дублированное введите изображение детали трассы проволочной акулы

...