LinuxForum.Fans
Тема

[Решено] KVM Виртуальная машина

Автор: blackwer 46 сообщений 16966 просмотров
#35216

Товарищи ГУРУ.
Прошу помощи.

Поставил KVM рассказывать и показывать не буду, что и как. Все работает (почти =-))) ).
Какая возникла именно проблема.
Возникла проблема с сеткой. А именно в видимости вируальной машины из локальной сети.

1) Виртуальная машина видит локальную на которой стоит. (пакеты ходят туда и сюда)
2) Локальная машина на которой стоит виртуальная видит виртуальную. (пакеты ходят туда и сюда)

Проблема. ЛОКАЛЬНАЯ машина видит локальную сеть. А виртуальная не видит локальную сеть если все сделать через маскарадинг то виртуальная машина увидит сеть НО локальная сеть так и не увидит виртуалку.

Мне нужна виртуальная машина с полноценным доступом к локальной сети.


/etc/network/interfaces

text
auto br0
auto eth0
iface eth0 inet manual
iface br0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
       bridge_ports eth0
        bridge_fd 9
        bridge_hello 2
        bridge_maxage 12
        bridge_stp off

Виртуальная машина имеет IP 0.11
Локальная машина не является сервером или маршрутизатором.
Пытаюсь попасть в сетку 192.168.0.0/24 Шлюз 192.168.0.1

Если пингую виртуалку с компьютера из сети tcpdump показывает

text
02:32:36.685659 ARP, Request who-has 192.168.0.11 tell 192.168.0.15, length 46
02:32:36.685902 ARP, Reply 192.168.0.11 is-at *:*:*:*:*:* (oui Unknown), length 28

Где IP 192.168.0.15 Компьюиер находящийся в этой сети
IP 192.168.0.11 Виртуальный компьютер
[console]
root@tgus:~# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000461a92b69 no eth0
vnet0
[/console]



То что уже сделал так на всякий случай =-)

text
ip link set dev br0 arp on
echo "1" > /proc/sys/net/ipv4/ip_forward

Фаервол отсутствует
[console]
root@tgus:/etc/rc.boot# 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

[/console]

=======================================================

text
ifconfig
root@tgus:/etc/rc.boot# ifconfig
br0       Link encap:Ethernet  HWaddr 00:04:61:a9:2b:69
          inet addr:192.168.0.10  
          inet6 addr:
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:27117 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15674 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2808023 (2.6 MiB)  TX bytes:8346295 (7.9 MiB)

eth0 Link encap:Ethernet HWaddr 00:04:61:a9:2b:69 inet6 addr: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:30169 errors:0 dropped:0 overruns:0 frame:0 TX packets:16500 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3407767 (3.2 MiB) TX bytes:8376403 (7.9 MiB) Interrupt:19

ПРИ ЗАПУСКЕ ВИРТУАЛКИ ПОДНИМАЕТСЯ

text
vnet0     Link encap:Ethernet  HWaddr 3e:55:7f:bd:43:29
          inet6 addr: fe80::3c55:7fff:febd:4329/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1000 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15229 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:50261 (49.0 KiB)  TX bytes:1373009 (1.3 MiB)

//используйте теги code

#35434

Я правильно понимаю, что виртуальная машина видит реальную локалку? А из локалки виртуальную машину не видно?

Дайте вывод

text
ifconfig 

и

text
netstat -rn 

отдельно для хоста и виртуальной машины. Также покажите настройки сети и хоста, и гостя. А также вывод

text
iptables -L -n -v

и

text
iptables -L -n -v -t nat 

на хосте.

#35657
text
Iifconfig 

br0 Link encap:Ethernet HWaddr 00:04:61:a9:2b:69 inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::204:61ff:fea9:2b69/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:615617 errors:0 dropped:0 overruns:0 frame:0 TX packets:370909 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:44880896 (42.8 MiB) TX bytes:1200983103 (1.1 GiB)

eth0 Link encap:Ethernet HWaddr 00:04:61:a9:2b:69 inet6 addr: fe80::204:61ff:fea9:2b69/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:623694 errors:0 dropped:0 overruns:0 frame:0 TX packets:374671 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:56398707 (53.7 MiB) TX bytes:1201136853 (1.1 GiB) Interrupt:19

vnet0 Link encap:Ethernet HWaddr 3e:55:7f:bd:43:29 inet6 addr: fe80::3c55:7fff:febd:4329/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3936 errors:0 dropped:0 overruns:0 frame:0 TX packets:42045 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:173903 (169.8 KiB) TX bytes:3753234 (3.5 MiB)

по поводу сети видит, если сделать через маскарадинг........ но это не дело локальная сеть должна быть полноценная маскараднг не устраивает.

=============================================

text
netstat -rn
192.168.0.0    0.0.0.0         255.255.255.0 U         0 0          0 br0

=============================================

text
iptables -L -n -v
Chain INPUT (policy ACCEPT 808K packets, 269M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 14565 packets, 2981K bytes) pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 555K packets, 1220M bytes) pkts bytes target prot opt in out source destination

==============================================

