Перейти к содержанию

Как настроить нестандартный NAT на IPTABLES ?


Рекомендуемые сообщения

Суть задачи в следующем:

Есть подсеть (lan1), клиенты которой имеют доступ к некоeму внешнему сервису.

Есть другая подсеть(lan2), клиенты которой также должны получить доступ к этому сервису.

Проблема в том, что сервис сконфигурирован своей администрацией таким образом, что работать в нем можно только находясь в lan1. Соответственно, чтобы подключать к нему хосты из lan2, надо каким-то образом маскировать адрес каждого хоста из lan2 адресом из lan1, причем желательно, чтобы эти адреса назначались статически.

Руководством решено такой NAT настроить на iptables в RedHat Linux 9 ядро 2.4.20-8. Linux PC, выделенный под эту задачу имеет только 2 сетевые карты, одна из которых смотрит в lan1, другая, соответственно, в lan2.

Интересно узнать, реально ли вообще это сделать, и если реально, то хотя бы в общих чертах как?

Ссылка на комментарий
Поделиться на другие сайты

karuss писал(а) Thu, 24 August 2006 12:17

Суть задачи в следующем:

Есть подсеть (lan1), клиенты которой имеют доступ к некоeму внешнему сервису.

Есть другая подсеть(lan2), клиенты которой также должны получить доступ к этому сервису.

Проблема в том, что сервис сконфигурирован своей администрацией таким образом, что работать в нем можно только находясь в lan1. Соответственно, чтобы подключать к нему хосты из lan2, надо каким-то образом маскировать адрес каждого хоста из lan2 адресом из lan1, причем желательно, чтобы эти адреса назначались статически.

Руководством решено такой NAT настроить на iptables в RedHat Linux 9 ядро 2.4.20-8. Linux PC, выделенный под эту задачу имеет только 2 сетевые карты, одна из которых смотрит в lan1, другая, соответственно, в lan2.

Интересно узнать, реально ли вообще это сделать, и если реально, то хотя бы в общих чертах как?

Оффтоп - не позволяйте руководству решать админские вопросы за админов Wink

По сути - а что Вас смущает? Обычный SNAT, под свободные адреса, разумеется. Если требуется менять адрес время от времени, то вполне можно делать это по крону, скрипт пишется за пять минут. Что у Вас не получается?

Ссылка на комментарий
Поделиться на другие сайты

Смущает отсуствие опыта работы с linux-системами и отсутсвие людей с таким опытом в отделе. Все приходится по книжкам и форумам искать. На данный момент я остановился на snat, при котором ip всех хостов из lan2 подменяются ip интерфейса eth1, смотрящего в lan1, linuxPC.

Настроен форвард с eth1 на eth2 пока без всякой фильтрации и цепочка:

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source ip_eth1

Т.е. получился обычный гейт lan1 из lan2. А вот как настроить соответствие каждого ip из lan1 своему конкретному ip из lan2 никак не пойму Sad

Ссылка на комментарий
Поделиться на другие сайты

karuss писал(а) Thu, 24 August 2006 13:11

Смущает отсуствие опыта работы с linux-системами и отсутсвие людей с таким опытом в отделе. Все приходится по книжкам и форумам искать. На данный момент я остановился на snat, при котором ip всех хостов из lan2 подменяются ip интерфейса eth1, смотрящего в lan1, linuxPC.

Настроен форвард с eth1 на eth2 пока без всякой фильтрации и цепочка:

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source ip_eth1

Т.е. получился обычный гейт lan1 из lan2. А вот как настроить соответствие каждого ip из lan1 своему конкретному ip из lan2 никак не пойму Sad

Итак.

Привязка к выходному интерфейсу в принципе некорректна. Работать оно, конечно будет, но зачем? Лучше так:

iptables -t nat -A POSTROUTING -s X -j SNAT --to-source Y

где X - адрес машины в lan2, Y - адрес в lan1

Обратите внимание, что использовать для ната можно только свободные адреса lan1. То есть имеется множество адресов lan1, множество адресов lan2. Некоторые адреса в lan1 используются, некоторые нет. Берем неиспользуемые адреса, назначаем на смотрящий в lan1 интерфейс, каждому адресу из подсети lan2 ставим в соответствие адрес из множества свободных адресов lan1, маскируем пакеты под эти адреса. Разумеется, если свободных адресов lan1 будет меньше, чем машин в lan2, несколько машин lan2 придется маскировать под один адрес lan1. Назначение же всех свободных адресов на интерфейс нужно, чтобы нормально работал роутинг.

Ссылка на комментарий
Поделиться на другие сайты

Точно. Спасибо огромное Smile Я как-то по неопытности не додумался повесить все нужные ip на этот интерфейс. Теперь все работает, еще раз спасибо Smile

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...