The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Раздел полезных советов: Трансляция адресов во FreeBSD средствами ng_nat"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для контроля за появлением новых сообщений - перед выходом жмите "Пометить прочитанным".
. "Раздел полезных советов: Трансляция адресов во FreeBSD средс..." +/
Сообщение от nuclight (??), 12-Июн-09, 18:12 
>>>На такое ругается:
>>>msg nat1: redirectport { local_addr=x.x.x.x local_port=8865 alias_port=8865 proto=6 description="aaaa"}
>>
>>Вообще, надо показывать, как ругается. Подозреваю, что пробел перед закрывающей фигурной забыли.

Вообще, показывать надо не только как ругается, но и полную команду - что (и где) набрали.

>Спасибо! Без пробела (как указано выше) заработало.
>С пробелом перед закрывающей скобкой ругается:
>ngctl: send msg: Invalid argument
>
>Однако, в следующем виде прекрасно добавляет (пробел после протокола):
>msg nat1: redirectport { local_addr=x.x.x.x local_port=8865 alias_port=8865 proto=6 }
>
>А нужно без пробелов в начале и в конце в любом случае?

На самом деле, сам ngctl ест и с пробелами, и без них, вот я его сейчас интерактивно запустил и проверил. По коду у меня EINVAL возвращается, только если длина структуры меньше положенной, то есть парсинг был кривой. Поскольку вы не показываете, как именно передаете команды, мне остается только подозревать, что вы напарываетесь на экранирование символов кавычек и фигурных скобок шеллом (а может быть и присвоение переменных).

>>Это памяти ядра ему не хватает. Да, есть такая проблема, но, к
>>сожалению, полного решения для неё нет. Во-первых, можно увеличить в /boot/loader.conf
>>значение vm.kmem_size, во-вторых, прошлым летом в 7-ку был патч, который более
>
>vm.kmem_size: 335544320  (такой же vm.kmem_size_max)
>А оперативки всего 1 Гб стоит.
>Не верится что таблица NAT пожирает 300 мегов.

Ну разумеется, это не она. Это размер памяти ядра. В памяти ядра (всегда в оператикве) еще много чего лежит, смотрится командами vmstat -z и vmstat -m (в выводе последней есть собственно libalias).

>Её никак нельзя посмотреть?  Про ipfw nat вроде говорилось что есть
>команда ipfw nat N show, которая показывает содержимое таблицы.
>http://wiki.freebsd.org/Libalias
>"ipfw nat N show - show nat instance N sessions"
>
>Проверил, ничего не показывает.

К сожалению, нет, в libalias такой вывод не предусмотрен. Та строчка должна выводить статистику на текущий момент, не таблицу.

>[оверквотинг удален]
>>>DMZ).
>>
>>Воспользуйтесь rc-скриптом с http://antigreen.org/vadim/freebsd/ng_nat/ - там рядом описано, как пользоваться, пишется в
>>rc.conf в стиле natd (а ipfw nat тоже старается быть похожим
>>на natd). Он диапазоны умеет, перечислит все порты за вас. На
>>самом деле, технически ipfw nat и natd тоже перечисляют внутри, но
>>скрывают это от пользователя, здесь же в показе всех редиректов это
>>будет видно. Но думаю, что это не проблема :)
>
>Спасибо! Раз реализация одинаковая, то и не важно, как оно описывается.

Ну просто скрипт умеет показывать их по list_redirects, и вы там тогда увидите каждый порт отдельно, если вдруг захотите посмотреть.

>Но в ipfw nat есть полезная опция смены привязанного IP адреса при
>смене его на указанном интерфейсе:
>if nic  Use ip addres of NIC for aliasing, dynamically changing
>it if NIC's ip address change.

Да, в ng_nat это не предусмотрено. Предполагается, что за этим следит тот, кто конфигурирует ноду ng_nat (например, mpd).

>Также в ng_nat не видно опции USE_SOCKETS, или она недоступна в kernel
>режиме?

Недоступна.

>А ещё разработчик ipfw nat указывает вот что:
>
>To load/unload a libalias module (kernel):
>kldload alias_ftp # active ftp work ok now
>kldunload alias_ftp
>
>При этом видимо и опция libalias PKT_ALIAS_PUNCH_FW активизируется?  И по идее
>должно влиять и на ng_nat?

Это влияет на весь ядерный libalias, т.е. и ng_nat тоже, но в ядерном режиме добавлять правила в файрвол он всё же не обучен, как и сокеты создавать. Так что если у вас по умолчанию закрытый файрвол, и надо проковыривать дырки - только natd, увы.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Раздел полезных советов: Трансляция адресов во FreeBSD средствами ng_nat, auto_tips, 12-Мрт-09, 08:33  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру