Назад | Перейти на главную страницу

Конфликт IP-адресов при подключении к сети через мост KVM

Мы запускаем сервер 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, и если это сработает, попробуйте перезагрузить компьютер.