
Я не могу получить доступ к веб-приложению, работающему на виртуальной машине, размещенной 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.
- Telnet-соединение с портом 80 с адреса 192.168.1.2 завершилось неудачей, но было успешно завершено с хост-компьютера 192.168.1.1.
- Вызов ping к виртуальной машине работает с машины 192.168.1.2 к виртуальной машине
- Трассировка маршрута не удалась, но если добавить опцию -I, трассировка тоже заработает.
Заранее спасибо за вашу помощь или любую подсказку.
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 => OK
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 маршрут показать
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
решение1
Проблема в том, что вы используете маршрутизатор с 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 или клиенту доступ к другим подсетям, чем те, которые изображены здесь?