URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 40608
[ Назад ]

Исходное сообщение
"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"

Отправлено auto_tips , 12-Мрт-08 17:48 
В конфигурацию ядра добавляем:

   options         IPFIREWALL              #firewall
   options         IPFIREWALL_VERBOSE      #enable logging to syslogd(8)
   options         IPFIREWALL_DEFAULT_TO_ACCEPT    #allow everything by default
   options         IPDIVERT
   options         IPFIREWALL_FORWARD
   options         DUMMYNET
   options         IPFIREWALL_NAT          #ipfw kernel nat support
   options         LIBALIAS

в /etc/make.conf:

   CFLAGS+= -DIPFIREWALL_NAT

Далее пересобираем систему:

   cd /usr/src/ ; make builworld && make kernel KERNCONF=YourKern &&  make installworld
   reboot

В конфигурационном файле ipfw:

   NatIP="111.111.111.111"
   ipfw nat 123 config ip ${NatIP} log
   ipfw add 10 nat 123 ip from 192.168.0.0/16 to any
   ipfw add 20 nat 123 ip from any to ${NatIP}

Наслаждаемся достоинствами kernel nat


URL:
Обсуждается: https://www.opennet.ru/tips/info/1618.shtml


Содержание

Сообщения в этом обсуждении
"ipfw nat во FreeBSD 7 amd64"
Отправлено phoenix , 12-Мрт-08 17:48 
А мир зачем пересобирать?

"ipfw nat во FreeBSD 7 amd64"
Отправлено bANAn , 12-Мрт-08 17:52 
вот это
options         IPDIVERT

и вот это
CFLAGS+= -DIPFIREWALL_NAT

лишнее


"ipfw nat во FreeBSD 7 amd64"
Отправлено void , 12-Мрт-08 18:16 
Пересобирал только ядро, правда с
CFLAGS+= -DIPFIREWALL_NAT
просто
make buildkernel KERNCONF=KERN && make installkernel KERNCONF=KERN

3 дня полет нормальный...


"ipfw nat во FreeBSD 7 amd64"
Отправлено h , 22-Мрт-08 18:26 
> make buildkernel KERNCONF=KERN && make installkernel KERNCONF=KERN

Кстати, это то же самое, что и make kernel KERNCONF=KERN


"ipfw nat во FreeBSD 7 amd64"
Отправлено xaka , 12-Мрт-08 19:19 
А как оно по скорости? Быстрее, чем раньше, связка ipfw + natd?!

"ipfw nat во FreeBSD 7 amd64"
Отправлено nightowl , 13-Мрт-08 15:40 
Так понятно, что быстрее болжно то быть, потому как Кернел левел :)

"ipfw nat во FreeBSD 7 amd64"
Отправлено GhostMaster , 12-Мрт-08 20:28 
Быстрее и гораздо гибче, работает с тегами, нетграфом. Пользуюсь уже больше года - стабильно как скала :))

"ipfw nat во FreeBSD 7 amd64"
Отправлено dm , 12-Мрт-08 20:53 
ага и с чего такой акцент на amd64 ? непонятно

"ipfw nat во FreeBSD 7 amd64"
Отправлено void , 12-Мрт-08 21:57 
а никто мира не пересобирал? ато я чегото таких рекомендаций не видел... я не пересобирал.

"ipfw nat во FreeBSD 7 amd64"
Отправлено miver , 13-Мрт-08 00:15 
а бинат умеет?

"ipfw nat во FreeBSD 7 amd64"
Отправлено Pikador , 13-Мрт-08 11:57 
Без пересборки мира не заработало, но, видимо достаточно было пересобрать ipfw

"ipfw nat во FreeBSD 7 amd64"
Отправлено xaka , 13-Мрт-08 12:23 
Я мир не трогал, внёс изменения в конфиг ядра, сделал make kernel KERNCONF=... и всё заработало как часики.

"ipfw nat во FreeBSD 7 amd64"
Отправлено Pikador , 13-Мрт-08 12:29 
На счет функционала kernel nat
http://www.freebsd.org/cgi/man.cgi?query=ipfw&apropos=0&sekt...

Внизу примеры


"ipfw nat во FreeBSD 7 amd64"
Отправлено grayich , 15-Мрт-08 12:50 
что то не видно примеров

