Вы могли бы настроить NAT с каждой гостевой сетью в своей частной сети. Во-первых, вам нужно перестать соединять все их сетевые интерфейсы вместе (в конце концов, если все они подключены к одному коммутатору, они вряд ли находятся в своих собственных частных сетях).
Затем нужно настроить правила NAT, и возможно это сработает. Но, вероятно, нет - исходящий путь должен работать, но обратный путь - это проблема. Механизм NAT получает ответный пакет, возвращает его обратно к источнику 192.168.0.2 (или какому-либо другому). Затем он передает его на маршрутизацию... которая отправляет его куда? Все гости имеют один и тот же IP-адрес, все их интерфейсы имеют один и тот же адрес/маску подсети.
Поэтому нам нужно исправить маршрутизацию. К счастью, это можно сделать с помощью маршрутизации политик.
Если вы добавите -t mangle
правила для каждого гостя (основанные на порте источника, например, vnet0 или любом другом), вы сможете пометить соединения. Затем вы можете направить ответ обратно (используя ip rule
) на основе этой пометки.
Это много конфигурации, но как только вы заставите ее работать, она будет доступна для сценариев. Возможно, это сработает. Я не тестировал его. Разумно это или нет, ну... лично я бы попытался заставить DHCP работать правильно. Подумайте, что подумает следующий человек, которому придется его администрировать (а это вполне можете быть вы через несколько месяцев, когда вы забудете, как это работает)
.