libvirt мостовой KVM vm не может маршрутизировать

У меня есть libvirt KVM VM (называемый netstuff), проходящий через мост (br0), который имеет два подчиненных устройства: (em2) физический интерфейс хоста и (vnet0) виртуальный сетевой адаптер. dnsmasq-dhcp находится на хосте, предоставляя IP-адреса виртуальной машине и другим физическим узлам.

Я могу маршрутизировать в любом месте 192.168.1.0/24, в том числе между VM и аппаратным обеспечением, но VM не может маршрутизировать в другую сеть или в Интернет. Когда трафик от гостя выходит на хост, он, похоже, не направляется от моста к интерфейсу em1, который имеет маршрут по умолчанию.

Помогите?

Host libvirt XML:

# virsh dumpxml netstuff ... snip ... <interface type='bridge'> <mac address='52:54:00:27:c4:22'/> <source bridge='br0'/> <target dev='vnet0'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> ... snip ... 

IP-адреса хоста:

 # ip r default via XXX.99.126.1 dev em1 169.254.0.0/16 dev em1 scope link metric 1002 169.254.0.0/16 dev br0 scope link metric 1004 192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1 XXX.99.126.0/27 dev em1 proto kernel scope link src XXX.99.126.4 

Ведущие сетевые адаптеры:

 # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether d4:ae:52:9d:73:c2 brd ff:ff:ff:ff:ff:ff inet XXX.99.126.4/27 brd XXX.99.126.31 scope global em1 valid_lft forever preferred_lft forever inet6 fe80::d6ae:52ff:fe9d:73c2/64 scope link valid_lft forever preferred_lft forever 3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP qlen 1000 link/ether d4:ae:52:9d:73:c3 brd ff:ff:ff:ff:ff:ff inet6 fe80::d6ae:52ff:fe9d:73c3/64 scope link valid_lft forever preferred_lft forever 4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000 link/ether d4:ae:52:9d:73:c3 brd ff:ff:ff:ff:ff:ff inet 192.168.1.1/24 brd 192.168.1.255 scope global br0 valid_lft forever preferred_lft forever inet6 fe80::d6ae:52ff:fe9d:73c3/64 scope link valid_lft forever preferred_lft forever 5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN qlen 1000 link/ether fe:54:00:27:c4:22 brd ff:ff:ff:ff:ff:ff inet6 fe80::fc54:ff:fe27:c422/64 scope link valid_lft forever preferred_lft forever 

Хост iptables:

 # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere INPUT_direct all -- anywhere anywhere INPUT_ZONES_SOURCE all -- anywhere anywhere INPUT_ZONES all -- anywhere anywhere DROP all -- anywhere anywhere ctstate INVALID REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere PHYSDEV match --physdev-is-bridged ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere FORWARD_direct all -- anywhere anywhere FORWARD_IN_ZONES_SOURCE all -- anywhere anywhere FORWARD_IN_ZONES all -- anywhere anywhere FORWARD_OUT_ZONES_SOURCE all -- anywhere anywhere FORWARD_OUT_ZONES all -- anywhere anywhere DROP all -- anywhere anywhere ctstate INVALID REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination OUTPUT_direct all -- anywhere anywhere Chain FORWARD_IN_ZONES (1 references) target prot opt source destination FWDI_public all -- anywhere anywhere [goto] FWDI_public all -- anywhere anywhere [goto] FWDI_public all -- anywhere anywhere [goto] Chain FORWARD_IN_ZONES_SOURCE (1 references) target prot opt source destination Chain FORWARD_OUT_ZONES (1 references) target prot opt source destination FWDO_public all -- anywhere anywhere [goto] FWDO_public all -- anywhere anywhere [goto] FWDO_public all -- anywhere anywhere [goto] Chain FORWARD_OUT_ZONES_SOURCE (1 references) target prot opt source destination Chain FORWARD_direct (1 references) target prot opt source destination Chain FWDI_public (3 references) target prot opt source destination FWDI_public_log all -- anywhere anywhere FWDI_public_deny all -- anywhere anywhere FWDI_public_allow all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere Chain FWDI_public_allow (1 references) target prot opt source destination Chain FWDI_public_deny (1 references) target prot opt source destination Chain FWDI_public_log (1 references) target prot opt source destination Chain FWDO_public (3 references) target prot opt source destination FWDO_public_log all -- anywhere anywhere FWDO_public_deny all -- anywhere anywhere FWDO_public_allow all -- anywhere anywhere Chain FWDO_public_allow (1 references) target prot opt source destination Chain FWDO_public_deny (1 references) target prot opt source destination Chain FWDO_public_log (1 references) target prot opt source destination Chain INPUT_ZONES (1 references) target prot opt source destination IN_public all -- anywhere anywhere [goto] IN_public all -- anywhere anywhere [goto] IN_public all -- anywhere anywhere [goto] Chain INPUT_ZONES_SOURCE (1 references) target prot opt source destination Chain INPUT_direct (1 references) target prot opt source destination REJECT tcp -- anywhere anywhere multiport dports ssh match-set fail2ban-sshd src reject-with icmp-port-unreachable Chain IN_public (3 references) target prot opt source destination IN_public_log all -- anywhere anywhere IN_public_deny all -- anywhere anywhere IN_public_allow all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere Chain IN_public_allow (1 references) target prot opt source destination ACCEPT udp -- anywhere anywhere udp dpt:bootps ctstate NEW ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate NEW Chain IN_public_deny (1 references) target prot opt source destination Chain IN_public_log (1 references) target prot opt source destination Chain OUTPUT_direct (1 references) target prot opt source destination 