"ipfw nat во FreeBSD 7 amd64"
Отправлено Dyr , 13-Мрт-08 13:35 
Бинат (пока?) не умеет.
Жрёт немного больше, чем ng_nat.

"ipfw nat во FreeBSD 7 amd64"
Отправлено nuclight , 22-Мрт-08 20:53 
>Бинат (пока?) не умеет.
>Жрёт немного больше, чем ng_nat.

Он же на том же libalias работает. Чем замеряли?


"ipfw nat во FreeBSD 7 amd64"
Отправлено Dyr , 13-Мрт-08 13:37 
Из всего конфига обязательно лишь
options         IPFIREWALL
options         IPFIREWALL_NAT
options         LIBALIAS

В make.conf указывать флаг совершенно не обязательно (и откуда только это пошло...С бета-версий, что ли?)


"ipfw nat во FreeBSD 7 amd64"
Отправлено hate , 20-Мрт-08 10:00 
Не забудьте пропатчить, а то в корку валиться если например порты редиректить.


------------------------------------
>[оверквотинг удален]
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Mar 14 01:20:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Gael Roualland
>Release:        7.0-STABLE
>Organization:
>Environment:

FreeBSD jerry.priv 7.0-STABLE FreeBSD 7.0-STABLE #0: Thu Mar 13 21:12:57 CET 2008     gael@jerry:/home/cvsup/obj/home/cvsup/src/sys/JERRY  i386

>Description:

"ipfw show nat config" or "ipfw nat xx config" dumps core in show_nat().
(ipfw2.c rev 1.108.2.3)
>How-To-Repeat:

Add a nat configuration to ipfw rules.
>Fix:

The variable "e" in show_nat is no longer initialized while printing nat configuration since last change;
Trivial diff atatched, thanks.

Patch attached with submission follows:

--- ipfw2.c.orig        2008-03-04 13:07:34.000000000 +0100
+++ ipfw2.c     2008-03-14 02:07:53.000000000 +0100
@@ -5967,6 +5967,7 @@
                        if (frule <= n->id && lrule >= n->id)
                                print_nat_config(&data[i]);
                        i += sizeof(struct cfg_nat);
+                       e = (struct cfg_redir *)&data[i];
                        for (redir_cnt = 0; redir_cnt < n->redir_cnt; redir_cnt++) {
                                i += sizeof(struct cfg_redir) + e->spool_cnt *
                                    sizeof(struct cfg_spool);


>Release-Note:
>Audit-Trail:
>Unformatted:

_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscribe@freebsd.org"


"ipfw nat во FreeBSD 7 amd64"
Отправлено SiD , 13-Мрт-08 17:24 
а как под большими нагрузками, ip на 5000-7000 ?

"ipfw nat во FreeBSD 7 amd64"
Отправлено Аноним , 14-Мрт-08 02:50 
если ты пров - зачем тебе натить 7к ипов?
Чтоб поиметь себе же гемор потом?

"ipfw nat во FreeBSD 7 amd64"
Отправлено Ilya Evseev , 14-Мрт-08 08:57 
>а как под большими нагрузками, ip на 5000-7000 ?

Хуже, чем pf NAT.
Недостаток у libalias общий с ngnat:
медленный алгоритм выделения памяти под буферы.
На провайдерском шлюзе нормально себя ведёт максимум до ~30мбит/с.
pf NAT и iptables на таком же железе вытягивают до ~80мбит/c.

Кроме того, libalias и ngnat не умеют делать BiNAT 1:1,
который нужен для владельцев выделенного IP.


"ipfw nat во FreeBSD 7 amd64"
Отправлено Dyr , 15-Мрт-08 19:33 
Ну это ты ОЧЕНЬ загнул. У нас он тянул до 200 мбит/сек.
pf (bi-)NAT вытягивал до 300-400 мбит/сек (сеть-в-сеть), причём был ещё запас.

"ipfw nat во FreeBSD 7 amd64"
Отправлено freeseacher , 20-Мрт-08 07:07 
господа методику понимания что есть еще запас расскажите пожалуйста.

"ipfw nat во FreeBSD 7 amd64"
Отправлено Dyr , 21-Мрт-08 15:46 
Запускаешь top -SH и смотришь, сколько ест процесс "swi1:net". Аппроксимируешь корреляцию между количеством пропускаемого трафика и его загрузкой и получаешь запас.
Понятно обьяснил? ;-)

