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

KVM - Добавление общедоступного IP-адреса через мост

Я работаю над настройкой среды KVM и обычно просто считаю само собой разумеющимся, что сеть настроена. У меня возникли трудности с получением общедоступных IP-адресов с виртуальных машин. Узел и виртуальная машина работают под управлением CentOS 7

Вот текущее состояние:

VM: 5.5.5.5  -> IP on physical node: 5.5.5.3 (pingable)
VM: 5.5.5.5 -> Neighbouring physical node: 5.5.5.2 (pingable)
VM: 5.5.5.5 -> Outside IP: 8.8.8.8 (network unreahable)
Physical Node: 5.5.5.3 -> VM: 5.5.5.5 ( Destination Host Unreachable )
Physical Node: 5.5.5.3 -> Outside: 8.8.8.8 (pingable)
Outside -> Physical Node: 5.5.5.2 (pingable)

У меня есть диапазон 5.5.5.0/28, настроенный на br1 на физическом узле, к которому привязан eth1.

К виртуальной машине добавлена ​​мостовая сеть, и заметные искажения как от виртуальной машины (5.5.5.5), так и от узла (5.5.5.3) дают правильные ответы, как и ожидалось.

<interface type='bridge'>
  <mac address='52:54:00:84:e5:e1'/>
  <source bridge='br1'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</interface>

Согласно DC, с которым я работаю, на виртуальной машине создан / etc / sysconfig / network-scripts / route-eth0 и файл rule-eth0:

# cat route-eth0 
default via 5.5.5.14 dev eth0 table 125

# cat rule-eth0 
from 5.5.5.0/28 table 125

Маршруты ВМ:

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
5.5.5.0   0.0.0.0         255.255.255.240 U         0 0          0 eth0

Узловые маршруты:

 Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    0.0.0.0         6.6.6.14   0.0.0.0         UG        0 0          0 br0
    6.6.6.0     0.0.0.0         255.255.255.0   U         0 0          0 br0
    5.5.5.0   0.0.0.0         255.255.255.240 U         0 0          0 eth1
    5.5.5.0   0.0.0.0         255.255.255.240 U         0 0          0 br1
    192.168.10.0    0.0.0.0         255.255.254.0   U         0 0          0 eth1
virbr0

Любые указатели на то, что проверить или где я мог ошибиться, очень ценятся .... и просто для пояснения - нет, это не настоящие IP-адреса, они просто составлены, например, ради.

Заранее спасибо.

Попробуйте этот sysctl:

net.bridge.bridge-nf-call-arptables=0
net.bridge.bridge-nf-call-ip6tables=0
net.bridge.bridge-nf-call-iptables=0

Вам нужно, чтобы ваш мост работал как «коммутатор» без какой-либо маршрутизации и NAT. И нет необходимости устанавливать "net.ipv4.conf.all.forwarding", если вы также не подключили виртуальные сети к NAT. Стандартные правила libvirt iptables хорошо работают с NAT-подключениями из сети по умолчанию в Интернет, но могут мешать мостовым подключениям.