Готовил host
Код: Выделить всё
Проверил форвардинг
~/task/kvm$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
Поднял виртуальный сетевой интерфейс
~/task/kvm$ sudo tunctl -u my_user
Set 'tap0' persistent and owned by uid 1000
:~/task/kvm$ sudo ifconfig tap0
tap0 Link encap:Ethernet HWaddr 00:ff:78:9b:4d:8a
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
коллизии:0 txqueuelen:500
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
~/task/kvm$ sudo ifconfig tap0 10.0.2.1 up
Проверил фаерволл (подготовил ранее)
~/task/kvm$ sudo iptables-save | egrep tap0
-A INPUT -i tap0 -j ACCEPT
-A OUTPUT -o tap0 -j ACCEPTЗапустил виртуальную машину с установленным jeos (ubuntu для виртуальных машин)
:~/task/kvm$ sudo kvm -hda disk.img -net nic
Warning: vlan 0 is not connected to host network
Предупреждение в общем-то ожидаемо, так как на госте надо поднять сетевой интерфейс
Поднинял интерфейс на госте
jeos-virt: ifcofnig eth0 10.0.2.15 up
Из гостя пробовал пинговать tap0
jeos-virt: ping 10.0.2.1 -c2
PING 10.0.2.1 (10.0.2.15) 56(84) bytes of data.
From 10.0.2.15 icmp_seq=1 Destination Host Unreachable
From 10.0.2.15 icmp_seq=2 Destination Host Unreachable
Для «чистоты эксперимента» остановил виртуальную машину и запустил её следующим образом:
sudo kvm -hda disk.img -net user,hostname=jeos -net nic,macaddr=52:54:00:12:34:05
В данном случае предупреждение не возникает. При таком подходе на госте по дефолту eth0 поднят и имеет адрес 10.0.2.15
Из гостя пробовал пинговать tap0
jeos-virt: ping 10.0.2.1 -c2
PING 10.0.2.1 (10.0.2.15) 56(84) bytes of data.
From 10.0.2.15 icmp_seq=1 Destination Host Unreachable
From 10.0.2.15 icmp_seq=2 Destination Host Unreachable
Попытка изменять типы сетевых карт результатов не дала.
Посмотрел снифером, что происходит если пинговать гостя. Получил следующее:
Код: Выделить всё
~/task/kvm$ ping 10.0.2.15
PING 10.0.2.15 (10.0.2.15) 56(84) bytes of data.
From 10.0.2.1 icmp_seq=1 Destination Host Unreachable
From 10.0.2.1 icmp_seq=2 Destination Host Unreachable
:~$ sudo tcpdump -i tap0 -vv
tcpdump: listening on tap0, link-type EN10MB (Ethernet), capture size 96 bytes
10:45:54.709908 arp who-has 10.0.2.15 tell 10.0.2.1
10:45:55.709912 arp who-has 10.0.2.15 tell 10.0.2.1
10:45:56.707401 arp who-has 10.0.2.15 tell 10.0.2.1
10:45:57.729910 arp who-has 10.0.2.15 tell 10.0.2.1То есть соединения нет на уровне ethernet.
Куда копать дальше не знаю