Как мне назначить статические IP-адреса для HOST, BRIDGE и GUEST

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

sort -o test_sorting.txt -k 2,2 -k 11,11 -k 3,3r Filename
2
25.03.2017, 03:55
1 ответ

Согласно документации libvirt :

Мост к локальной сети

Это рекомендуемая конфигурация для общего гостевого подключения на хостах со статическими конфигурациями проводной сети.

Обеспечивает мост от виртуальной машины напрямую к локальной сети. Предполагается, что на хосте есть мостовое устройство, у которого есть один или несколько физических сетевых адаптеров , находящихся в рабстве. Гостевая виртуальная машина будет иметь связанное устройство tun , созданное с именем vnetN, которое также можно переопределить с помощью элемента (см. Переопределение целевого элемента). Устройство тун будет порабощено мостом. Диапазон IP-адресов / конфигурация сети - это то, что используется в локальной сети. Это обеспечивает гостевой виртуальной машине полный входящий и исходящий сетевой доступ, как и к физическому компьютеру.

Использование virsh для создания моста

Согласно Документация RHEL , вы можете использовать virsh для создания моста, например br0 мост на основе интерфейса eth0 :

# virsh iface-bridge eth0 br0

Если вам нужно / нужно удалить мост, выполните

# virsh iface-unbridge br0

Создание сценариев инициализации сети

Если это не сработает, как вам нужно, создайте / отредактируйте сценарии инициализации в / etc / sysconfig / network-scripts / вручную. Этот раздел взят непосредственно со страницы документации libvirt :

В каталоге / etc / sysconfig / network-scripts необходимо создать 2 файла конфигурации. Первый (ifcfg-eth0) определяет ваш физический сетевой интерфейс и говорит, что он будет частью моста:

# cat > ifcfg-eth0 <<EOF
DEVICE=eth0
HWADDR=00:16:76:D6:C9:45
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no
EOF

Очевидно, измените HWADDR, чтобы он соответствовал фактическому адресу вашей сетевой карты. Вы также можете настроить здесь MTU устройства, например, MTU = 9000.

Второй файл конфигурации (ifcfg-br0) определяет устройство моста:

# cat > ifcfg-br0 <<EOF
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0
NM_CONTROLLED=no
EOF

ПРЕДУПРЕЖДЕНИЕ: строка TYPE = Bridge чувствительна к регистру - в ней должна быть прописная буква «B» и строчная буква «гребень»

После изменения это перезапуск сети (или просто перезагрузка)

 # service network restart

Последний шаг - отключить сетевой фильтр на мосту:

 # cat >> /etc/sysctl.conf <<EOF
 net.bridge.bridge-nf-call-ip6tables = 0
 net.bridge.bridge-nf-call-iptables = 0
 net.bridge.bridge-nf-call-arptables = 0
 EOF
 # sysctl -p /etc/sysctl.conf

Это рекомендуется сделать по соображениям производительности и безопасности. См. Ошибку Fedora № 512206. В качестве альтернативы вы можете настроить iptables, чтобы разрешить пересылку всего трафика через мост:

# echo "-I FORWARD -m physdev --physdev-is-bridged -j ACCEPT" > /etc/sysconfig/iptables-forward-bridged
# lokkit --custom-rules=ipv4:filter:/etc/sysconfig/iptables-forward-bridged
# service libvirtd reload

NetworManager and Bridging

Хотя я не уверен, так ли это до сих пор, поскольку ведется активная разработка, NetworkManager делает не поддерживает мост. Следовательно, может потребоваться отключить его и вместо этого использовать службу network :

# chkconfig NetworkManager off
# chkconfig network on
# service NetworkManager stop
# service network start

Итак, после создания «мостового» интерфейса, поработите его физический сетевой адаптер, как описано в документации, тогда вы необходимо отредактировать конфигурацию виртуального гостя, чтобы поработить его NIC на мосту на хосте.

...
<devices>
  ...
  <interface type='bridge'>
    <source bridge='br0'/>
  </interface>
  <interface type='bridge'>
    <source bridge='br1'/>
    <target dev='vnet7'/>
    <mac address="00:11:22:33:44:55"/>
  </interface>
  ...
</devices>

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


Есть Вопросы и ответы по Serverfault , которые могут быть полезны при настройке гостевой конфигурации. По сути, используя virsh (при условии, что вы работаете с libvirt ), выполните

virsh net-list
virsh net-edit $NETWORKNAME

Найдите раздел dhcp и отредактируйте его примерно так

<dhcp>
  <range start='192.168.122.100' end='192.168.122.254'/>
  <host mac='52:54:00:6c:3c:01' name='vm1' ip='192.168.122.11'/>
  <host mac='52:54:00:6c:3c:02' name='vm2' ip='192.168.122.12'/>
  <host mac='52:54:00:6c:3c:03' name='vm3' ip='192.168.122.12'/>
</dhcp>

Примечание. В / var / lib / libvirt / dnsmasq / может быть файл «hosts» с существующими сопоставлениями.

nl /var/lib/libvirt/dnsmasq/myvirtnet.lan.hostsfile 
     1  52:54:00:39:ae:1c,192.168.122.242,minirhel.myvirtnet
     2  52:54:00:9b:0a:42,192.168.122.133,rhel7.myvirtnet
     3  52:54:00:f9:1e:45,192.168.122.134,rhel7.myvirtnet
     4  52:54:00:b0:d5:38,192.168.122.205,redqcow.myvirtnet
     5  52:54:00:af:c4:9c,192.168.122.206,redqcow.myvirtnet

0
27.01.2020, 22:41

Теги

Похожие вопросы