"ipfw nat во FreeBSD 7 amd64"
Отправлено nuclight , 22-Мрт-08 20:52 
>>а как под большими нагрузками, ip на 5000-7000 ?
>
>Хуже, чем pf NAT.
>Недостаток у libalias общий с ngnat:
>медленный алгоритм выделения памяти под буферы.

Откуда инфа?

>На провайдерском шлюзе нормально себя ведёт максимум до ~30мбит/с.
>pf NAT и iptables на таком же железе вытягивают до ~80мбит/c.

Маловато, у народа гораздо больше тянет.

>Кроме того, libalias и ngnat не умеют делать BiNAT 1:1,
>который нужен для владельцев выделенного IP.

А redirect_address чем не устраивает?


"ipfw nat во FreeBSD 7 amd64"
Отправлено misteras , 14-Мрт-08 12:04 
Только вот с фильтрацией полный бордак
теперь чтобы перекрыть к примеру smtp трафик я должен написать запрещающее правило перед натингом

Раньше при использовании демона (natd только транслировал), а решение о разрешении ли запрете пакета формировались правилами после трансляции
И так было удобно поскольку можно было добавить разрешающие правила, а остальное все запретить


"ipfw nat во FreeBSD 7 amd64"
Отправлено azav , 20-Мрт-08 09:54 
net.inet.ip.fw.one_pass: 0
И формируй правила после трансляции. Сам еще не проверил, но написано что так.

"ipfw nat во FreeBSD 7 amd64"
Отправлено sach , 14-Мрт-10 22:08 
>net.inet.ip.fw.one_pass: 0
>И формируй правила после трансляции. Сам еще не проверил, но написано что
>так.

Нет не помогает.

Как все-таки использовать политику запрета по-умолчанию.
Я если перед пишу правила они просто не пашут..
Чтож теперь все порты ручками закрывать ?


"ipfw nat во FreeBSD 7 amd64"
Отправлено креведко , 16-Мрт-08 18:53 
NatIP="111.111.111.111" - это ip интерфейса, который смотрит в инет? или нет?

"ipfw nat во FreeBSD 7 amd64"
Отправлено lamo , 16-Мрт-08 19:02 
если в инет смотрит ng ipfw nat сможет натить на него?

"ipfw nat во FreeBSD 7 amd64"
Отправлено void , 17-Мрт-08 12:58 
ему паходу всеравно что натить

"ipfw nat во FreeBSD 7"
Отправлено alex_471 , 20-Мрт-08 16:52 
народ, а  passive ftp работает ?

поэтому предпочитаю ipnat


"ipfw nat во FreeBSD 7"
Отправлено Pahanivo , 23-Мрт-08 09:24 
А чож пассивный то не будет работать - он всегда будет робить ибо оба соединения FTP идут от клиента. Трабла с активным.

"ipfw nat во FreeBSD 7"
Отправлено Pahanivo , 23-Мрт-08 09:23 
А как у него с обработкой хитрых конектов изнутри типа активный FTP?

"ipfw nat во FreeBSD 7"
Отправлено nuclight , 23-Мрт-08 11:54 
>А как у него с обработкой хитрых конектов изнутри типа активный FTP?

Так же, как и у natd - то есть, переписывает адреса и все прекрасно ходит.


"ipfw nat во FreeBSD 7"
Отправлено Аноним , 24-Мрт-08 10:54 
странно пр добавлении опции LIBALIAS ядро не собирается - может у нее есть зависимость от какой либо другой опции?

"ipfw nat во FreeBSD 7"
Отправлено alexcom , 24-Мрт-08 14:52 
с IPv6 :)

"ipfw nat во FreeBSD 7"
Отправлено folax , 29-Мрт-08 13:58 
Подскажите пожалуста.А какой порядок написания правил для IPFW после этой процедуры.Пример если можно.

"ipfw nat во FreeBSD 7"
Отправлено Vitaly_loki , 11-Апр-08 13:07 
А зачем еще один kernel-nat во FreeBSD, если там с FreeBSD 4.Х есть IPNAT?

"ipfw nat во FreeBSD 7"
Отправлено nuclight , 11-Апр-08 13:39 
>А зачем еще один kernel-nat во FreeBSD, если там с FreeBSD 4.Х
>есть IPNAT?

