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

3+ переадресации портов перехода, iptables и две машины Windows (1 виртуальная машина Windows), ОС Qubes

Хорошо, у меня есть следующая настройка (все, кроме последнего прыжка, - это виртуальные машины внутри QubesOS, но предположительно применяются сетевые соображения Linux)

- обозначает подключение "виртуальная карта Ethernet"

== обозначает подключение физической карты Ethernet (перекрестный кабель от физического сетевого адаптера Qubes к Windows XP)

Windows-7-VM - ProxyVM - NIChostVM == WindowsXP-USB-share

Я хочу передать usb через программное обеспечение совместного использования USB Fabulatech. Порт 33000.

Итак, что мне нужно сделать, это иметь правила iptables для правильной передачи трафика между виртуальной машиной Win-7 и общим ресурсом WindowsXP-USB.

За всю свою жизнь я не могу этого понять.

Я могу получить трафик, если я перейду через сетевой адаптер на ProxyVM

Windows-7-VM - ProxyVM == WindowsXP-USB-share

В этой упрощенной настройке все, что требуется, - это следующие правила в ProxyVM:

ifconfig enp0s0f6 up

ifconfig enp0s0f6 192.169.1.2

ifconfig eth1 netmask 255.255.255.0

DNAT --to-destination 10.137.77.2:33000
iptables -I FORWARD -s 10.137.4.22 -d 192.169.1.1 -j ACCEPT
iptables -I FORWARD -d 10.137.4.22 -s 192.169.1.1 -j ACCEPT
iptables -I INPUT -s 192.169.1.1 -d 192.169.1.2 -j ACCEPT

Однако попытка придумать что-то, что работало бы в случае более длинной машинной цепочки, приводит к потере ответов (и странному неправильному поведению совместно используемых устройств).

Конечно, я мог бы жить с сетевой картой, проходящей через proxyvm, но, учитывая, что она подключается к машине с Windows XP, я бы предпочел, чтобы она находилась в отдельной виртуальной машине.

Да, и эксперименты показывают, что материал Fabulatech использует IP-адрес источника / назначения для некоторой элементарной аутентификации (даже если аутентификация отключена)

Итак, мне нужно следующее:

Пропустите порт 33000 через цепочку из четырех машин, которая выглядит как

(Windows 7)-(default gateway, aka Linux host 1)-(linux-host-2)
                                                     |
                                                     |
                      [crossover link on a dedicated NIC of Linux host 2] 
                                       |
                                       |
                               (windows XP host)

таким образом, что хост Windows XP «видит» IP-адрес Windows 7 как «источник», а Windows 7 видит IP-адрес Windows XP как «исходный IP-адрес» во всех ответах.

Это, вероятно, потребует некоторого SNAT и маршрутизации политик, и, честно говоря, я не в своем уме.

P.S .:

IP-адрес Windows 7 - 10.137.4.22

linux host 1 действует как шлюз по умолчанию для windows 7 и linux-host-2

linux host 2 IP - 10.137.4.4

сетевая карта для подключения XP подключена к хосту linux 2, его IP-адрес 192.169.1.2

IP-адрес Windows XP - 192.169.1.1.

Чем больше я смотрю на это, ваша проблема связана с отсутствием статических маршрутов. Давайте проясним, что для этого не нужны правила NAT.

Но причина, по которой он работает только с VMProxy посередине, заключается в том, что все машины умеют находить друг друга. У XP был шлюз по умолчанию VM proxy. В Windows 7 есть шлюз по умолчанию для другого интерфейса VMProxy. VMProxy напрямую подключен к обеим сетям, и вуаля, они могут общаться.

При добавлении дополнительных машин с несколькими интерфейсами вам необходимо установить статические маршруты. Любая система, которая должна взаимодействовать с сетью, которая не подключена напрямую и недоступна через шлюз по умолчанию, будет нуждаться в настройке статического маршрута, в которой говорится, что если вы хотите достичь сети x.x.x.x, следующим переходом будет y.y.y.y. y.y.y.y - это IP-адрес следующего ближайшего интерфейса, который может достичь целевой сети.

Я был бы более конкретным, но вы не указали хотя бы один IP-адрес в своей информации.