Я не знаю точно, как реализация SDN могла бы помочь в моей ситуации, но, возможно, кто-нибудь сможет уточнить:
У меня есть физические хосты A и B. На хост A направлено 5 адресов ipv4, а на хосте B один.
Я хочу прозрачно перенаправлять трафик с 4 адресов ipv4 на хост B.
Допустим, хост B - это гипервизор виртуального бокса. Я хочу, чтобы на хосте B было 4 виртуальных машины, которые «думают», что находятся в сети хоста A, и у которых нет причин не делать этого.
Из того, что я видел, люди управляют виртуальными коммутаторами для соединения удаленных сайтов через Интернет, но я хочу, чтобы виртуальные машины на хосте B имели общедоступные маршрутизируемые IPv4-адреса хоста A. Это выполнимо?
Сначала вам понадобится физическое соединение между хостом A и B, то есть оба имеют интерфейс в одном домене уровня 2 (например, в одной VLAN). Вы можете использовать интерфейсы с текущими общедоступными IP-адресами, если они используют один и тот же домен L2 (я думаю, что они, вероятно, соответствуют вашему описанию)
Ваш интернет-провайдер будет маршрутизировать любой трафик, поступающий из Интернета и направленный на эти IP-адреса, через хост A, поэтому хост A должен направлять их на B. Включите пересылку IP на A, чтобы, когда A получает пакет, предназначенный для любого из других 4 IP-адресов, он будет искать пункт назначения в подсети локальных каналов (разрешение ARP) и доставить его.
Если A и B совместно используют физическое соединение и виртуальные машины в B подключены к этому интерфейсу, вы можете настроить IP-адреса на виртуальных машинах и использовать A в качестве шлюза по умолчанию. Виртуальная машина на хосте B получит трафик от A и также вернет его к A. Поскольку A, вероятно, является сервером пересылки без сохранения состояния, вы можете изменить маршрут виртуальных машин по умолчанию, чтобы он указывал на выходной маршрутизатор, который A использует в той же подсети, чтобы немного оптимизировать производительность.
Отредактировано для добавления: если ваш маршрутизатор ISP не маршрутизирует эти IP-адреса специально, вы можете использовать прокси-ARP для захвата запросов и их внутренней маршрутизации. Однако, не зная на самом деле всех деталей, трудно сказать, какой подход лучше всего подходит в вашем случае, и почему и как эти IP-адреса «назначаются» хосту A. Может быть, вам просто нужно настроить их на B и удалить их из A? :)
Я бы не рекомендовал вышесказанное :) Вы увеличиваете количество точек отказа для B (если A выходит из строя, виртуальные машины в B тоже выходят из строя)
Я рекомендую поговорить со своим интернет-провайдером или тем, кто управляет маршрутизатором в восходящем направлении, и попросить их указать IP-адреса на B.
Если требование использовать общедоступные IP-адреса носит чисто косметический характер, используйте какого-либо поставщика оверлейных сетей, который позволяет использовать любую адресацию в оверлейной сети. Таким образом, вы не сможете выполнять маршрутизацию из Интернета на эти IP-адреса.