Назад | Перейти на главную страницу

Есть ли способ, которым одноадресный пакет с одной машины отправляется на две машины?

Есть ли способ, которым одноадресный пакет с одной машины отправляется на две машины? Как это происходит.

Кто-нибудь случайно сталкивался с таким состоянием?

Это может быть довольно распространенным явлением в зависимости от топологии вашей сети и моделей коммутатора. Если у конкретного коммутатора нет адреса назначения в его таблице CAM, он отправит пакет через все порты. Неважно, широковещательный, многоадресный или одноадресный. Согласно Cisco это может быть вызвано асимметрией пути, изменениями топологии или переполнением таблицы CAM. Я также видел, как это происходило с переключателями низкого качества.

Вы ищете сети, которые намеренно направляют одноадресный пакет на несколько машин? Или вы рассматриваете случаи, когда это происходит случайно из-за неправильной настройки?

Маловероятно, что это произойдет случайно. Я не могу придумать очень вероятный сценарий, при котором это могло бы произойти. Преобразование одноадресного адреса в многоадресный - это одна из ошибок, из-за которой это может произойти.

Преднамеренная маршрутизация пакета, отправленного на одноадресный адрес на несколько хостов, вполне возможна. Я могу придумать для него один значимый вариант использования.

Размещение службы на основе TCP на произвольном адресе, как известно, проблематично из-за возможности изменения маршрутов, пока соединение открыто. Это может привести к разрыву соединений. Дополнительный уровень, который туннелирует пакеты от клиента между серверами на случай, если они окажутся на неправильном сервере, может решить эту проблему.

Однако этот подход создает новую проблему, потому что этот уровень должен отслеживать, куда должны быть маршрутизированы пакеты. Но эта перемаршрутизация не является статической, при ее изменении могут появиться два возможных кандидата на правильный пункт назначения для пакета от клиента. На этом этапе пакет, который с точки зрения клиента был отправлен на одноадресный адрес, должен быть переадресован на два разных хоста, где только один из них будет отвечать.

Теоретически было бы возможно, чтобы две машины с одним и тем же MAC-адресом, подключенные к одному широковещательному домену, получали одинаковые кадры. На обеих машинах также должен быть настроен один и тот же IP-адрес, поскольку ядро ​​будет отбрасывать пакеты, которые не предназначены для машины. Вероятно, вам также понадобится концентратор в сети, потому что коммутатор обычно не разрешает два порта с одним и тем же MAC-адресом в VLAN. Кроме того, при такой настройке вы быстро столкнетесь с проблемами с сеансами TCP (потому что кадры будут отправлены не на тот хост).

Я думаю, что это очень маловероятный сценарий, и это создаст у обоих хостов множество проблем с подключением.

Да, это возможно с помощью anycast, поскольку обе машины будут иметь один и тот же IP-адрес, однако это была бы странная конфигурация anycast, поскольку оба маршрута имеют одинаковое количество переходов, приоритет и другие критерии, которые обычно предпочтительнее одного по сравнению с другим .

Вероятно, вы могли бы сделать это с помощью странно настроенного балансировщика нагрузки или устройства NAT, хотя, как утверждает mtak, у вас, вероятно, будут проблемы с подключением на многих разных уровнях.