Учитывая, что ваш провайдер предоставляет вам Ethernet, вы можете использовать все свои адреса, немного изменив настройки. Как вы можете это сделать, зависит от операционной системы на ваших виртуальных машинах. Ради этого поста я возьму linux.
Возвращаясь к основам, ethernet является многоточечным, и вы обычно можете напрямую связаться со всеми соседями подсети (адрес L3), обнаружив их MAC (адрес L2) с помощью ARP. То, что ваши виртуальные машины являются виртуальными, и виртуальный переход от реальной сети Ethernet не должен иметь значения, фактически вы можете перейти непосредственно от сетевой карты виртуальной машины к DG вашего провайдера, не проходя (логически, то есть L3) через ваш хост.
Проблема в том, что стандартная логика, т. Е. Поиск соседей ARP, работает только для тех же адресатов подсети, и поэтому ваш DG (шлюз по умолчанию) должен быть в вашей подсети. Это можно изменить несколькими способами.
Самым простым в настройке (но совсем не хорошим вариантом) является использование прокси ARP. Большинство маршрутизаторов поддерживают ответ ARP на нелокальные (т. Е. Дополнительные подсети) запросы. Вы используете это, настраивая маршрут по умолчанию, указывающий на интерфейс Ethernet. Не очень хорошо, потому что вы делаете ARP для каждого адреса, с которым общаетесь, но работает.
ip address add 50.76.102.200/24 dev eth0 ip route add default dev eth0
Очень простая (и хорошая) альтернатива - получить адрес DG у вашего поставщика услуг в этой подсети и использовать его для своих виртуальных машин. Скажите 50.76.102.1.
ip address add 50.76.102.200/24 dev eth0 ip route add default via 50.76.102.1 dev eth0
Но если нет, вы можете (по крайней мере, в Linux с использованием iproute2) использовать DG, который не находится в вашей подсети:
ip address add 50.76.102.200/24 dev eth0 ip route add default via 100.0.98.115 dev eth0 onlink
Я надеюсь, вы поняли идею.