1. Для редиректа http и https трафика на виртуальные машины проще использовать nginx в режиме reverse proxy и т.п. Можно поднять его на отдельной ВМ и редиректить оттуда.
2. MASQUERADE и SNAT работают ТОЛЬКО для пакетов, появившихся на виртуальной машине, никакого отношения к пакетам, пришедшим на виртуальную машину извне они не имеют. Если вы настраиваете доступ на сервисы на ВМ для клиентов снаружи через NAT - вам нужно открыть доступ только для PREDOUTING -j DNAT и ну и разрешить прохождение транзитного трафика в ядре и в таблице iptables FORWARD. SNAT здесь никак участвовать не будет.
3. MASQUERADE меняет адрес источника в заголовке уходящего с виртуальной машины пакета на адрес интерфейса, откуда он уходит наружу, и происходит это уже после принятия решения о маршрутизации.
4. Если вы хотите выдавать внешние адреса виртуальным машинам, то зачем вообще нужен NAT? По идее есть возможность создать виртуальный свитч, где будут находиться и сетевой интерфейс самого директора и сетевые интерфейсы ВМ