Затем, например, что ipnat не умеет анализ протоколов на L7 (FTP, IRC DCC, PPTP/GRE и т.д.). И еще затем, что ipfilter/ipnat со временем вынесут из FreeBSD.


"ipfw nat во FreeBSD 7"
Отправлено Roman , 24-Апр-08 06:42 
вопрос такой назрел
пишем мы ipfw nat 123 config ip 111.111.111.111 log
а где этот log?
и куда он пишется?
и при каких условиях?
в /var/log/security все чисто, т.е. пусто
сам нат работает и все исправно ходят куда надо, хоть и не сразу понял как и что...


"ipfw nat во FreeBSD 7"
Отправлено strmaks , 24-Апр-08 15:55 
У меня заработало только когда написал
ipfw add 10 nat 123 log ip from траляля далее т.е. только после добавления после nat 123 - log...

а лог по умолчанию в /var/log/security


"ipfw nat во FreeBSD 7"
Отправлено ALF , 04-Июн-08 21:55 
А у меня пинг какойто дикий с kernel nat, а запускаю тот же natd все нормуль!

"ipfw nat во FreeBSD 7"
Отправлено ALF , 04-Июн-08 21:56 
А у меня пинг какойто дикий с kernel nat, а запускаю тот же natd все нормуль!

"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"
Отправлено XoXoL , 07-Июн-08 08:27 
А не подскажет кто, как организовать, если я хочу во внутренней сетке web-сервак, который будет доступен внешнему миру?

Пытался так:
Политика по умолчанию deny all
пока net.inet.ip.fw.one_pass: 1
${fw} nat 100 config ip ${ExtIPwebserv}
${fw} add nat 100 tcp from any ${outports} to ${ExtIPwebserv} 80 in via ${WAN0}
${fw} add allow tcp from any ${outports} to 217.117.93.230 80 in via ${WAN0}
${fw} add nat 100 tcp from ${IntIPwebserv} 80 to any ${outports}
${fw} add allow tcp from any ${outports} to ${IntIPwebserv}80

Судя по ipfw всё останавливается на первом нате. Т.е. снаружи пакеты приходят, заворачиваются в нат и всё. tcpdump показывает приходящие на внешний интерфейс соединения, которые обрабатываются, а потом оно почему-то (если убрать in via ${WAN0}) посылается само на себя.

Более грамотный вариант, который я видел на http://forum.lissyara.su/viewtopic.php?f=8&t=7930&p=70395 такого рода (у меня не заработало):

${fw} nat 100 config ip ${ExtIPwebserv} redirect_port tcp ${IntIPwebserv}:80 80
ipfw add nat 100 tcp from any ${outports} to ${ExtIPwebserv} 80 via ${WAN0}
ipfw add allow tcp from any ${outports} to ${IntIPwebserv} 80 via ${LAN}
Всё замечательно, один косяк: при выходе пакеты пытаются пролезть без ната, т.е. ответы пользователям лезут с обратным внутренним IP, а не внешним.

Может кто-нибудь пояснить это синтаксис ${fw} nat 100 config ip ${ExtIPwebserv} redirect_port tcp ${IntIPwebserv}:80 80
Мозгов не хватает осилить.
И кстати, кто знает как сбрасывать правила ната? после рестарта скрипта с ipfw -f flush почему-то ipfw nat config показывает не только новые конфигурации, но старые
Может, кто приведёт рабочий скрипт для web-сервака с kernel ipfw nat?


"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"
Отправлено ZAZmaster , 21-Авг-08 09:27 
Может тут как в PF сначала rdr а потом nat?

"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"
Отправлено nuclight , 21-Авг-08 12:05 
>Может тут как в PF сначала rdr а потом nat?

Нет, здесь так же как в natd, соответсвенно все рекомендации подходят, только divert 100 заменяется на nat 100.


