Я не могу получить доступ к веб-приложению, запущенному на виртуальной машине, размещенной на KVM, с машины в другой подсети.
Итак, я хотел бы получить доступ с машины 192.168.1.2 (вверху справа в зеленом круге) к веб-приложению, запущенному на виртуальной машине 192.168.10.1 (внизу посередине в красном круге)
Я добавил статический маршрут на маршрутизаторе netgear, чтобы все запросы к 192.168.10.0/24 перенаправлялись на хост-машину 192.168.1.1.
Сама хост-машина имеет статический маршрут для пересылки запросов на 192.168.10.0/24 через интерфейс моста vmbr1
Заранее благодарим вас за вашу помощь или любую подсказку.
PS: Я уточняю, что даже если брандмауэр отключен, он тоже не работает.
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
traceroute с физической машины 192.168.1.2 на виртуальную машину 192.168.10.1 => KO
traceroute to 192.168.10.1 (192.168.10.1), 30 hops max, 60 byte packets
1 192.168.1.254 (192.168.1.254) 2.390 ms 3.004 ms 3.436 ms
2 * * *
3 * * *
...
30 * * *
traceroute с виртуальной машины 192.168.1.2 на физическую машину 192.168.10.1 => ОК
traceroute to 192.168.1.2 (192.168.1.2), 30 hops max, 60 byte packets
1 192.168.10.254 (192.168.10.254) 0.846 ms 0.648 ms 0.519 ms
2 192.168.1.2 (192.168.1.2) 5.447 ms 5.277 ms 4.977 ms
Пинг с компьютера 192.168.1.2 на виртуальную машину 192.168.10.1:
ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
From 192.168.1.254: icmp_seq=1 Redirect Host(New nexthop: 192.168.1.1)
From 192.168.1.254 icmp_seq=1 Redirect Host64 bytes from 192.168.10.1: icmp_seq=1 ttl=63 time=2.77 ms
From 192.168.1.254: icmp_seq=2 Redirect Host(New nexthop: 192.168.1.1)
From 192.168.1.254 icmp_seq=2 Redirect Host64 bytes from 192.168.10.1: icmp_seq=2 ttl=63 time=2.56 ms
На хост-машине маршруты четко определены, и с этого хост-компьютера я без проблем получаю доступ к веб-приложениям виртуальных машин.
ip route show
default via 192.168.1.254 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1
192.168.10.0/24 dev vmbr10 proto kernel scope link src 192.168.10.254
192.168.20.0/24 dev vmbr20 proto kernel scope link src 192.168.20.254
РЕДАКТИРОВАТЬ
Когда я подключаю компьютер 192.168.1.2 (исходный компьютер) напрямую к маршрутизатору с помощью кабеля RJ45, он работает. Раньше 192.168.1.2 был подключен к роутеру по Wi-Fi. Поэтому я думаю, что это проблема этого маршрутизатора, который не применяет статический маршрут к машине, подключенной через Wi-Fi. Не знаю почему, но это странно: S
Проблема в том, что вы используете маршрутизатор с 2 интерфейсами в одной подсети 192.168.1.0/24.
Машина 192.168.1.2 отправляет пакеты на свой шлюз по умолчанию, я предполагаю, что это 192.162.1.254, то есть маршрутизатор.
Однако, поскольку маршрутизатор обнаруживает, что следующим переходом для пакета является другой IP-адрес в той же подсети, он генерирует перенаправление, которое вы видите в выводе команды ping.
Вам необходимо запустить маршрутизатор как мост или коммутатор, т.е. никаких маршрутов не требуется, поскольку KVM 192.168.1.1 и клиент 192.168.1.2 находятся в одной подсети, им не нужен протокол маршрутизации для обмена данными.
Кроме того, это означает, что правильным шлюзом по умолчанию для клиента 192.168.1.2 должен быть KVM 192.168.1.1.
Что-то еще, вам нужно подтвердить, используете ли вы правильный шлюз по умолчанию для KVM, действительно ли это маршрутизатор? предоставляет ли маршрутизатор KVM или клиенту доступ к другим подсетям, кроме тех, что показаны здесь?