Я установил kvm vm с общедоступным статическим IP, и все работает нормально, но только после перезапуска сети на хосте. Я имею в виду, что каждый раз после включения хоста я должен запускать «перезапуск сервисной сети» и только после этого виртуальная машина KVM получает IP. Без перезапуска ip принадлежит хосту.
Хост - centos 7, гость - ubuntu 12.04
Пожалуйста, посоветуйте мне, как сделать IP принадлежащим только ВМ, без перезагрузки сети? Спасибо!
Мои настройки на хосте:
/ etc / sysconfig / network-scripts / ifcfg-enp1s0f1:
DEVICE="enp1s0f1"
ONBOOT=yes
HWADDR="xx:xx:xx:xx:xx:xx"
BRIDGE=br0
/ etc / sysconfig / network-scripts / ifcfg-br0:
DEVICE="br0"
TYPE=BRIDGE
ONBOOT=yes
BOOTPROTO=static
IPADDR="host.ip.adress"
NETMASK="255.255.252.0"
GATEWAY="host.gateway"
DNS1=11.11.11.11
DNS2=11.11.11.11
/ etc / sysconfig / network-scripts / ifcfg-br0: 1
DEVICE="br0:1"
TYPE=BRIDGE
ONBOOT=yes
BOOTPROTO=static
IPADDR="ip.for.kvm.vm"
NETMASK="255.255.252.0"
GATEWAY="host.gateway"
DNS1=11.11.11.11
DNS2=11.11.11.11
vm bridge section
<interface type='bridge'>
<mac address='yy.yy.yy.yy.yy.yy'/>
<source bridge='br0:1'/>
<model type='rtl8139'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</interface>
my 'ip a'
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
3: enp1s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP qlen 1000
link/ether xx:xx:xx:xx:xx:75 brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether zz:zz:zz:zz:zz:zz brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link/ether 52...4:98 brd ff:ff:ff:ff:ff:ff
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether xx:xx:xx:xx:xx:75 brd ff:ff:ff:ff:ff:ff
inet host.ip.adress/22 brd ...3.255 scope global br0
valid_lft forever preferred_lft forever
inet ip.for.kvm.vm/22 brd ...3.255 scope global secondary br0:1
valid_lft forever preferred_lft forever
inet6 fe8...5/64 scope link
valid_lft forever preferred_lft forever
7: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 1000
link/ether fe:5...1:6a brd ff:ff:ff:ff:ff:ff
inet6 fe80...:516a/64 scope link
valid_lft forever preferred_lft forever
Мои настройки на гостевой системе:
auto eth0
iface eth0 inet static
address ip.for.kvm.vm
netmask 255.255.255.0
gateway host.gateway
broadcast
hwaddress ether 52:54:00:2f:21:8b
dns-nameservers 11.11.11.11 8.8.8.8 11.11.11.11
ip route show (на хосте)
default via host.gateway dev br0 proto static metric 425
89.108.120.0/22 dev br0 proto kernel scope link src host.ip.adress metric 425
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
route -n (on хост)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 host.gateway 0.0.0.0 UG 425 0 0 br0
89.108.120.0 0.0.0.0 255.255.252.0 U 425 0 0 br0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Вы запутали адреса вашего хоста и гостя, поэтому мне придется использовать другие данные, которые вы предоставили, чтобы сделать утверждение, а также предположить, что "ip.for.kvm .vm "соответствует всем вашим примерам. Пожалуйста, дайте мне знать, если это неправильно.
То, что вы описываете, похоже, что вы даете тот же адрес своему гипервизору, что и своей виртуальной машине, и оба конкурируют за эти адреса. Гипервизор всегда выигрывает при перезагрузке, потому что его сетевой стек запускается первым.
Не делайте этого. Таким образом вы создаете конфликт IP-адресов. Если вам нужно, чтобы ваш хост-компьютер находился в той же IP-подсети, что и ваш гость, дайте им обоим разные адреса в одной подсети. Поймите также, что ваше устройство-мост - это виртуальный коммутатор уровня 2, поэтому ему все равно, что вы делаете на любом из уровней выше. Единственный признак того, что что-то идет не так в неаудированном сценарии, подобном этому, - это то, что вы описали выше, в дополнение к ошибкам в ваших журналах о конфликтах адресов.
Чтобы исправить этот конкретный сценарий, удалите или установите по-другому адрес для br0.1 на гипервизоре. Поскольку бриги работают на уровне 2, у вас может вообще не быть IP-адреса на этом интерфейсе, и виртуальная машина будет правильно подключаться к сети. Только не создавайте конфликтов.