text
iptables -L -n -v -t nat 
Chain PREROUTING (policy ACCEPT 19024 packets, 1556K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 23867 packets, 1608K bytes) pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 22065 packets, 1363K bytes) pkts bytes target prot opt in out source destination

#35658

Покажите все-таки настройки сети не хоста, а виртуальной машины.
Заодно можете посмотреть сетевые настройки хоста и гостя вот тут:
http://hrafn.me/2009/12/kvm-bridge-i-virtualnye-mashiny/

#35662

Задайте виртуалке мак ручками, в опции kvm -nic. Посомтрите arp'ом на машине в сети, определяется ли айпи в заданный мак.

ЗЫ: точно с виртулаки адрес бриджа пингуется?

#35665
zerg написал:
Задайте виртуалке мак ручками, в опции kvm -nic. Посомтрите arp'ом на машине в сети, определяется ли айпи в заданный мак.

ЗЫ: точно с виртулаки адрес бриджа пингуется?

Если делалось через virt-manager, то мак там случайный. А вот то, что в виртуалке адресом маршрута по умолчанию надо ставить айпишник хоста - это да... у меня ушло полдня, пока я это понял :)

#35687

мдЭЭ оке настройки виртуалки!

text

ifconfig
eth0       Link encap:Ethernet  HWaddr 00:10:62:a9:2c:33  
          inet addr:192.168.0.11  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::204:61ff:fea9:2b69/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:615617 errors:0 dropped:0 overruns:0 frame:0
          TX packets:370909 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:44880896 (42.8 MiB)  TX bytes:1200983103 (1.1 GiB)

повторяю! Виртуалка и Локальный на чем стоит виртуалка, видят друг друга бес проблем! Маскарадинг не устраивает! нужен полноценный мост! чтобы виртуальный интерфейс был как реальный и торчал ипом на ружу а не за хостом.

#35703

Я понял, что вы хотитет получить. Покажите netstat -rn с виртуалки
Я извиняюсь, но прошу показать настройки в последний раз. Устал уже. Не хотите показывать - разбирайтесь сами

#35708
Hrafn написал:
А вот то, что в виртуалке адресом маршрута по умолчанию надо ставить айпишник хоста - это да... у меня ушло полдня, пока я это понял

Не сталкивался. У меня мост и так работает... Как свитч.

2 TS - обратите внимание на VDE2. Это веселей, чем обычный бридж ;-)

#35715

netstat -rn
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0

#35716

покажите вывод traceroute из локалки до виртуалки и с виртуалки до любой машины в локалке, кроме самого хоста
А также настройки iptables на хосте

#35733

С сети с любого компа! именно пока с 0.15
traceroute 192.168.0.11
traceroute to 192.168.0.11 (192.168.0.11), 30 hops max, 60 byte packets
1 192.168.0.15 (192.168.0.15) 3003.632 ms !H 3003.619 ms !H 3003.604 ms !H

С локального компа на котором стоит виртуальник
ping 192.168.0.11
PING 192.168.0.11 (192.168.0.11) 56(84) bytes of data.
64 bytes from 192.168.0.11: icmp_seq=1 ttl=64 time=4.64 ms
^C
--- 192.168.0.11 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms

#35738

А остальные данные?

#35742

секундочку

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

На компе где стоит виртуалка

iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination


Chain OUTPUT (policy ACCEPT)
target prot opt source destination



Пытаюсь пингануть шлюз с виртуалки.
traceroute 192.168.0.1
traceroute to 192.168.0.1 (192.168.0.1), 30 hops max, 60 byte packets
1 192.168.0.15 (192.168.0.15) 2895.632 ms !H 2987.619 ms !H 2780.604 ms !H

#35746

Укажите на виртуалке в качестве шлюза по умолчанию айпишник хоста и попробуйте пингануть.

#35758

хе хе хе хе не пинганется =-)))) пока маскарадинг не пропишишь! я все выше написал!!! Читайте внимательно!!!!!

#35761

Не правильно сформулировал.
Виртуальная машина у Вас на хосте. Прикиньте, как и через что с виртуалки идут сетевые пакеты с нее наружу. Сразу станет понятно, в каком месте затык.

#36027
Hrafn написал:
Виртуальная машина у Вас на хосте. Прикиньте, как и через что с виртуалки идут сетевые пакеты с нее наружу. Сразу станет понятно, в каком месте затык.

Он использует бридживание (если сам ТС в логах и описании проблемы не запутался). В этом случае хост-машина не является хопом для прохождения пакета к другим машинам сети реальной. Не зачем мудрить.

blackwer, по существу - откатитесь до состояния машин в первом посте. Очень важная деталь из вашего поста:

blackwer написал:
ПРИ ЗАПУСКЕ ВИРТУАЛКИ ПОДНИМАЕТСЯ

А в бридж он точно заходит?
Покажите после запуска

text
brctl show br0
brctl showmacs br0
#36045
zerg написал:
В этом случае хост-машина не является хопом для прохождения пакета к другим машинам сети реальной. Не зачем мудрить.

Уверены? Ментальным образом что ли? И что, в таком случае, является следующим хопом?

#36048

Hrafn, да, потому что бридживание работает не на L3 (ip), а на L2 (ethernet) уровне.

Войдите или зарегистрируйтесь, чтобы ответить.