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

Сетевой мост KVM с двумя сетевыми картами

Приветствую,

Я пытаюсь настроить мостовую сеть с помощью KVM и ничего не добился. По этому поводу есть документы и учебные пособия, но все они кажутся противоречащими друг другу или не содержат достаточной информации. Мне было интересно, может ли кто-нибудь дать мне общий обзор того, как заставить это работать. Я, наверное, сам смогу проработать детали (настройка интерфейсов, добавление маршрутов и т. Д.), Мне просто нужна помощь по общей картине: как все взаимосвязано.

У меня есть сервер RHEL5 с установленным и запущенным KVM. Он имеет две физические сетевые карты, eth0 и eth1 в одной VLAN. Я хотел бы использовать eth1 для всего трафика между гостями и остальной частью сети и зарезервировать eth0 для управления хостом, миграции гостей и т. Д., Если это возможно. Я не разборчив в выборе маршрута по умолчанию, хотя было бы неплохо, если бы мы могли сделать его eth0. У всех гостей будут статические IP-адреса. Я бы предпочел, чтобы при добавлении нового гостя конфигурация сети настраивалась только внутри самого гостя. В принципе, я хочу это:

eth0: весь трафик хоста
eth1: весь гостевой трафик

Открыт для любых других предложений, если это невозможно или будет нелегко / сложно. Указатели на существующую документацию могут быть бесполезны, так как я уже успел ознакомиться со всем, что есть.

Спасибо за любую помощь.

Обновить

Хорошо, вот что у меня есть:

Используя эту конфигурацию, я могу подключаться к внешним машинам изнутри гостя, но пакеты, предназначенные гостю, никогда этого не делают. Вот как выглядит моя конфигурация:

# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=YES

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# host-only interface
DEVICE=eth0
TYPE=Ethernet
HWADDR=00:23:7D:E1:1F:22
IPADDR=10.8.91.18
NETMASK=255.255.252.0
GATEWAY=10.8.91.254
BOOTPROTO=none
ONBOOT=yes

# cat /etc/sysconfig/network-scripts/ifcfg-eth1
# guest-only interface
DEVICE=eth1
TYPE=Ethernet
BRIDGE=br0
HWADDR=00:23:7d:e1:1f:26
BOOTPROTO=NONE
ONBOOT=YES

(virbr0 is the default kvm/libvirt NAT bridge, it's not being used here)
# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00237de11f26       no              vnet0
                                                        eth1
virbr0          8000.000000000000       yes

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0
10.8.88.0       *               255.255.252.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         10.8.91.254     0.0.0.0         UG    0      0        0 eth0

Вот соответствующий раздел определения гостя libvirt XML:

<interface type='bridge'>
  <mac address='54:52:00:76:94:73'/>
  <source bridge='br0'/>
</interface>

Обновление 2

Ладно, думаю, я готов. Меня сбило с толку тот факт, что моя гостевая ОС (SLES 11, с которой я не знаком) по умолчанию имеет довольно строгий набор правил брандмауэра. Как только брандмауэр был очищен, я могу подключаться и выходить.

У меня аналогичный сценарий с ubuntu 12.04.02 в качестве серверной ОС.
Мой сейчас единственный гость работает под управлением CentOS.
На сервере 4 сетевых адаптера, и я хочу запустить eth0 исключительно для сервера, использовать eth1 для iSCSI для хранилища и eth2 и eth3 для гостей.
Eth0, eth2 и eth3 подключаются к одной локальной сети.

Я не уверен, правильно ли я понял, как настроить интерфейсы.
Описания, которые я нашел до сих пор, относятся только к 1 сетевой карте на сервере.

В настоящее время я настроил eth0 с IP-адресом DHCP, поскольку я использую фиксированное резервирование на сервере DHCP.
Мой мост для eth2 называется br2

Я настроил eth2 и br2 следующим образом

auto  eth2  
iface eth2 inet manual  

auto  br2  
iface br2 inet manual  
  bridge_ports   eth2  
  netmask   255.255.255.0  
  network   192.168.168.0  
  gateway   192.168.168.1  
  broadcast 192.168.168.255  
  bridge_stp     off  
  bridge_fd      0  
  bridge_maxwait 0  

и

 brctl addif br2 eth2  

Интерфейсы eth2 и br2 подняты без IP, как и ожидалось.
Затем гости также запрашивают свой адрес с помощью dhcp.

Я полагаю, вы знаете, как настроить мост поверх сетевой карты, поэтому в основном все, что вам нужно, это установить два моста через две сетевые карты и настроить виртуальные машины для подключения к правильному мосту. Если подумать, один из сетевых адаптеров можно оставить без моста, так как гостям не нужно будет его использовать.

Это было общее описание проблемы, как я ее вижу. Не могли бы вы показать, что вы уже сделали, чтобы мы могли попытаться найти ошибку, которую вы сделали, если, конечно, она есть