Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по FreeBSD (http://forum.oszone.net/forumdisplay.php?f=10)
-   -   NAT (http://forum.oszone.net/showthread.php?t=16034)

Negativ 24-11-2003 08:55 86844

Хочу чтобы НАТ работал по двум интерфейсам. Скажем по fxp1 и gif0. Возможно такое?

EmeJIbka 24-11-2003 18:27 86845

Конечно ! Когда правила для ната пишешь, там срфзу интерфейс и указываешь (via fxp1).

Negativ 25-11-2003 09:30 86846

EmeJIbka
Правила для НАТа в natd.conf ты имеешь в виду?
Видимо ты меня не понял. Я хочу чтобы пакеты заворачивались с разных интерфейсов (т.е. из совершенно отличных друг от друга сетей). и это должно происходить одновременно.
Что мне в natd.conf пистаь?
interface fxp1
interface gif0              ?????
по-моему он меня просто не поймет.

EmeJIbka 25-11-2003 15:57 86847

Какой natd.conf ? Я же про ipfw, как работать нату указывают правила в ipfw, там пишешь что через чего и куда заворачивать, по каким интерфейсам.

Negativ 27-11-2003 09:24 86848

EmeJIbka
Помоги нат настроить. Я уже все пальцы об клаву истер, настраивая его.
Делаю все вроде бы так как надо, а он гад все-равно не работает.

в rc.conf прописал

firewall_enable="YES"
firewall_script=''/etc/rc.firewall"
firewall_type="здесь мой тип"
natd_enable="YES"
natd_interface="rl0"
natd_flags="-f /etc/natd.conf"
gateway_enable="YES"
router_enable="YES"

в natd.conf
same_ports yes
use_sockets yes


в rc.firewall
case ${firewall_quiet} in
[Yy][Ee][Ss]
* * *fwcmd=''/sbin/ipfw -q"
* * *;;
*)
* * * fwcmd=''/sbin/ipfw"
* * *;;
esac
####
${fwcmd} -flush
...
[мой тип]
${fwcmd} add divert natd tcp from any to any via rl0


P.S. Ядро сконфигурировано с опциями
IPDIVERT и т.д. все как надо



[s]Исправлено: Negativ, 9:26 27-11-2003[/s]


[s]Исправлено: Negativ, 9:27 27-11-2003[/s]

EmeJIbka 27-11-2003 16:24 86849

Хелло, еверибоди :)
Тут такая фияа - если почитать ман по ipfw, не сложно понять, что пакеты обрабатываются как входящие, так и исходящие, поэтому у тебя ничего и не работает (вернее проходят тока исходящие пакеты).

Вот тебе кусок рулесов:

ipfw add 10 divert natd ip from $твоя_подсеть to any out xmit fxp1
ipfw add 20 divert natd ip from any to $IP_fxp1

Вот так всё должно работать.

Negativ 28-11-2003 09:36 86850

добавил я правила
ipfw add 10 divert natd ip from 192.168.11.0/24 to any out via rl0
ipfw add 20 divert ip from any to 81.18.*.* via rl0

все-равно не работает
на клиентской машине шлюз прописан. (это если вдруг вопрос возникнет)

xmit - это что?
в чем разница между via и xmit

EmeJIbka 28-11-2003 10:23 86851

Второй via вроде как добавлять не надо.
А в логах то natd чего пишет ?

Negativ 28-11-2003 16:46 86852

EmeJIbka
Да в логах все нормально. Только вот лог sequrity меня смущает.
пишет что запрещает tcp пакеты на теадреса на которые я пытаюсь выйти через нат. Но дело в том что в rc.firewall таких правил нет вообще. Есть только запрещающие log а запрещающих tcp  нет. Может я чего-то недопонимаю. Объясни. Я уже целую неделю над ним пыхтю.

EmeJIbka 29-11-2003 07:47 86853

Вот те руководство :
первой - давай сюды ipfw sh
второе - в /usr/local/etc/rc.d/ создаешь исролняемый (ipfw.sh) файлик примерно  следующёего водержания :
#!/bin/sh

ipfw='/sbin/ipfw -q'
${ipfw} add 10 divert natd ip from 192.168.11.0/24 to any out xmit fxp1
${ipfw} add 20 divert ip from any to 81.18.*.*
${ipfw} add 30 allow log ip from any to any

Убеждаемся, что всё работает :)

ZloiJoker 01-12-2003 14:53 86854

Может кто еще рульную статью по этому делу подскажет ? (а то я в книжки главу прочитал по этой теме, но что то как то маловато.. )

Negativ 02-12-2003 11:38 86855

