1

У меня есть Ubuntu box с eth0 и eth1.

Как я могу перенаправить весь трафик с eth0 на eth1 и обратно?

Должен ли я делать DNAT и SNAT, как показано ниже, или просто переадресацию или оба?

редактировать

Мой случай, как эта ABC, 3 машины. Оба A & C в разных сетях. У B есть две ниши: сеть А (eth0) и другая в сети B (eth1). Я не могу установить B в качестве шлюза в A или B.

Ниже показано, как это было достигнуто с помощью iptables на хосте B: РЕШЕНИЕ

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 работает.

1 ответ1

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 по умолчанию). Это, я считаю, по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .