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

Одна и та же сеть, две интерфейсные карты, хосты в разных сетях

Может кто-нибудь помочь с этим?

У меня есть гаджет с фиксированным IP-адресом 10.0.0.2, который я не могу изменить. Ему нужно разговаривать с моим ноутбуком, который, в свою очередь, должен подключаться к Интернету.

Моя основная сетевая карта получает свой IP от DHCP-сервера. У меня есть вторичная сетевая карта с IP-адресом 10.0.0.5, и я общался с устройством через этот интерфейс.

Мне пришлось перейти в другой сегмент сети, диапазон IP-адресов которого равен 10.0.0.0/24. Отлично. Я тоже не могу повлиять на это.

Теперь я столкнулся с проблемой. 10.0.0.2 уже используется, так что я не могу просто так просто подключить гаджет с фиксированным IP-адресом к этой сети и жить долго и счастливо.

Это означает, что теперь мне нужно изменить мой хост Ubuntu таким образом, чтобы он мог разговаривать с 10.0.0.254 (шлюз по умолчанию) через eth0 и 10.0.0.2 через eth1. Как мне это сделать? Мой eth0 получает случайный IP-адрес 10.0.0.x, а мой eth1 фиксируется на 10.0.0.5.

Я пробовал следующее:

  1. добавьте статическую запись в таблицу arp, чтобы указать, что 10.0.0.2 находится в xx: xx: xx: xx: xx: xx через интерфейс eth1
  2. Пытался привязать мое исходящее соединение к 10.0.0.5 при разговоре с 10.0.0.2
  3. Измените eth1 на что-то совершенно другое (10.42.0.1) и используйте iptables, чтобы сделать так, чтобы при передаче пакета на 10.42.0.2 он фактически переходил на 10.0.0.2.

Ничего из этого не работает. Когда я tcpdump eth1, весь трафик все еще пытается выйти через eth0 в случаях 1 и 2. В случае 3 я могу сделать перенаправление на 10.0.0.2, но трафик тогда просто выбирает неправильный интерфейс и выходит из eth0, поскольку eth1 не имеет адрес там.

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

Я думаю, что единственный способ решить эту проблему - это получить другой компьютер, подключить его к eth1, использовать для этого сеть 10.42.0.0/24, а затем настроить этот компьютер на ретрансляцию трафика на 10.0.0.2. Теперь это должно работать, поскольку в этой сети не более одного интерфейса. Проблема заключается в получении другого компьютера или маршрутизатора.

ЧАС