LINUX.ORG.RU
решено ФорумAdmin

2 VirtualBoxes: UDP между ними

 , ,


0

1

Доброго времени суток. Есть странная, срочная необходимость ресерча одной плюшки, для чего понадобилось настроить Jboss DataGrid на виртуалках.

Коротко суть проблемы: 2 openSUSE крутятся на 2х VM на одном хосте. У обеих сеть настроена через Bridged adapter. На обеих VM крутится Jboss DataGrid, который обменивается внутри кластера сообщениями по udp (реплицирует distributed-кэши).

При старте DataGrid'а на второй машине, первая её находит, стновится мастером, вторая слейвом. Смотрю wireshark - пакеты по udp ходят с завидным постоянством. Но в логах сообщения о том, что данные летят непонятно куда и не могут добраться до места. Как это кореллирует с такой картиной в wireshark - не совсем ясно.

Никто не сталкивался?

В итоге, кэши действительно не реплицируются. В рамках одного хоста всё работает. iptables на обеих виртуалках отключен.

P.S.: да, дичайше прошу прощения, но хост виртуалок - windows. Ну нет возможности использовать онтоп, такая компания. И да, firewall'ы и зонды отключены.

внутреннюю сеть на программном костыле вбокса засади второй сетевухой (не host-only, а как-то ещё зовётся).

svr4 ()
Ответ на: комментарий от snaf

Да, пингуют. Но iperf говорит connection refused с одной vm на другую.

bytecode ★★ ()
Ответ на: комментарий от svr4

Сейчас конфигурация выглядит так: http://rghost.ru/8dMrGjXxm.view Ты имеешь в виду подрубить второй адаптер? Я уже пробовал как раз таки host-only. Ещё есть варианты: NAT
NAT Network
Internet Network
Generic driver

Посмотрел по ним документацию, не вижу в них варианта закостыливания. Или всё-таки есть такой вариант?

bytecode ★★ ()
Ответ на: комментарий от svr4

master:

eth0      Link encap:Ethernet  HWaddr 08:00:27:29:11:67  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe29:1167/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:267 errors:0 dropped:0 overruns:0 frame:0
          TX packets:493 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:67275 (65.6 Kb)  TX bytes:56291 (54.9 Kb)

eth1      Link encap:Ethernet  HWaddr 08:00:27:72:77:1E  
          inet addr:192.168.99.100  Bcast:192.168.99.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe72:771e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:80 errors:0 dropped:0 overruns:0 frame:0
          TX packets:74 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10165 (9.9 Kb)  TX bytes:19054 (18.6 Kb)
slave:
eth1      Link encap:Ethernet  HWaddr 08:00:27:E9:41:8D  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fee9:418d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:270 errors:0 dropped:0 overruns:0 frame:0
          TX packets:465 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:66369 (64.8 Kb)  TX bytes:51478 (50.2 Kb)

eth2      Link encap:Ethernet  HWaddr 08:00:27:78:27:8C  
          inet addr:192.168.99.103  Bcast:192.168.99.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe78:278c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:74 errors:0 dropped:0 overruns:0 frame:0
          TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8457 (8.2 Kb)  TX bytes:19402 (18.9 Kb)

Теперь как бы организовать маршрут между ними, чтобы пинги от vm к vm шли?

bytecode ★★ ()
Ответ на: комментарий от bytecode

ifconfigом по идее должно было настроить дефолт рут на 192.168.99.0/24. Пингани с одной другую по этому адресу, да проверь.

svr4 ()
Ответ на: комментарий от svr4

Со слейва:

# ping -b 192.168.99.0
WARNING: pinging broadcast address
PING 192.168.99.0 (192.168.99.0) 56(84) bytes of data.
^C
--- 192.168.99.0 ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 4999ms

bytecode ★★ ()
Ответ на: комментарий от bytecode

master:
inet addr:10.0.2.15
slave:
inet addr:10.0.2.15

Может конечно это и не влияет на конкретную задачу, но по крайней мере оно очень странно.

anc ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Да, теперь уже в NAT (который именно NAT, не NAT Network). Пробовал Bridged, пробовал NAT + HostOnly на обеих vm, пробовал Bridged на одной и Nat + HostOnly на второй (кластер нужно собрать всего из двух машин, не больше - подойдет любой костыль. Нужно только для ресерча). Но до сих пор взлетать не хочет.

Проверил ещё раз в рамках одной VM и обнаружил, что кластер на самом деле не собирается. Но суть проблемы от этого не меняется, т.к. оповещает он о появлении в сети нового инстанса broadcast'ом по udp.

bytecode ★★ ()
Последнее исправление: bytecode (всего исправлений: 1)
Ответ на: комментарий от bytecode

Абсолютно тупой вариант, но вдруг взлетит. Перевести сетиевки в promiscuous mode.
ЗЫ Никогда не сталкивался с граблями vb на этот счет. Но также долгое время не сталкивался с граблями у vmware fusion, однако внезапно оно возникло.

anc ★★★★★ ()

В итоге, проблема была комплексная, но заключалась она не в настройках сети. Всё работает с Bridged Adapter - потому запишу себе заметочку: udp с Bridged Adapter работает.

Меня жестоко обманули, сказав, что собранный нами rpm пакет, настраивающий datagrid, «делает всё зашибись». Оказалось, не совсем, по крайней мере в непродовых условиях. Решение проблемы описывать долго, но status: Solved.

И да, посоны, чтобы не гадать на кофейной гуще и не мучить Wireshark - есть более простой способ проверить, что броадкаст работает:
на «мастере» запускаем:

# iperf3 -s
после чего проверяем на «слейве»:
# iperf3 -c 10.27.11.87 -u -T 32 -t 3 -i 1
32:  Connecting to host 10.27.11.87, port 5201
32:  [  4] local 10.27.11.11 port 58036 connected to 10.27.11.87 port 5201
32:  [ ID] Interval           Transfer     Bandwidth       Total Datagrams
32:  [  4]   0.00-1.00   sec   120 KBytes   983 Kbits/sec  15  
32:  [  4]   1.00-2.00   sec   128 KBytes  1.05 Mbits/sec  16  
32:  [  4]   2.00-3.00   sec   128 KBytes  1.05 Mbits/sec  16  
32:  - - - - - - - - - - - - - - - - - - - - - - - - -
32:  [ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
32:  [  4]   0.00-3.00   sec   376 KBytes  1.03 Mbits/sec  2.462 ms  0/47 (0%)  
32:  [  4] Sent 47 datagrams
32:  
32:  iperf Done.
и если всё окей, то видим на «мастере»:
-----------------------------------------------------------                                      
Server listening on 5201                                                                         
-----------------------------------------------------------                                      
Accepted connection from 10.27.11.11, port 50940                                                 
[  5] local 10.27.11.87 port 5201 connected to 10.27.11.11 port 58036                            
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams             
[  5]   0.00-1.00   sec   120 KBytes   983 Kbits/sec  0.361 ms  0/15 (0%)  
[  5]   1.00-2.00   sec   128 KBytes  1.05 Mbits/sec  6.556 ms  0/16 (0%)  
[  5]   2.00-3.00   sec   128 KBytes  1.05 Mbits/sec  2.462 ms  0/16 (0%)  
[  5]   3.00-3.04   sec  0.00 Bytes  0.00 bits/sec  2.462 ms  0/0 (-nan%)  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  5]   0.00-3.04   sec   376 KBytes  1.01 Mbits/sec  2.462 ms  0/47 (0%)  
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------

bytecode ★★ ()
Последнее исправление: bytecode (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.