kvm + vde - tun/tap - bridge




Пытаюсь заставить работать интернет в виртуальной машине, без TUN/TAP и Bridge. Запустил vde_switch:

$ vde_switch -d
Запустил slirpvde:
$ slirpvde --dhcp --daemon
Запустил виртуалку:
$ qemu-kvm -hda vm.img -boot c -net nic -net vde
Виртуалка успешно получает IP-адрес от slirpvde. Однако, если попробовать попинговать сайт во внешних интернетах - ответа нет.

tcpdump, запущенный на хостовой машине, показывает, что ICMP-пакеты к сайту уходят и ответы приходят. Однако в гостевой системе тишина.

IP forwarding на хосте включён:

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
В gentoo-вики ничего не сказано про то, что надо делать что-то кроме:

Alternative Method

If you would rather not mess around with kernel configs, TUN, iptables and dnsmasq, then you can achieve the same result with the following two commands instead; vde_switch -daemon slirpvde --dhcp --daemon

Then start your virtual machines with this command; kvm -net nic,macaddr=52:54:00:00:EE:03 -net vde test.img

Пробовал очищать правила iptables на госте и на хосте - безрезультатно. Политика для FORWARD на хосте - ACCEPT.

Что я делаю неправильно? Что ещё надо сделать, чтобы интернет в гостевой системе наконец появился?

Сам спросил, сам ответил.

Obviously, after 4 long posts in this series, you are itching to test the networking. So, with shaking hands, you type in ‘ping <your favorite ping-testing host>’ WTF? It correctly resolves the host, but can’t ping it. ARGGGHH!

Slow down grasshopper! Remember that SLiRP will only work for TCP/UDP packets - not ICMP like ping.

Тем не менее

However, it actually does work on some combination of systems. SLiRP fakes an ICMP ping by sending a UDP packet - this may or may not work depending on your firefall / proxy or whatever.

Любопытно, когда же, чёрт возьми, это всё-таки работает?

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

usermode сетку

User mode networking is great for allowing access to network resources, including the Internet. By default, however, it acts as a firewall and does not permit any incoming traffic. It also doesn't support protocols other than TCP and UDP - so, for example, ping and other ICMP utilities won't work.

It also doesn't support protocols other than TCP and UDP. Всё то же.

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