Рейтинг:0

Запустил сетевой сервер на удаленной машине, но netperf не может установить соединение

флаг at

Я использую две лазурные машины для запуска TCP_STREAM тест от netperf между ними.

Удаленная машина называется mymachine-Standard-D8as-v4-премиум-диск-запад а местный называется mymachine-Standard-D8as-v4-премиум-диск.

Я выполняю следующие шаги:

  1. Начать сетевой сервер на удаленном сервере в порту 2333:
ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$ sudo netserver -p 2333
Запуск сетевого сервера с хостом «IN(6)ADDR_ANY», портом «2333» и семейством AF_UNSPEC

убедитесь, что он запущен:

ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$ ps -ef | grep сетевой сервер
корень 4139 1 0 16:16 ? 00:00:00 /usr/bin/netserver
корень 26990 1 0 16:21 ? 00:00:00 сетевой сервер -p 2333
ubuntu 27011 1906 0 16:25 pts/0 00:00:00 grep --color=auto сетевой сервер

ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$sudo lsof -i tcp:2333
КОМАНДА PID ПОЛЬЗОВАТЕЛЬ ТИП FD УСТРОЙСТВО РАЗМЕР/ВЫКЛ НАЗВАНИЕ УЗЛА
netserver 26990 root 3u IPv6 66361 0t0 TCP *:2333 (СЛУШАТЬ)
  1. Получите IP-адрес удаленной машины:
enP6064s1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
      эфир 00:0d:3a:f6:09:99 txqueuelen 1000 (Ethernet)
      RX-пакеты 53433 байта 76754512 (76,7 МБ)
      Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
      Пакеты TX 8200 байт 1287344 (1,2 МБ)
      Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
      инет 10.2.0.27 сетевая маска 255.255.192.0 широковещательная рассылка 10.2.63.255
      inet6 fe80::20d:3aff:fef6:999 prefixlen 64 scopeid 0x20<ссылка>
      эфир 00:0d:3a:f6:09:99 txqueuelen 1000 (Ethernet)
      RX-пакеты 12508 байт 80101094 (80,1 МБ)
      Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
      Пакеты TX 8136 байт 1286894 (1,2 МБ)
      Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
      инет 127.0.0.1 сетевая маска 255.0.0.0
      inet6 ::1 prefixlen 128 scopeid 0x10<хост>
      loop txqueuelen 1000 (локальная петля)
      RX-пакеты 190 байт 25942 (25,9 КБ)
      Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
      Пакеты TX 190 байт 25942 (25,9 КБ)
      Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0

Который показывает IP-адрес западной машины 10.2.0.27!

  1. Запустите netperf с локальной машины
netperf -H 10.2.0.27 -p 2333 -D 0.5 -c -C -l 20 -t TCP_STREAM -P 0 -f g -- -b 2 -D -o пропускная способность,единицы_пропускной способности

и теперь это дает мне:

установить контроль: вы уверены, что сетевой сервер прослушивает 10.2.0.27 через порт 2333?
create_control не удалось установить управляющее соединение с 0.0.0.0, порт 0, семейство адресов AF_UNSPEC, на 10.2.0.27, порт 2333, семейство адресов AF_INET.

Это так сбивает с толку! Потому что я убедился, что сетевой сервер прослушивает 10.2.0.27 через порт 2333. На самом деле, та же процедура отлично работает на машинах GCE.

Интересно, что может быть причиной этого и как это исправить.

Согласно комментариям от @waltinator, я посмотрел на IP-маршрут, статус ufw, sudo traceroute другая система на обеих машинах.

На западной машине:

ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$ IP-маршрут
по умолчанию через 10.2.0.1 dev eth0 proto dhcp src 10.2.0.27 метрика 100 
10.2.0.0/18 dev eth0 proto kernel scope link src 10.2.0.27 
168.63.129.16 через 10.2.0.1 dev eth0 proto dhcp src 10.2.0.27 метрика 100 
169.254.169.254 через 10.2.0.1 dev eth0 proto dhcp src 10.2.0.27 метрика 100 
ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$ статус ufw
ОШИБКА: Вы должны быть root, чтобы запустить этот скрипт
ubuntu@mymachine-Standard-D8as-v4-premium-disk-west-0001:~$ sudo traceroute 10.1.0.62
traceroute до 10.1.0.62 (10.1.0.62), макс. 30 переходов, пакеты по 60 байт
 1 * * *
...
30 * * *

На локальной машине:

ubuntu@jane-cr22-Standard-D8as-v4-premium-disk-0001:~$ IP-маршрут
по умолчанию через 10.1.0.1 dev eth0 proto dhcp src 10.1.0.62 метрика 100 
10.1.0.0/18 dev eth0 proto kernel scope link src 10.1.0.62 
168.63.129.16 через 10.1.0.1 dev eth0 proto dhcp src 10.1.0.62 метрика 100 
169.254.169.254 через 10.1.0.1 dev eth0 proto dhcp src 10.1.0.62 метрика 100 
ubuntu@mymachine-Standard-D8as-v4-premium-disk-0001:~$ статус ufw
ОШИБКА: Вы должны быть root, чтобы запустить этот скрипт
ubuntu@mymachine-Standard-D8as-v4-premium-disk-0001:~$ статус sudo ufw
Статус: неактивен
ubuntu@mymachine-Standard-D8as-v4-premium-disk-0001:~$ sudo traceroute 10.2.0.27
traceroute до 10.2.0.27 (10.2.0.27), макс. 30 переходов, пакеты по 60 байт
 1 * * *
...
30 * * *

Кроме того, для западной машины я добавил правило входящего порта с приоритетом 100, позволяющее использовать любой источник и пункт назначения с диапазоном портов 2333. Но все равно локальная машина не может соединиться с удаленной.

waltinator avatar
флаг it
Посмотрите на `ip route`, `ufw status`, `sudo traceroute the-other-system` на ОБОИХ.
IsaIkari avatar
флаг at
@waltinator спасибо за ответ! Добавил результаты этих 3-х команд в вопрос.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.