Наблюдаю непонятную хрень, которой по всем параметрам не должно быть, но она есть.
- На домашнем ПК c KVM (Fedora) есть виртуалка с Windows 10.
- Два дня назад все работало. Не обновлялся, автоматические обновления отключены.
- VM работает через NetworkManager bridge.
NAME UUID TYPE DEVICE
br0 2a2c5aba-8c93-4024-98af-95b803aa18ee bridge br0
virbr0 ad7eab32-be6d-4beb-bcfb-9ba4eaae4cff bridge virbr0
br0-slave a3235426-33f2-4bd5-a2ec-90bffcd3ee38 ethernet enp30s0
С VM пингуется все - локалка, DNS запросы, интернет есть, но… VM не пингуется с хоста, ну и RDP тоже нет. В этом заключается проблема.
Дальше начинается полтергейст:
- В таблице MAC адресов и хосте и на VM нужные записи есть, адреса правильный. По Wireshark вижу что ARP проходит в обе стороны.
- В Wireshark на хосте вижу что ICMP уходит на нужный MAC, ответа нет. В Wireshark на VM вижу что ICMP не приходит.
- VM восстановлена со снапшота и пересоздана с бэкапа (define/undefine), на котором 100% все работало. Я же как-то раньше подключался по RDP.
- В VM отключал все что можно: firewall, defender. Пересоздал сетевой адаптер.
- Разные драйвера: virtio, e100.
- На хосте пересоздал bridge, вырубил firewalld и selinux. Лог последнего пустой.
- IP и MAC тоже пробовал менять с обоих сторон.
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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: enp30s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether 30:9c:23:05:c0:12 brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 62:7e:5e:88:c7:8e brd ff:ff:ff:ff:ff:ff
inet 192.168.1.7/24 brd 192.168.1.255 scope global noprefixroute br0
valid_lft forever preferred_lft forever
inet6 fe80::dfc:2192:2a51:4bcf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: ip_vti0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
link/ipip 0.0.0.0 brd 0.0.0.0
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:cd:58:09 brd ff:ff:ff:ff:ff:ff
inet 192.168.124.1/24 brd 192.168.124.255 scope global virbr0
valid_lft forever preferred_lft forever
# ip r
default via 192.168.1.1 dev br0 proto static metric 425
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.7 metric 425
192.168.124.0/24 dev virbr0 proto kernel scope link src 192.168.124.1 linkdown
# sudo nft list ruleset
table ip filter {
}
table ip nat {
}
table ip mangle {
}
table ip6 filter {
}
table ip6 nat {
}
table ip6 mangle {
}
# getenforce
Permissive
# journalctl -t setroubleshoot
-- No entries --
# arp
Address HWtype HWaddress Flags Mask Iface
192.168.1.48 ether 52:54:00:8b:6a:f8 C br0 <<< VM
_gateway ether 28:28:5d:65:3d:1a C br0
Если проблема в VM я должен видеть в Wireshark пакеты c хоста (https://serverfault.com/a/624954) а их нет. Кто-то дропает пакеты в VM c хоста, но при отключенном fw непонятно кто бы это мог быть. Грешу на ядро/qemu и не понимаю в какую сторону дебажить дальше.