Я столкнулся с странным поведением, которое пока не могу объяснить. Наверное, скоро разберусь, но выложу здесь на всякий случай — вдруг кто-то ответит быстрее, чем я разберусь сам. Упростил ситуацию, чтобы было понятнее.
У меня есть нода с последней версией Proxmox, назовём её pve-node1. eth0 подключён к LAN, eth1 — к WAN (Интернет). У обоих интерфейсов нет IP-адресов, они вместо этого подключены к мостам vmbr0 и vmbr1. На vmbr0 висит IP в LAN — 192.168.1.100, а у vmbr1 на WAN нет IP.
Я перенёс физический шлюз на VM-контейнер и подключил к нему оба моста — vmbr0 и vmbr1. Внутри ВМ интерфейсы eth0 и eth1 получили IP 192.168.1.1 и X.X.X.X соответственно (последний — IP в интернете). Такая же конфигурация отлично работала на выделенном физическом сервере и обеспечивала NAT для всего LAN, включая pve-node1.
Но после переноса в VM вся сеть LAN без проблем выходит в интернет, кроме самого pve-node1. С него интернет пингуется, даже большие пакеты доходят. Но TCP-сессии не устанавливаются. Видно первый входящий SYN, ACK пакет — и всё, дальше никаких пакетов не приходит, сессия просто висит до таймаута.
Такое я видел, когда пути входящего и исходящего трафика отличаются. Но тут ни мой файрволл, ни маршрутизация не виноваты, ведь всё работает у остальных хостов. Наверняка связано с KVM virtio-net или мостами. Но пока не могу понять, почему именно не работает.
У меня есть нода с последней версией Proxmox, назовём её pve-node1. eth0 подключён к LAN, eth1 — к WAN (Интернет). У обоих интерфейсов нет IP-адресов, они вместо этого подключены к мостам vmbr0 и vmbr1. На vmbr0 висит IP в LAN — 192.168.1.100, а у vmbr1 на WAN нет IP.
Я перенёс физический шлюз на VM-контейнер и подключил к нему оба моста — vmbr0 и vmbr1. Внутри ВМ интерфейсы eth0 и eth1 получили IP 192.168.1.1 и X.X.X.X соответственно (последний — IP в интернете). Такая же конфигурация отлично работала на выделенном физическом сервере и обеспечивала NAT для всего LAN, включая pve-node1.
Но после переноса в VM вся сеть LAN без проблем выходит в интернет, кроме самого pve-node1. С него интернет пингуется, даже большие пакеты доходят. Но TCP-сессии не устанавливаются. Видно первый входящий SYN, ACK пакет — и всё, дальше никаких пакетов не приходит, сессия просто висит до таймаута.
Такое я видел, когда пути входящего и исходящего трафика отличаются. Но тут ни мой файрволл, ни маршрутизация не виноваты, ведь всё работает у остальных хостов. Наверняка связано с KVM virtio-net или мостами. Но пока не могу понять, почему именно не работает.
