У каждого гипервизора конечно по своему, но базово технологии две:
1) создать виртуальный логический интерфейс внутри виртуалки и обьединить его какой-либо логической обвязкой с хостовым интерфейсом (мостом, L3, veth или более продвинутыми вещами типа openswitch, distributed switch, NSX).
2) целиком прокинуть интерфейс от хвостовой машины в виртуалку, отобрав его у хоста, как порт usb. Как пример, usb сетевую карточку можно прокинуть на уровне usb сразу в виртуалку, там установить драйвер к сетевушке и пользоваться своим портом.
Отвечая на вопрос, где применяется тип подключения NAT для виртуалок - ну наверно только на домашнем компьютере с виртуалбокс или на тестовом стенде. В промышленной среде всегда есть отдельная сущность (железка или же другая виртуалка) для целей NAT.