"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"
Отправлено vd , 29-Авг-08 08:32 
про сборку ядра
еще со времен BSD юзаю:
# config my_config_kernel
далее как обычно переходим в каталог ../compile/my_config_kernel и т.д.
---------------
роюсь по инету, глюк с этим новым натом
суть, фрагментированные пакеты не натятся, вернее, как я понял, остаки пакетов пропадают
тоесть, если даем к примеру пинг размером 1500 то он не ходит при условии что пакет проходит через правило ната в ipfw, при тех же условиях маленькие пакеты идут.
Если прописываем правило пропускающее траффик к хосту до правила ната, то ходят и большие пакеты.
--------------
.. ${ifout} - внешний интерфейс, 192.168.2.1 - внешний IP
так пинг большими пакетами ходит в сетку 192.168.2.0/24
${fwcmd} add pass ip from 192.168.2.0/24 to 192.168.2.0/24
${fwcmd} add nat 100 ip from 10.30.0.0/24 to any out via ${ifout}
${fwcmd} add nat 100 ip from any to 192.168.2.1 in via ${ifout}

а так неходит
${fwcmd} add nat 100 ip from 10.30.0.0/24 to any out via ${ifout}
${fwcmd} add nat 100 ip from any to 192.168.2.1 in via ${ifout}
${fwcmd} add pass ip from 192.168.2.0/24 to 192.168.2.0/24
---------------
здесь чисто тестовой пример с сетью 192.168.2.0/24
аналогичная ситуация и с пингом до других хостов находящихся в инете
к примеру вместо 192.168.2.0/24 прописываем правило пропускающее весь траффик до 195.54.2.1
.. может быть что то нужно подкрутить в ядре или в настройках



"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"
Отправлено Ромарь , 30-Сен-08 03:29 
>[оверквотинг удален]
>
>${fwcmd} add nat 100 ip from any to 192.168.2.1 in via ${ifout}
>
>${fwcmd} add pass ip from 192.168.2.0/24 to 192.168.2.0/24
>---------------
>здесь чисто тестовой пример с сетью 192.168.2.0/24
>аналогичная ситуация и с пингом до других хостов находящихся в инете
>к примеру вместо 192.168.2.0/24 прописываем правило пропускающее весь траффик до 195.54.2.1
>.. может быть что то нужно подкрутить в ядре или в настройках
>

аналогичная проблема пакеты больше 1472 через ядерный нат не ходят, проверил на 4 роутерах


"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"
Отправлено chillivilli , 14-Июл-09 19:34 
>[оверквотинг удален]
>>${fwcmd} add pass ip from 192.168.2.0/24 to 192.168.2.0/24
>>---------------
>>здесь чисто тестовой пример с сетью 192.168.2.0/24
>>аналогичная ситуация и с пингом до других хостов находящихся в инете
>>к примеру вместо 192.168.2.0/24 прописываем правило пропускающее весь траффик до 195.54.2.1
>>.. может быть что то нужно подкрутить в ядре или в настройках
>>
>
>аналогичная проблема пакеты больше 1472 через ядерный нат не ходят, проверил на
>4 роутерах

у меня и через natd не ходят,1472 идут - 1473 уже нет


"ipfw nat во FreeBSD 7"
Отправлено Николай , 11-Ноя-08 16:29 
Что делать если я не знаю ${NatIP}? Т.е. если он у меня динамический

"ipfw nat во FreeBSD 7"
Отправлено SiD , 12-Ноя-08 01:23 
>Что делать если я не знаю ${NatIP}? Т.е. если он у меня
>динамический

писать скрипт, который с ifconfig дернет IP и подставит в переменную ...


"ipfw nat во FreeBSD 7"
Отправлено John Smith , 22-Ноя-08 03:39 
http://www.freebsd.org/cgi/man.cgi?query=ipfw&sektion=8#NETW...)

Это случайно не оно?

The nat configuration command is the following:

    nat nat_number config nat-configuration

The following parameters can be configured:

    ip ip_address
        Define an ip address to use for aliasing.

    if nic  Use ip addres of NIC for aliasing, dynamically changing it if
        NIC's ip address change.

...



"ipfw nat во FreeBSD 7"
Отправлено Vovanxx1 , 18-Янв-09 11:33 
Необходим ядерный ipfw nat on freebsd 4.x in kernel mode, есть ли готовые решения, можете что-то посоветовать? Может быть существует какой-то backport libalis and ipfw2 в 4ую ветку?

"ipfw nat во FreeBSD 7"
Отправлено Kris , 12-Фев-09 17:51 
Как считаете
Есть толстая труба в интернет.
Надо сделать так, что бы для пользователей действовали такие ограничения :

1. Входящий из UA-IX (есть скрипт обновляющия таблицу для ipfw) 1024 kbits/s
2. Исходящий в UA-IX - 128 kbits/s
3. Входящий из мира - 256 kbits/s
4. Исходящий в мир - 64 kbits/s