EmeJIbka
Спасибо за советы. Я разобрался во всем сам.
В файле rc.firewall
были правила
${ipfw} add log all from any to ...номера портов... и т.д.
убрал все заработало
ZloiJoker
если ты имеешь в виду настройку на FreeBSD natd+ipfw то вот те ссылы
http://www.nt.com.ua/info/ipfw/ar01s02.shtml
http://www.nt.com.ua/info/ipfw/ar01s05.shtml
http://www.opennet.ru - Здесь много чего интересного

Negativ 03-12-2003 15:30 86856

EmeJIbka
И все-таки. Мой главный вопрос так и остался неразрешимым.
Repeat:
у меня есть:
интерфейс rl0 - интеренет
интерфейс gif0 - VPN по радиоканалу (соединяет две локалки 1 и 2)
интерфейс xl0 - локалка


Я хочу с помощью NAT'а сделать так чтобы юзеры 1 локалки могли лазить в локалку 2. Но у меня уже есть НАТ на инет (rl0).
Как мне это сделать?

Мне подсказали что нужно типа два ната запустить с разными pid'ами. И соответственно повесить их в rc.conf на разные интерфесы. Если это возможно то как это реализовать? Или предложите свой вариант.


[s]Исправлено: Negativ, 15:39 3-12-2003[/s]

archy 03-12-2003 18:23 86857

может это спасет тебя?
http://www.artmagic.ru/labs/short/ipfw-iptables.shtml

Negativ 04-12-2003 09:08 86858

archy
Спасибо! Это то что надо! =)

ZloiJoker 04-12-2003 21:18 86859

Код:

ipfw add 10 divert 8868 10.0.1.0/24 to any out xmit ed0
ipfw add 20 divert 8868 from any to 195.1.1.1

ipfw add 30 divert 8869 10.0.2.0/24 to any out xmit ed1
ipfw add 40 divert 8869 from any to 195.1.1.2

Что значит правило:
xmit  ?

И сколько же в этом примере карточек у сервера ?
195.1.1.1 - смотрит в одну сеть
195.1.1.2 - смотрит в другую сеть
3 _ я которая смотрит в инет

Правильно ? :()

Negativ 05-12-2003 11:27 86860

ZloiJoker
1. Про xmit

ipfw add count tcp from any ftp\\-data-ftp to any

Фрагментированные пакеты, которые имеют ненулевое смещение (такие как, например, первый фрагмент), никогда не будут соответствовать правилу, в котором указана одна или более установок порта. См. опции фрагментов для более подробной информации о соответствии фрагментированных пакетов.
interface-spec
Допускаются следующие комбинации спецификации интерфейсов:
in - только для входящих пакетов;
out - только для исходящих пакетов;
via ifx - пакет должен быть пропущен через интерфейс ifx;
via if* - пакет должен быть пропущен через интерфейс ifX, где X - любой номер устройства;
via ipno - пакет должен быть пропущен через интерфейс, IP-address которого ipno.
Указание ключевого слова via всегда заставляет проверять интерфейс. Если указаны ключевые слова recv или xmit, то это тоже заставляет всегда проверить интерфейс. Определяя передающий и принимающий интерфейсы, есть возможность выбрать пакеты, основанные как на том, так и на другом интерфейсе, например:
ipfw add 100 deny ip from any to any out recv ed0 xmit ed1

Интерфейс recv может быть проверен или на входящие, или на исходящие пакеты, в то время как интерфейс xmit может быть проверен только на исходящие пакеты. Так out требуется (и в недопустимых случаях) всякий раз, когда используется xmit. Сочетание via вместе с xmit или с recv недопустимо.

взято с http://www.opennet.ru

2. Карточек может быть и две, но на 1 ip может быть несколько интерфейсов, которые смотрят в разные сети. У меня, например, на адресе 192.168.10.11 работает два интерфеса xl0 и gif0. первый смотрит в локалку второй смотрит в VPN (через туннель).

Вот те пример моего rc.conf чтоб понятней было

network_interfaces="auto"
ifconfig_xl0="inet 192.168.10.11  netmask 255.255.255.0"
ifconfig_rl0="inet 172.16.1.5  netmask 255.255.255.*"
ifconfig_gif0="192.168.11.11 netmask 255.255.255.0 192.168.10.11 netmask 255.255.255.0"
gif_interfaces="gif0"
gifconfig_gif0="172.16.1.5 172.16.1.6"


*

[s]Исправлено: Negativ, 11:30 5-12-2003[/s]


[s]Исправлено: Negativ, 11:38 5-12-2003[/s]


Время: 16:21.

Время: 16:21.
© OSzone.net 2001-