Назад | Перейти на главную страницу

Доступ к веб-серверу на виртуальной машине с машины в другой подсети

Я не могу получить доступ к веб-приложению, запущенному на виртуальной машине, размещенной на 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 или клиенту доступ к другим подсетям, кроме тех, что показаны здесь?