Полоса должна распределяться равномерно между пользователями. Учет трафика не нужет.
Поскольку нагрузка на сервер будет большая - natd я отбросил сразу ...

Потянет ли тазик 600 активных пользователей  при nat во FreeBSD 7 и конфигурации процессора

[root@bcp-gw /etc]# sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
hw.machine: i386
hw.model: Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz
hw.ncpu: 1
hw.machine_arch: i386


"ipfw nat во FreeBSD 7"
Отправлено Илья , 12-Фев-09 19:01 
>[оверквотинг удален]
>
>
>Потянет ли тазик 600 активных пользователей  при nat во FreeBSD 7
>и конфигурации процессора
>
>[root@bcp-gw /etc]# sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
>hw.machine: i386
>hw.model: Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz
>hw.ncpu: 1
>hw.machine_arch: i386

потянет, есть опыт IPFW NAT на P4 - 2000 пользователей живут нормально.


"ipfw nat во FreeBSD 7"
Отправлено Kris , 13-Фев-09 10:30 
>[оверквотинг удален]
>>и конфигурации процессора
>>
>>[root@bcp-gw /etc]# sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
>>hw.machine: i386
>>hw.model: Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz
>>hw.ncpu: 1
>>hw.machine_arch: i386
>
>потянет, есть опыт IPFW NAT на P4 - 2000 пользователей живут нормально.
>

Спасибо за ответ. Уже ядро пересобираю :)


"ipfw nat во FreeBSD 7"
Отправлено маил , 17-Мрт-09 10:47 
а как пробросить только один порт? напиример 80

"ipfw nat во FreeBSD 7"
Отправлено igor , 30-Апр-09 06:15 
# редирект 80 порта на внутренний сервер
ipfw nat 10 config ip ${внешний_ip} redirect_port tcp ${внутренний_ip_вебсервера}:80 80
ipfw add nat 10 tcp from ${внутренний_ip_вебсервера} 80 to any out via ${внешний_интерфейс}

"ipfw nat во FreeBSD 7"
Отправлено Hm , 27-Июл-09 01:56 
># редирект 80 порта на внутренний сервер
>ipfw nat 10 config ip ${внешний_ip} redirect_port tcp ${внутренний_ip_вебсервера}:80 80
>ipfw add nat 10 tcp from ${внутренний_ip_вебсервера} 80 to any out via
>${внешний_интерфейс}

не работает, т.к. с 80 порта нет редиректа на внутренний_ip_вебсервера.


"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"
Отправлено AdVv , 13-Май-09 18:30 
Извиняюсь за некропостинг, с KERNEL NAT не работает NAT для PPTP. Конфигурация:

firewall_enable="YES"
firewall_type="OPEN"

firewall_nat_enable="YES"
firewall_nat_interface="vlan0"
firewall_nat_flags="same_ports redirect_port tcp 192.168.1.30:210 210 redirect_port tcp 192.168.2.1:6112 6112"

Если так:

natd_enable="YES"
natd_flags="-redirect_port tcp 192.168.1.30:210 210 -redirect_port tcp 192.168.2.1:6112 6112 -unregistered_only -use_sockets -same_ports  -punch_fw 19000:100"
natd_interface="vlan0"

то все работает нормально.



"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"
Отправлено Igor , 13-Авг-09 10:43 
Извините если я туплю. Маюсь уже целый месяц. Не работает nat кернельный и все, хоть ты тресни.

Коротко: судя по трафику, пакеты syn пробрасываются натом нормально на внутренний комп, но syn ack уходят от нее с нулевым чексумом, поэтому tcp connection не создается. (это я смотрю на стороне внутреннего сервера w2k3sp2 куда перебрасываются порты)
В тоже самое время, при прохождении через роутер(фря 7,2 stable) нормально эти пакеты принимает и ставит туда нормальный чексум и отправляет syn ack отправителю.

w2k3sp2(куда пробрасываются порты) пытался грузить в safe mode чтобы вырубить всевозможные левые фильтры, результат такой же, т.е. что то я понаписал в настройках ipfw не то.

это читал. http://www.lissyara.su/?id=1967
не помогло
если можете помочь, могу логи и конфиги выслать. Если кто то с таким сталкивался помогите. Я точно знаю, что я где-то загигулинку не поставил, но где не знаю.


