Мы запускаем сервер CentOS 7 с установленным KVM поверх него, и к хосту подключено 2 интерфейса Ethernet (em1 и em2).
Только что была создана новая виртуальная машина Windows 7, и мы хотели, чтобы эта конкретная машина была подключена к офисной сети (192.168.2.X), поэтому мы выбрали решение моста, создав интерфейс 'br0' и соединив его с физический интерфейс em2.
Таким образом, даже при назначении статического IP-адреса гостевой виртуальной машине W7 через 'br0' он берет не этот конкретный IP-адрес, а совершенно другой, плюс с гостевой стороны мы могли видеть другие машины / устройства в той же подсети, но иначе это не работает (физические машины не могут пинговать виртуальную машину), используя указанный IP-адрес 'br0' или другой IP-адрес.
так мы пропали?
Итак, вот копия файлов конфигурации:
ifconfig em2
em2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 54:9f:35:02:b2:5a txqueuelen 1000 (Ethernet)
RX packets 4296203 bytes 5223242102 (4.8 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 655608 bytes 711971529 (678.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 17
ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.34 netmask 255.255.255.0 broadcast 192.168.2.255
inet6 fe80::569f:35ff:fe02:b25a prefixlen 64 scopeid 0x20<link>
ether 54:9f:35:02:b2:5a txqueuelen 0 (Ethernet)
RX packets 562034 bytes 36288591 (34.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 307114 bytes 1132593995 (1.0 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
/ и т. д. / sysconfig / сетевые сценарии / ifcfg-em2
DEVICE=em2
NAME=em2
TYPE=Ethernet
HWADDR=54:9F:35:02:B2:5A
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
/ и т. д. / sysconfig / сетевые сценарии / ifcfg-br0
DEVICE=br0
NAME=br0
TYPE=Bridge
IPADDR=192.168.2.34
PREFIX=24
BOOTPROTO=none
ONBOOT=yes
DELAY=0
/ и т.д. / sysconfig / сеть
NETWORKING=yes
GATEWAY=192.168.2.1
ipconfig (гостевая машина)
IPv4 Address: 192.168.2.159
subnet mask: 255.255.255.0
Default Gateway: 192.168.2.1
brctl счет br0
bridge name bridge id STP enabled interfaces
br0 8000.549f3502b25a no em2
vnet0
IP-адрес на br0
не является IP-адресом гостя. Это адрес вашей хост-машины. При такой настройке вы можете представить себе, как будто у вас есть отдельный физический компьютер с Windows 7, подключенный к коммутатору через кабель, выходящий из em2
.
Если вам нужен статический IP-адрес для вашего гостя, вам необходимо настроить его для своего гостя. Или обновите DHCP-сервер, чтобы назначить статический IP-адрес. (кстати, осторожно, если вы настроите что-то через libvirt, он может запуститься dnsmasq
DHCP-сервер на интерфейсе моста, что заставит его выполнять паразитный DHCP в вашей офисной сети).
Похоже, у вас нет адреса ipv4 на br0
. Это помешает вашему хосту CentOS разговаривать с гостевой виртуальной машиной.
Я согласен с тем, что ваш ifcfg-br0
настроен для этого, но он не сработал, и в любом случае я вижу в нем странности (BOOTPROTO=none
?). Пытаться ifdown br0; ifup br0
и посмотрите, поможет ли это.
Если нет, просто укажите адрес на интерфейсе с помощью ifconfig br0 192.168.2.34 netmask 255.255.255.0 up
и посмотрим, исправит ли это ситуацию с точки зрения сети, тогда мы сможем обсудить, как исправить файлы конфигурации.
Не установить IP-адрес на em2
. Было бы также полезно, если бы вы отредактировали в своем вопросе вывод brctl show br0
.
редактировать: Хорошо, у нас ваш ipv4 работает, теперь нам просто нужно исправить ваши файлы конфигурации. Попробуйте это в ifcfg-br0
:
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.2.34
NETMASK=255.255.255.0
ONBOOT=yes
Затем нажмите на интерфейс ifdown br0; ifup br0
, и если это сработает, попробуйте перезагрузить компьютер.