ПК с двойным интерфейсом с одним IP-адресом

Я хотел бы настроить машину с 2 сетевыми интерфейсами в следующей настройке:

LAN1 <---> ПК <---> LAN2

Сложность в том, что ПК должен быть доступен как из LAN1, так и из LAN2 с одинаковым IP-адресом, а LAN1 и LAN2 не должны быть подключены. Пока что я пробовал:

1) Настройка моста на двух интерфейсах; однако мосты обычно предназначены для пересылки трафика, и я не хочу такого поведения.

2) Настройка связующего интерфейса в режиме 3. Это работает, но отправляет любой ответ с ПК на оба интерфейса.

Ребята, вы знаете какие-нибудь альтернативы?

Спасибо,

шлифовальная машинка

2 ответа

Решение

Я нашел здесь аккуратное рабочее решение, разделяя его с людьми с похожими проблемами.

Мост был тем, что мне было нужно в конце концов; и вы можете довольно легко манипулировать поведением, используя ebtables. Чтобы убедиться, что мост не пересылает пакеты, все, что мне нужно было сделать, это изменить политику пересылки ebtables на "drop". Это делает так, чтобы пакеты, поступающие по eth0, никогда не отправлялись по eth1, в то время как у вас все еще есть приятные функции моста (по одному IP-адресу с обеих сторон) на вашем устройстве.

Теперь ПК прослушивает оба интерфейса на один и тот же IP-адрес и выбирает, на каком интерфейсе он отправляет пакеты, основываясь на своих разрешениях ARP.

Код:

ebtables -P FORWARD DROP
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1

Я думаю, что вы имеете в виду это:

  • eth0 подключен к одной сети, которая имеет 192.168.0.0/24
  • eth1 подключен к другой сети, которая также имеет 192.168.0.0/24
  • Сеть с одной стороны - это другой широковещательный домен для сети с другой стороны.
  • Ваш ПК должен иметь одинаковый IP-адрес (например: 192.168.0.1/24) в обеих сетях

Это правильно?

Это не правильный способ настройки сети. Система может иметь только один интерфейс для связи с данной подсетью.

Скажем, ваша система (192.168.0.1) хочет связаться с другой системой (192.168.0.2). Какой интерфейс он должен использовать? Там нет никакого способа, чтобы сказать. Если этот IP-адрес назначения существует в обеих подсетях, с какой системой назначения следует связаться? Там нет никакого способа, чтобы сказать.

Вы должны будете нумеровать каждый интерфейс по-разному, например так:

  • eth0 - 192.168.0.1/24
  • eth1 - 192.168.1.1/24

Затем сделайте SNAT и DNAT на eth1 интерфейс, поэтому ваша система думает, что говорит с другой сетью, но iptables фактически переписывает пакеты с другим IP-адресом источника / приемника при входе / выходе.

Другие вопросы по тегам