Название: ipfw + natd Отправлено: Intoxikata от 23 Август 2008, 21:59 Объясняю проблему.
Есть роутер под управлением FreeBSD с двумя сетевухами. Одна смотрит в антхилл 10.70.0.103/24 (rl1), другая в домашнюю сеть 192.168.0.1/24 (rl0) В /etc/rc.conf разрешены роутинг, натд-демон и файрволл (ipfw) Существуют два правила файрволла 099 divert natd all from any to any 100 allow all from any to any Со стороны домашнего компьютера (192.168.0.100/24) не пингуются хосты за пределами роутера. Если убрать девяносто девятое правило, ситуация не изменится. Кто может сказать почему??? Название: Re: ipfw + natd Отправлено: vania-pooh от 24 Август 2008, 19:45 Ох... Я этого никогда не настраивал к сожалению. А может быть еще включить функции шлюза? Там что-то типа GATEWAY_ENABLED="YES" вроде было для /etc/rc.conf
Название: Re: ipfw + natd Отправлено: OdieZlo от 26 Август 2008, 11:40 я вообще не совсем в теме, но мне кажется что надо ещё DNS ностроить, то есть, если тв DNS не находит IP в своей базе он его не пропускает на внешнюю сеть.
З.Ы. если сказал гупость... прошу громко не смеяться))) Название: Re: ipfw + natd Отправлено: vania-pooh от 26 Август 2008, 13:26 я вообще не совсем в теме, но мне кажется что надо ещё DNS ностроить, то есть, если тв DNS не находит IP в своей базе он его не пропускает на внешнюю сеть. Так ведь мы же без доменных имен работаем. Человек пытается сделать обычный пинг по адресу. Его зарезает фаервол. Ты имеешь в виду, что фаервол может "обмениваться" сведениями с DNS? Думаю он обменивается только, если обращение идет по доменному имени, хотя для точного понимания вопроса нужно читать документацию.З.Ы. если сказал гупость... прошу громко не смеяться))) Название: Re: ipfw + natd Отправлено: OdieZlo от 26 Август 2008, 17:19 Если мы говорим о "трансляции IP" то это скорей всего андо сделать.
У меня настраена трансляция IP на OpenSuse 10.3, когда втарой рас ставил, сам мучался пол дня пока не вспомнил про DNS сервер! вот монула с сайта linuxforum.ru Цитировать Автор: jura12 Feb 27 2008, в 20:33 Я настроил с помощью этой методики выложенной пользователем Olegator : давайте попробую вам немного помочь, у вас в машине с opensuse должно стоять 2 сетевые карты, к одной подключается интернет(например eth0(ip 64.233.187.99)), а к другой локальная сеть (eth1(192.168.0.1)). нужно в брандмауре назначитть для eth0 внешнюю зону,а для eth1 внутреннюю. смотрим что бы все машины могли пинговать друг друга, на клиентских компах должен быть прописан шлюз 192.168.0.1 Заходим в брандмауер - Трансляция сетевых адресов, в верху ставим галочку Трансляция сетевых адресов,далее щёлкаем кнопку "Добавить", вводим следующее: сеть источника 192.168.0.0/24, протокол TCP, в полях "Требуемый порт" и "Перенаправление в порт" прописываем нули, требуемый IP вводим "0.0.0.0/0", т.е. любой. А в поле "Перенаправить в транслированный IP" 64.233.187.99, брандмауер должен быть запущен. Теперь можно проверить пингуется ли сетевой интерфейс eth0 с клиентских машин, должно работать и должны пинговаться сайты по ip например для яндекса ping 213.180.204.8 Потом необходимо поднять DNS сервер, для этого установите DNS пакеты для yast, появится пункт Yast2 -> "Сетевые службы" -> "Сервер DNS" и поставьте пакет bind(хотя не знаю для чего он нужен). Открываем Yast2 -> "Сетевые службы" -> "Сервер DNS" Ставим галочку "PPP Демон устанавливает направление запроса", это означает, что если наш локальный ДНС сервер не обнаружит в своей базе IP адреса требуемого домена, то он попросит его у ДНС провайдера, а в случае указанной конфигурации он автоматически определит ДНС провайдера и будет использовать его. Щелкаем далее. ничего не трогаем на странице "Установка DNS сервера: DNS зоны" и щелкаем далее. В поле "Запуск службы" ставим галочку "При загрузке системы" и жмем завершить, тем самым применяя настройки. опять открываем Yast2 -> "Сетевые службы" -> "Сервер DNS" и помойму на первой вкладке открываем брандмауер таперь на клиентских машинах прописываем сервер DNS 192.168.0.1, ну вроде всё Единственное есть 3 замечания. 1.В Yast2 -> "Сетевые службы" -> "Сервер DNS" и помойму на первой вкладке открываем брандмауер - там делать ничего не надо. По умолчанию стоит eth0=0, eth1=1 этого достаточно. 2.на клиентских машинах прописываем ip адреса и gateway 3.перезагрузить линукс. Название: Re: ipfw + natd Отправлено: ExclusivE от 10 Ноябрь 2008, 01:35 в rc.conf:
Код: gateway_enable="YES" Да, ipfw+natd - решение сильно тормознутое, поскольку natd работает в юзерспейсе. Лучше натить ipnat'ом или чем-нибудь еще в ядре. Название: Re: ipfw + natd Отправлено: Intoxikata от 10 Ноябрь 2008, 11:39 Проблема все еще актуальна. Натд работает без проблем, за тем лишь исключением, что не работает утилита traceroute или tracert в win. Конфиг файрволла выглядит примерно так:
Код: $(wan) - внешний сетевой интерфейс (Антхилл) в rc.conf: Код: gateway_enable="YES" все буквально так, как вы написали Да, ipfw+natd - решение сильно тормознутое, поскольку natd работает в юзерспейсе. Лучше натить ipnat'ом или чем-нибудь еще в ядре. По поводу оптимизации: "правило для программистов: не оптимизируй; правило для экспертов: не оптимизируй никогда" (c)rsdn.ru. Короче говоря, чем проше тем лучше, задача оптимизации не горит. Но если ipnat проше, чем natd, то конечно стоит попробовать. |