"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"
Отправлено terminus , 19-Авг-09 12:07 
>Коротко: судя по трафику, пакеты syn пробрасываются натом нормально на внутренний комп,
>но syn ack уходят от нее с нулевым чексумом, поэтому tcp
>connection не создается. (это я смотрю на стороне внутреннего сервера w2k3sp2
>куда перебрасываются порты)
>В тоже самое время, при прохождении через роутер(фря 7,2 stable) нормально эти
>пакеты принимает и ставит туда нормальный чексум и отправляет syn ack
>отправителю.

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

ifconfig em0 -rxcsum -txcsum


"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"
Отправлено gorec2005 , 25-Янв-10 16:52 
>[оверквотинг удален]
>>connection не создается. (это я смотрю на стороне внутреннего сервера w2k3sp2
>>куда перебрасываются порты)
>>В тоже самое время, при прохождении через роутер(фря 7,2 stable) нормально эти
>>пакеты принимает и ставит туда нормальный чексум и отправляет syn ack
>>отправителю.
>
>попробуйте выключить фукции аппаратного ускорения расчета контрольных сумм на сетевухе где рпботает
>нат.
>
>ifconfig em0 -rxcsum -txcsum

Мне (под esxi) помогло! - спасибо!


"Раздел полезных советов: ipfw nat во FreeBSD 7 amd64"
Отправлено igor , 20-Дек-09 17:49 
Если кому интересно. Я нашел почему не работал NAT.
после того как убрал вот это динамическое правило все заработало
ipfw add allow tcp from any to any via $oif established #$oif внешний интерйфейс

"ipfw nat во FreeBSD 7"
Отправлено panteraon , 24-Авг-09 20:52 
Люди добрые помогите, делал все как по ману...src и порты обновлял все свежее, фря пропатченная...на первые две фазы построения мира и сборки ядра проходят нормально, на стадии инсталляции мира все останавливается...короче как в этом примере происходит все http://liste.gufi.org/pipermail/freesbie/2005-January/000621...

за исключением что там остановка происходит на криптографической библиотечке....

http://unix.derkeiler.com/pdf/Mailing-Lists/FreeBSD/stable/2... если быть точнее происходит примерно это

наткнулся тут еще на это
http://periscope.opennet.ru/openforum/vsluhforumID1/83520.html
может еще что нужно поправить в make.conf? есть идеи?

попробовал поковырять make.conf в соответствии с вышеупомянутым материалом....не помогает...такое ощущение что зря cvsup делал со stabble-supfile вместо standard-supfile...

до этого 7.1 обновлял до 7.2 и качал патчи до 7.2-p2.......сейчас кажется патчи докатываются до p3


"ipfw nat во FreeBSD 7"
Отправлено panteraon , 24-Авг-09 23:32 
вопрос закрыт ;) ошибка была в конфе ядра по ходу...

"ipfw nat во FreeBSD 7"
Отправлено panteraon , 25-Авг-09 12:46 
не, не закрыт ;) тупо ядро не компилится....ужас.....



"ipfw nat во FreeBSD 7"
Отправлено klim , 06-Янв-10 23:09 
В роли шлюза - вирт. машина:
FreeBSD 7.2 +
Памяти 1 гб
2 сетевые по 1 гб\сек в бридже
2 проц. по 2.4 ггц

Скорость передачи данных через нат не превышает 10 магабайт в секунду.

Статистика при передаче:
процессор 30.21% natd (пиковая цифра)
свободно памяти больше половины
snmp показывает что на сетевых интерфейсах скорость не больше 10 мегабайт в секунду

Где узкое место? Как добиться увеличения скорости?


"ipfw nat во FreeBSD 7"
Отправлено SiD , 07-Янв-10 22:20 
>[оверквотинг удален]
>
>Скорость передачи данных через нат не превышает 10 магабайт в секунду.
>
>Статистика при передаче:
>процессор 30.21% natd (пиковая цифра)
>свободно памяти больше половины
>snmp показывает что на сетевых интерфейсах скорость не больше 10 мегабайт в
>секунду
>
>Где узкое место? Как добиться увеличения скорости?

natd тут причем ? тут kernel nat обсуждали ... читайте внимательнее ...
плюс рекомендую включить polling в ядре ...