Гость IP-маршрутов:

 ssh centos@192.168.1.76 Last login: Sat Apr 8 05:29:55 2017 from 192.168.1.1 [centos@netstuff ~]$ ip r default via 192.168.1.1 dev eth0 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.76 [centos@netstuff ~]$ 

Гостевые сетевые карты:

 [centos@netstuff ~]$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:27:c4:22 brd ff:ff:ff:ff:ff:ff inet 192.168.1.76/24 brd 192.168.1.255 scope global dynamic eth0 valid_lft 2978sec preferred_lft 2978sec inet6 fe80::5054:ff:fe27:c422/64 scope link valid_lft forever preferred_lft forever 

  • Виртуальный eth-адаптер в конфигурации сети
  • Создание сети VPN между живым сервером и частными сетями
  • Почему wlan1 не получает статический IP-адрес?
  • Проблема подключения SSH / SCP | Потерянное соединение
  • Как настроить профили сети в Centos?
  • Сервис прослушивается на порту, брандмауэр не включен, но порт закрывается при попытке подключения извне
  • Как SSH-соединение выдержит перезагрузку сети?
  • Определите интерфейс, который использовался для загрузки через PXE
  • One Solution collect form web for “libvirt мостовой KVM vm не может маршрутизировать”

    Оказывается, это невозможно без NAT, поэтому я снова включил сеть NAT по default с default virsh net-start default . Использование libvirt dnsmasq очень важно, чтобы этот DHCP-сервер работал только на создаваемом им интерфейсе. Поэтому я просто гарантировал, что dnsmasq, который я настроил на хосте, не будет мешать созданию dnsmasq, созданного libvirt. Для этого в /etc/dnsmasq.conf я установил dnsmasq в режим bind-interfaces /etc/dnsmasq.conf и заставил его прослушивать мосты, которые я сделал (br0), указав статический IP-адрес, который я ему дал: 192.168.1.1

     listen-address=192.168.1.1 bind-interfaces 

    И, конечно же,

     systemctl restart dnsmasq 

    См. Здесь для часто задаваемых вопросов dnsmasq и настроек «bind-interface» и «bind-dynamic». http://www.thekelleys.org.uk/dnsmasq/docs/FAQ

    Interesting Posts

    Почему Ctrl + Arrow заставляет мой терминал переключиться в странный режим?

    Мой texinfo не указан в информации

    Регистрация того, что закончилось процессом?

    Как перенести часть шаблона соответствия вывода в файл, оставив остальную часть в stdout?

    Как предотвратить / sda / sdb изменения между загрузками?

    Linux отбрасывает пакеты, если они получены от другого оборудования

    Есть ли способ сделать apt-отчет, какие пакеты в dist-upgrade будут использовать дополнительное дисковое пространство?

    Rsync, который обрабатывает разумно

    Как проверить Tomcat на SVN?

    Найти файлы дубликатов после использования PhotoRec

    Сохранить совпадения grep как массива

    Что такое драйвер GPU, который я сейчас запускаю?

    Автоматическое преобразование новых строк в присвоении переменной оболочки

    Как редактировать несколько файлов в VIM?

    Невозможно сделать .zhistory символической ссылкой

    Linux и Unix - лучшая ОС в мире.