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

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

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

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

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

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

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

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

Спасибо,

шлифовальный

Я думаю, вы имеете в виду следующее:

  • 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-адресом на входе / выходе.

Я сам нашел здесь изящное рабочее решение, поделившись им с людьми с похожими проблемами.

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

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

Код:

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