Система - Mandriva 2009.0
есть два интерфейса - tap0 и eth0 И виртуальная машина qemu. хочется простого - эта машина была в сети с реальным ипишником. задача так же в том чтобы инет был и на обычной машине.
т.е. на физическом интерфейсе eth0 висело два ипишника - один который бы полностью ассоциировался с qemu второй - с физической машиной. итак.
Насколько я понимаю нужно сделать bridge интерфейсам - eth0 и tap0. и этого достаточно чтобы оба уже смогли достучаться в сеть и получить по dhcp ip adress. (вот <a href="http://m-ivanov.livejournal.com/3384.html?view=31544#t31544">подобная процедура</a> описана для FreeBSD)
как это делаю я: 1. Создается виртуальный интерфейс tap0 для юзера user tunctl -b -u user ifconfig tap0 promisc up 2. Задается chmod на dev/net/tun chmod -R 777 /dev/net/tun 3. Дальше (насколько я понимаю) создается интерфейс моста (в данном случае- br0): brctl addbr br0 и в него включаются два интерфейса eth0 и tap0 (важен ли здесь порядок включения?) brctl addif br0 eth0 tap0 4. далее qemu просто запускается из командной строки qemu -m 256 -net nic -net tap,ifname=tap0,script=/etc/qemu-ifup /media/disk/images/image
*в скрипте прописано что то типа sudo ifconfig tap0 0.0.0.0 (ибо без скрипта оно не запускается)
Насколько я понимаю после подобного если в виртуалке сделать dhclient eth0 то она должна достучаться до dhcp сервера и получить внешний адрес. На самом деле выходит иначе - с интерфейса eth0 на физической машине пингуется интерфейс на виртуальной (если ручками выставить ипишник этой же подсети) и только. Изнутри (виртуалки) не пингуется вообще ничего (притом ).
Что бы еще можно посмотреть? Я правильно понимаю принцип работы bridge - при поступлении пакета на него он транслируется на все интерфейсы (порты) включенные в него? ("Порты. У каждого моста есть подключённые к нему порты. Трафик, который приходит через любой из этих портов, прозрачно отправляется на другие; мост остаётся невидимым для остальной сети (в частности, его не видно через traceroute). " <a href="http://beneficium.ru/mediawiki/index.php/Man:brctl">тут</a>) Как пакет идет наружу из внутреннего интерфейса?
кросспост.