Alexander wrote:
Посоветуйте плз.
Есть сеть, за NAT, некоторые компы с реальными адресами.
Хотелось бы чтоб они нормально в инет ходили (и из инета в них ходили), и с
компами в приватном ранге общались.

Есть два варианта. Первый - обычная маршрутизация: внешние адреса вешаются алиасом на внутренних хостах. Для того, чтобы хост ходил наружу от внешнего адреса необходимо чтобы адрес шлюза был в той же сети, что и этот адрес (в linux, конечно, можно и без этого вывернуться, но в общем случае это так). Поэтому один из адресов придётся повесить алиасом на внутреннем интерфейсе роутера. Тут могут возникнуть некоторые тонкости с назначением сетевых масок и управлением маршрутизацией и их можно решать разными способами. Я предлагаю назначить алиасу маску внешней сети, а внешнему интерфейсу - маску /32. Возможно (в связи с "переползанием" внешней сети вовнутрь) потребуется прописать прямую маршрутизацию к роутеру провайдера через roure add isp_ip dev ...

Второй вариант - прозрачный NAT внутрь/наружу:
iptables -A PREROUTING -t nat -d ext_ip -j DNAT --to-destination int_ip
iptables -A POSTROUTING -t nat -s int_ip -j SNAT --to-source ext_ip

P.S. И не забудте прописать соответствующие правила в FORWARD, если там по умолчанию не ACCEPT.

--
BOFH excuse #437: crop circles in the corn shell

Ответить