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

Настройка сети virsh

 , ,


0

1

Добрый день. Помогите настроить сеть для виртуальной машины. На debiane пытаюсь настроить сеть в virsh методом nat. В роли гостя установлена Win XP.

Виртуальная машина получает ip от dhcp стандартной сети, но теряет связь с сетью практически сразу после включения. Не пингуется с хоста, и изнутри вм тоже нет пинга до шлюза.

Настраивал все в соответствии с мануалом http://wiki.libvirt.org/page/Networking.

После включения vm иногда вижу пропавший сетевой интерфейс гостя:

 ~ # arp -i virbr0 -a
? (192.168.122.180) at <incomplete> on virbr0

Настройки default сети в virsh:

<network>
  <name>default</name>
  <uuid>f897c078-3418-5312-b687-b26cd398bdb7</uuid>
  <forward dev='eth0' mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0' />
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254' />
    </dhcp>
  </ip>
</network>

Секция настройки сети гостя:

    <interface type='network'>
      <mac address='fe:54:00:55:86:40'/>
      <source network='default'/>
      <target dev='vnet0'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

ifconfig:

eth0      Link encap:Ethernet  HWaddr 54:04:a6:b2:01:b8  
          inet addr:176.9.118.204  Bcast:176.9.118.223  Mask:255.255.255.224
          inet6 addr: fe80::5604:a6ff:feb2:1b8/64 Scope:Link
          inet6 addr: 2a01:4f8:151:72c7::2/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:562140 errors:0 dropped:0 overruns:0 frame:0
          TX packets:579415 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:199925744 (190.6 MiB)  TX bytes:208136381 (198.4 MiB)
          Interrupt:28 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:130857 errors:0 dropped:0 overruns:0 frame:0
          TX packets:130857 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:96596561 (92.1 MiB)  TX bytes:96596561 (92.1 MiB)

virbr0    Link encap:Ethernet  HWaddr fe:54:00:55:86:40  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7658 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10866 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:965089 (942.4 KiB)  TX bytes:1149215 (1.0 MiB)

vnet0     Link encap:Ethernet  HWaddr fe:54:00:55:86:40  
          inet6 addr: fe80::fc54:ff:fe55:8640/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:106 errors:0 dropped:0 overruns:0 frame:0
          TX packets:771 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:13053 (12.7 KiB)  TX bytes:40261 (39.3 KiB)

brctl show:

bridge name	bridge id		STP enabled	interfaces
virbr0		8000.fe5400558640	yes		vnet0

Никак не могу понять в чем дело, вроде все правильно настроено а не работает.


Жаль, сейчас проверил еще раз - первые 10 секунд после подключения сеть работает, а потом связь теряется. Со стороны гостя видно что пакеты обратно просто не приходят.

nnmo
() автор топика

Что то я тут http://wiki.libvirt.org/page/Networking не вижу такого.

Читал по диагонали, но:

В brctl show должен быть virbrX-nic, который отсутствует. Могу предложить настроить так:

сеть:

<network>
  <name>internal</name>
  <uuid>6aa04i23-08f0-66c1-9bd1-3d134cd505a8</uuid>
  <bridge name='virbr1' stp='on' delay='0' />
  <mac address='52:59:00:FD:3B:AC'/>
  <ip address='1.1.1.1' netmask='255.255.255.0'>
  </ip>
</network>
гость:
 <interface type='network'>
      <mac address='52:59:00:1a:8e:62'/>
      <source network='internal'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
Ну и само собой, делаем нат iptables-ом. Кстати либвирт добавляет свои правила в iptables (при запуске виртуальной сети).

invokercd ★★★★
()

Отключил stp, все по прежнему. К стати у virbr0 и vnet0 mac адреса одинаковые, это нормально? Если включить vm и оставить в консоль ping 192.168.122.180 то через некоторое время ping начинает работать и сеть работает изнутри гостя. Но если его прервать, а потом снова запустить то связи уже не будет.

В то же время изнутри гостя через arp -a видно шлюз с тем же macом что и его сетевой интерфейс.

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

Если посмотреть что происходит на virbr0 tcpdump'ом, то видно что при пинге идут arp запросы, и все без ответа.

ARP, Request who-has 192.168.122.181 tell 192.168.122.1, length 28

nnmo
() автор топика

Все решилось довольно просто - поставил гостю другой mac-адрес.

<interface type='network'>
      <mac address='52:54:00:bf:3b:41'/>
      <source network='default'/>
      <target dev='vnet0'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

nnmo
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.