libvirt и virt-network

Libvirt был собран с virt-network и отлично работал через NAT.
Но после нескольких обновлений ядра и пакетов (давно не пользовался виртуалками) все перестало работать - а именно, не поднимается сеть default с таким конфигом:

<network>
  <name>default</name>
  <uuid>cbfa7118-c21b-4a85-a4fe-5b4709e5534b</uuid>
  <bridge name="virbr0" stp='on' delay='0'/>
  <forward/>
  <ip address="192.168.1.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.1.2" end="192.168.1.254" />
    </dhcp>
  </ip>
</network>

stp='on' delay='0' - это я прописал позже, по аналогии с создаваемой сетью. Предположил, что это может влиять на автозагрузку - но это не помогло.

2. Получается создать только внутреннюю сеть, если же я хочу пересылать пакеты наружу, получаю ошибки

 virt-manager --debug
<network>
  <name>dd</name>
  <forward mode='nat'/>
  <ip address='192.168.100.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.100.128' end='192.168.100.254'/>
    </dhcp>
  </ip>
</network>

2013-05-06 09:17:39,128 (error:80): dialog message: Error creating virtual network: не удалось добавить правило iptables для разрешения перенаправления на «virbr1» : Error creating virtual network: не удалось добавить правило iptables для разрешения перенаправления на «virbr1»

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/createnet.py", line 352, in finish
    self.conn.create_network(xml)
  File "/usr/share/virt-manager/virtManager/connection.py", line 778, in create_network
    net.create()
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 2155, in create
    if ret == -1: raise libvirtError ('virNetworkCreate() failed', net=self)
libvirtError: не удалось добавить правило iptables для разрешения перенаправления на «virbr1»

3. iptables собран и запущен (с пустыми правилами). Более того, специально пересобирал qemu и libvirt, почитал их варнинги и добавил все что они просили в ядро, а также изменил владельца для всей папки /etc/libvirt на qemu:qemu (это попросил либвирт).

iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

По ошибке явно видно, что конфкликт либвирта с файрволом, но как его решить - не понимаю. Буду признателен за подсказки.

zgrep -i nat_ipv4

zgrep -i nat_ipv4 /proc/config.gz 

ну, и тогда уж

iptables -L -t nat

Спасибо за совет

Я не включаю поддержку конфига в ядре, поэтому могу только так:

grep CONFIG_IP_NF_IPTABLES /usr/src/linux/.config
CONFIG_IP_NF_IPTABLES=y

Это как раз включает НАТ.

iptables -L -t nat
iptables v1.4.16.3: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

Да, таблицы нет, но ведь в ядре НАТ включен

kostik_g написал(а): Это как

kostik_g написал(а):
Это как раз включает НАТ.

Нет. Нат включает тот флаг, что я у тебя спросил выше

А как его можно найти в конфиге?

Как его грепнуть не внутри ядра, а в .config'e?

Очевидно

grep -i nat_ipv4 /usr/src/linux/.config

А вообще, осваиваем поиск:

cd /usr/src/linux
make nconfig
<F8>
nat_ipv4<Enter>

Пардон

Да, признаю, не подумал
поискал, нашел, сегодня вечером включу и отпишусь
ps. "/" - для поиска удобнее

Новый виток

На этот раз все включил, но ошибки сыпятся те же. Дефолтная сеть не поднимается, новая не создается. Что еще можно попробовать с фаерволом?

grep -i nat_ipv4 /usr/src/linux/.config
CONFIG_NF_NAT_IPV4=y
iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

бридж решает 99% проблем ната

бридж решает 99% проблем ната , OVS решает 99,9.
конечно , если у вас домашнее подключение с привязкой по маку - то труба

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

OBS?

А что такое OVS? Дело в том, что с год назад я мучался уже с бриджем, пока не поднял virt-network и меня все утраивало. Все гораздо проще и через гуи (дело в том что в сетях я не очень). Но вот после апдейтов вирт-манагера и либвирта, а также несколько ядер спустя (с попыткой уменьшить их размер выключая все ненужное) наступил на те же грабли.
Так что постараюсь завести вирт-нетворк

http://ru.wikipedia.org/wiki/

http://ru.wikipedia.org/wiki/Open_vSwitch

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".