Як перенаправити весь трафік у eth0 на eth1 і назад


1

У мене є коробка Ubuntu з eth0 та eth1.

Як я можу переспрямовувати весь трафік, що йде від eth0 до eth1 і назад?

Чи потрібно робити DNAT і SNAT, як нижче, або просто переслати або обидва?

Редагувати

У мене справа така ABC, 3 машини. Обидва A & C в іншій мережі. B мають два nic: одна - мережа A (eth0), а інша - мережа B (eth1). Я не можу встановити B як шлюз в А ні В.

Нижче описано, як цього досягти iptables на хості B: SOLUTION

iptables -t nat -A PREROUTING -p tcp -m tcp ! --dport 22 -j DNAT --to-destination eth1IP
iptables -t nat -A POSTROUTING -p tcp -m tcp -o eth1 -j MASQUERADE

Виключили порт 22, щоб трафік SSH був позбавлений правил і мій ssh ​​для розміщення C працював.


Ці різні порти Ethernet використовують різні апаратури?
Бісвапріо

2
Чому ти хочеш це робити?
Сет

Обидва знаходяться в різній мережі. A --- B --- C. A і B (eth0) в одній мережі. B (eth1) і C в одній мережі. Якщо A хоче поговорити з C, то це можливо лише через B.
3lokh

Відповіді:


0

Якщо маски мережі є правильними і не перетинаються, вам не потрібно використовувати DNAT або SNAT, вам просто потрібно переконатися, що:

  1. Кожен комп'ютер має шлюз за замовчуванням, встановлений через вікно Linux, або має маршрут до іншої мережі через поле Linux.

  2. Коробка Linux переадресацією включена - розкоментуйте net.ipv4.ip_fortwardв /etc/sysctl.confперезавантажиться (або echo 1 > /proc/sys/net/ipv4/ip_forwardзробити це тимчасово).

  3. Переконайтеся, що брандмауер дозволяє переадресовувати ( iptables -vnLі переконайтеся, що FORWARDINGправило не має ланцюгів і встановлено за замовчуванням ACCEPT). Це, я вважаю, за замовчуванням.


Я не можу змінити шлюз за замовчуванням на іншій машині.
3лох

1
Чому б не з'єднати eth0 і eth1, щоб вони з'являлися як єдина мережа?
Давидго
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.