LINUX.ORG.RU
решено ФорумAdmin

Нет доступа к guest с KVM хоста

 , , ,


0

1

Наблюдаю непонятную хрень, которой по всем параметрам не должно быть, но она есть.

  • На домашнем ПК 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 и не понимаю в какую сторону дебажить дальше.


В общем, после того как я развернул VM с бунтой и она запинговалась, стало понятно, что проблема в VM с оффтопиком. Но поскольку я восстанавливал её со 100% рабочего снапшота, то эта проблема никак не связана с моими действиями.

Короче, я нашел, когда начал тупо вырубать все связанные с сетью сервисы. На этой VM стоит VPN. Собственно, она под него и разворачивалась - поскольку контора подняла VPN для которого не существует клиента под линукс. И вот сегодня у этого VPN сервера чёто там не сложилось и он сдох. И как оказалось рукожопые разрабы этого поделия накодили так, что если клиент не может подключиться к серверу, то он тупо блочит все входящие пакеты, если они не идут в рамках уже установленного соединения (поэтому хост и пингается с VM). И это даже не будучи включенным! При этом сервис сам VPN клиента на оффтопике встает раком и его нельзя вырубить - только сносить клиента целиком.

Спасибо всем кто это прочитал. Может кому-то еще потом поможет.

emcode
() автор топика
Последнее исправление: emcode (всего исправлений: 1)