Я пытаюсь понять, почему сетевая конфигурация Proxmox «по умолчанию» ведет себя не так, как я ожидаю.
У меня есть:
- сервер Proxmox (10.0.40.10)
- сетевой мост (vmbr0), созданный Proxmox по умолчанию
- виртуальная машина (10.0.40.20), подключенная к vmbr0 (назовем ее VM1)
- виртуальная машина (10.0.40.25), подключенная к vmbr0 (назовем ее VM2)
- шлюз (10.0.40.254), настроенный на vmbr0
Когда я выполнил HTTP-передачу (GET) на VM2 от VM1, скорость, которую я наблюдал, указывала на то, что трафик покидал хост Proxmox, направлялся к шлюзу и возвращался обратно к хост Proxmox.
И ВМ1, и ВМ2 подключены к vmbr0, поэтому я ожидал, что vmbr0 будет "переключаться" между двумя ВМ на основе MAC/ARP, и что трафик будет оставаться полностью локальными (и быть на один или два порядка быстрее).
Когда я запускаю ping с VM2 на VM1, я наблюдаю это:
[root@vm2 ~]# ping -c 5 10.0.40.20
PING 10.0.40.20 (10.0.40.20) 56(84) bytes of data.
64 bytes from 10.0.40.20: icmp_seq=1 ttl=64 time=0.485 ms
From 10.0.40.254 icmp_seq=1 Redirect Host(New nexthop: 10.0.40.20)
64 bytes from 10.0.40.20: icmp_seq=2 ttl=64 time=0.609 ms
From 10.0.40.254 icmp_seq=2 Redirect Host(New nexthop: 10.0.40.20)
64 bytes from 10.0.40.20: icmp_seq=3 ttl=64 time=0.598 ms
--- 10.0.40.20 ping statistics ---
3 packets transmitted, 3 received, +2 errors, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.485/0.564/0.609/0.056 ms
Запуск traceroute показывает:
[root@vm2 ~]# traceroute -I 10.0.40.20
traceroute to 10.0.40.20 (10.0.40.20), 30 hops max, 60 byte packets
1 gateway (10.0.40.254) 0.328 ms 0.308 ms 0.393 ms
2 10.0.40.20 (10.0.40.20) 0.472 ms 0.481 ms 0.533 ms
Конфигурация vmbr0 выглядит так:
Определение сети для ВМ1:
Определение сети для VM2:
Это кажется таким фундаментальным вариантом использования, кажется, что я что-то упускаю.
Кто-нибудь знает, верны ли мои ожидания или это правильное поведение для vmbr0? Что-то выглядит неправильно? Нужно ли мне что-то вроде Proxy ARP или встроенного виртуального маршрутизатора для решения такого простого варианта использования?