В общем несложно, нужно пробросить локальную и внешнюю подсети по одной сетевушке через разные Vlan'ы. После чего их можно разделить на уровне виртуалок по отдельным виртальным адаптерам:
1) Поднимаете роль Hyper-V
2) Ставите ОС в виртуалку, она и будет маршрутизатором
3) Берете управляемый свич, в один порт подключаете внешний интернет канал и настраиваете на этом порту нетэгированыый порт Vlan, например Vlan 2. Еще один порт - делате с двумя тэгированнымы VLan'ами допустим Vlan 1 и Vlan 2. Остальные порты загоняете в нетэгированный Vlan 1.
*Повторимся, что в итоге что получаем:
- в вашем свиче есть пара Vlan: Vlan 1 - для локалки (много портов) и Vlan 2 - выход в интернет (1 порт).
- еще один порт - объединяющий Vlan 1 и Vlan 2 с тэгированным трафиком (пихаем в сервер).
4) В сервере создаете виртуальный коммутатор, вешаете его на вашу сетевуху, разрешаете доступ хосту на Vlan 1 (последнее необязательно)
5) В виртуалке создаете пару виртальных адаптеров, на один заводите Vlan 1, на второй Vlan 2.
Готово у вас сервак с парой сетевух. Пусть и виртальный. Поднимайте NAT по мануалу.
Условия чтоб получилось: сетевуха сервера, физически поддерживающая Vlan (иногда в драйвере есть, а по факту нет) и управляемый свич.
Если ни того ни другого нет, то схема иная: просто в свич втыкаете и всю локалку, и провайдера тоже. Настраиваете 2 сетевухи в вуртуалке, никаких Vlan.
Работать скорее всего будет, но ваша локалка будет попадать в сеть провайдера. Иногда это вообще неважно - провайдер всё зафильтрует. Иногда важно - от провапйдера попрут широковещательные пакеты соседей и DHCP.