Netcat не работает с Iptables NAT - PullRequest
0 голосов
/ 06 декабря 2018

Я столкнулся с очень странным поведением с netcat и iptables.

У меня есть две виртуальные машины Linux (клиент и сервер) в разных подсетях:

  • IP-адрес клиента: 10.10.30.104
  • IP-адрес сервера: 10.10.10.103

Они взаимодействуют через другую виртуальную машину Linux (шлюз).Шлюз имеет две сетевые карты:

  1. enp0s8: 10.10.10.101
  2. enp0s9: 10.10.30.101

Для маршрутизации между Клиентом и Сервером яуправлял некоторыми правилами SNAT и DNAT в iptables шлюза.

Все виртуальные машины работают в Ubuntu 16.04 в VirtualBox 5.2.22.

Я использую netcat для прослушивания на стороне сервера следующим образом:

nc -v -l 44 > /dev/null

На клиентеКроме того, я отправляю некоторые фиктивные данные следующим образом:

dd if=/dev/zero bs=1024 count=102400 | nc -v  10.10.30.101 #gateway_ip 44
  • Первая проблема: передача завершится успешно при первом испытании, однако, если я повторю эту передачу сразу после первого испытания, онавыходит из строя.Итак, я должен подождать пару минут, чтобы пройти еще один успешный маршрут.Почему?

  • Вторая проблема: у каждого успешного испытания разная скорость.Почему?


iptables шлюза настроен следующим образом:

enter image description here

enter image description here

...