Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » NAT и маскарадинг

Ответить
Настройки темы
NAT и маскарадинг

Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Имеются две сетки, одна домашняя (172.20.0.0, eth0), другая внешняя с выходом в инет (192.168.2.0, eth1). Требуется подставить IP адаптера внешней сети в пакеты домашней. При попытке занести в таблицу nat следующую строку:
iptables -t nat -A POSTROUTING -s 172.20.0.(хост) -o eth1 - j SNAT --to-source 192.168.2.(хост)
или
iptables -t nat -A POSTROUTING -s 172.20.0.(хост) -o eth1 -j MASQUERADE
выдает ошибку 'iptables: Invalid argument'. В чем дело, подскажите?
Ради интереса: iptables -t nat -A POSTROUTING -s 172.20.0.(хост) ошибки не выдает. ASPLinux 9, ядро 2.4.21, сконфигурировано с поддержкой NAT...

Отправлено: 19:22, 29-07-2003

 

BMK-4EVER


Сообщения: 58
Благодарности: 0

Профиль | Отправить PM | Цитировать


Неправильно пишешь
надо так.
iptables -t nat -A POSTROUTING -s (eth0 network) -o eth1 - j SNAT --to-source (eth1 address)

т.е. в пакетах из сети eth0 подставлять адрес ip (интернетовский) машины-гейта
т.е. это надо настраивать именно на той машине, которая имеет ip в инете, а я так понял та настраиваешь на машине рутере между сетями

-------
Товарищь, верь - пройдет пора Виндов и ламерского софта И на обломках микрософта Напишут наши имена.
Пока свободую горим, Пока для глубины мы живы, Линуксу братья посвятим Души прекрасные порывы!


Отправлено: 23:01, 29-07-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Старожил


Сообщения: 213
Благодарности: 0

Профиль | Отправить PM | Цитировать


Demige
ну почему же? пусть себе будет межсетевой nat (если именно это требуется). Просто маршруты настроить надо правильно.
Команда имхо будет правильно выглядеть так:
iptables -t nat -A POSTROUTING -s 172.20.0.10/32 -o eth1 - j SNAT --to-source 192.168.2.1
где 172.20.0.10/32 - адрес того, кого хотим выпустить вовне, 192.168.2.1 - адрес eth1

-------
... the time is money...


Отправлено: 10:36, 30-07-2003 | #3


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, ребята! Только вот проблема осталась...
Попробую рассказать поподробней, что мне нужно. Имеются вот такие сетки:
Home_host (172.20.0.2)<->((172.20.0.1,eth0)Main_home_host(eth1,192.168.2.145))<->((192.168.2.254)Gate(Inet IP)) - Provider
Main_home_host - мой комп, подключенный к муниципальной сети, соответственно, все исходящие пакеты должны содержать адрес источника 192.168.2.145, иначе о доступе в инет и к ресурсам локалки не будет и речи (платная сетка-то).
Gate - системный шлюз в инет, все адреса источников маскарадятся на выделенный инетовский IP.
Home_host - еще один мой комп, с которого я хочу иметь доступ к ресурсам сети и инета.
Вот такая вот картинка получается... как вы посоветовали - я уже делал, перепробовал все, но в итоге все та же ошибка 'Invalid argument'. Методом "тыка" определил, что ошибку вызывает все действия после '-j',  будь то SNAT --to-source IP или простой MASQUERADE. Вот и не пойму, в чем дело... ядро сконфигурировано с поддержкой ipv4, модули загружаю прямо из скрипта без всяких ошибок.

Отправлено: 17:30, 30-07-2003 | #4


Старожил


Сообщения: 213
Благодарности: 0

Профиль | Отправить PM | Цитировать


возможно проблема в том, что необходимые iptables модули автоматом не подгружаются. Посмотри lsmod. Если какие-то из нижеприведенных модулей отсутствуют (второй блок по мере надобности) - действуй modprobe
ip_tables
ip_conntrack
iptable_filter
iptable_mangle
iptable_nat
ipt_state
ipt_REJECT
ipt_MASQUERADE

ipt_LOG
ipt_limit
ip_conntrack_ftp
ip_conntrack_irc
ip_nat_ftp
ip_nat_ircip_nat_irc
ipt_owner

-------
... the time is money...


Отправлено: 09:48, 31-07-2003 | #5


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я эти модули загружаю прямо из скрипта, в случае неудачи появлялась бы ошибка modprobe, а ее нет. Что интересно, сегодня сконфигурировал и поставил ядро 2.4.20 и все заработало на том же скрипте Попробовал переконфигурировать ядро 2.4.21 (мало ли что... все мы люди) - вылезает та же ошибка при использовании аргумента SNAT или MASQUERADE в таблице NAT - 'Invalid argument'. А с ядром 2.4.20 у меня другие проблемы: фиговато работает чипсет nForce2, в частности, IDE - контроллер, да и с тв-тюнером Pinnacle PCTV Pro не все ладно, впрочем, с ним и в 2.4.21 проблемы... но это отдельный вопрос.
Спасибо всем за помощь! Если есть какие-нибудь соображения по этому поводу, буду очень рад их выслушать, тема пока открыта!

Отправлено: 19:24, 31-07-2003 | #6

glassMonk


Сообщения: n/a

Профиль | Цитировать


Огромное спасибо JeweL. Так как мне почти не приходилосб работать с NAT.

Отправлено: 11:35, 02-08-2003 | #7


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Моя проблема решилась очень просто: поставил IPTABLES 1.2.8 (вместо 1.2.7а), после чего на ядре 2.4.21 скрипт заработал (сам удивляюсь). Если кому-нибудь пригодится мой опыт объединения двух сетей с взаимным (или доверенным) доступом к их ресурсам и инету, всегда буду рад помочь: delalex@inbox.ru

Отправлено: 11:01, 03-08-2003 | #8


Пользователь


Сообщения: 111
Благодарности: 0

Профиль | Отправить PM | Цитировать


маскарад - это частный случай SNAT. Используется когда машине присваивается внешний Динамический Ip.И только.
В твоем случае как я понимаю имеется две статичесеи сетки так что маскарад здесь не нужен  а нужен SNAT.
Вот таое дополнение

Добавлено:

маскарад - это частный случай SNAT. Используется когда машине присваивается внешний Динамический Ip.И только.
В твоем случае как я понимаю имеется две статичесеи сетки так что маскарад здесь не нужен  а нужен SNAT.
Вот таое дополнение

-------
Линукс - самая никудышная ОС, если не считать всех остальных...
Люблю на досуге журнальчик почитать - "/var/log/syslog" или ещё какой....


Отправлено: 13:05, 05-08-2003 | #9


Новый участник


Сообщения: 27
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вполне с этим согласен - я и использовал SNAT. *Маскарад здесь был упомянут лишь потому, что не работала именно функция подмены IP-адреса источника в исходящих пакетах, для чего, собственно, SNAT и маскарад и предназначены.
Можно применять маскарад и для статического IP-адреса, просто это является нецелесообразным, т.к. увеличивает нагрузку на систему... в чем между ними разница:
SNAT поставлена конкретная задача - менять адрес источника на явно указанный IP, a MASQUERADE после каждого пакета "забывает", что надо "подсовывать" в качестве исходящего IP и запрашивает адрес внешнего сетевого интерфейса по новой - отсюда и повышенная затребованность ресурсов.

Отправлено: 05:43, 06-08-2003 | #10



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » NAT и маскарадинг

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Proxy/NAT - Настройка NAT в WS win 2003 server (3 - интерфейса, 2 -NAT ) kopchik Сетевые технологии 13 09-11-2007 17:17
[решено] Проблема NAT'a или уже бог знает чего... (2003RU sp1, DC, DNS, NAT+10 XP ) Solid20 Microsoft Windows NT/2000/2003 14 24-07-2006 10:32
IP Маскарадинг в WinXP WebCode Сетевые технологии 3 06-12-2005 22:37
Маскарадинг, Фидо, DNS alexseich Сетевые технологии 9 03-09-2003 18:40
nat Guest Сетевые технологии 1 10-03-2003 19:17




 
Переход