Биллинговая система Nodeny
22 Ноября 2024, 16:56:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: NAT оличный от pf  (Прочитано 5604 раз)
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« : 27 Апреля 2013, 14:16:32 »

Доброго времени суток.
У кого-нить есть опыт использования другого nat в паре с nodeny50?
Допустим того который в ipfw встроен вместе с шейпом ipfw.
Наблюдаю у себя странные проблемы с pf nat, количество searches зашкаливает за 1500000 (при нормальных 200000 например) и сервер уходит в себя, переставая отвечать по сети.
Возникает спонтанно. Хочу попробовать другой типа ната, вот думаю что по стабильности\производительности будет лучше.
Версии ОС 8.3-STABLE, 7-STABLE, проблема и там и там.
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #1 : 27 Апреля 2013, 14:21:52 »

ifpw nat ?
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #2 : 27 Апреля 2013, 14:52:47 »

ifpw nat ?
А пример использования есть? То есть куда именно надо правила писать.
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #3 : 27 Апреля 2013, 21:30:36 »

а какой траф у тебя и сколько пациентов?
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #4 : 28 Апреля 2013, 12:11:58 »

От количества трафика зависит слабо, может как при 80мбит так и при 800мбит уйти в себя.
Записан
skreep
Пользователь
**

Карма: 2
Offline Offline

Сообщений: 76


Просмотр профиля
« Ответ #5 : 29 Апреля 2013, 14:16:21 »

Пример как работает у меня (правда на N+)

Код:
more /etc/rc.firewall
#!/bin/sh -
f='/sbin/ipfw'

ifOut='vlan13'
#ifOut='re0 ng0 ng1'

ifVia=''
ifRecv=''
tmp_or=''
tmp_in=' in via'
tmp_out=' out via'
ifIVia=''
ifOVia=''
for i in $ifOut
  do
    ifVia="${ifVia}${tmp_or}via $i"
    ifRecv="${ifRecv}${tmp_or}recv $i"
    ifIVia="${ifIVia}${tmp_or}${tmp_in} $i"
    ifOVia="${ifOVia}${tmp_or}${tmp_out} $i"
    tmp_or=' or '
  done

${f} -f flush
${f} table all  flush

######## del all nat
for n_t in `${f} nat show config |awk '{print $3}'`; do
        ${f} nat $n_t delete
#        echo "Delete old nat:" $n_t
    done

######## какие сети надо натить в какой реальный ИП  
${f} table 3 add 10.100.60.0/24 1
${f} table 3 add 10.100.61.0/24 2
${f} table 3 add 10.100.62.0/24 3
${f} table 3 add 10.100.63.0/24 4
${f} table 3 add 10.100.64.0/24 5
${f} table 3 add 10.100.65.0/24 6
${f} table 3 add 10.100.66.0/24 7
${f} table 3 add 10.100.67.0/24 8

####### Реальные ИП в которые нат <- NAT
# IP POOL at table 4 add xxx.xxx.xxx без последней точки
 START_PREFIX="/sbin/ipfw table 4 add 1.2.3"
 STA_RT=0
 NUMBER=103  ## тут начало диапазона реальных -1
 while [ $NUMBER -lt 111 ]; do  ## тут конец диапазона
 NUMBER=$(($NUMBER+1))
 STA_RT=$(($STA_RT+1))
 $START_PREFIX.$NUMBER $STA_RT

 /sbin/ipfw nat $STA_RT config ip 1.2.3.$NUMBER log reset same_ports

 done

${f} add 515 nat tablearg ip from table\(3\) to any { $ifOVia }
${f} add 2005 nat tablearg ip from any to table\(4\) { $ifIVia }

# dns, и прочие сайты что проходят при отключеном нете
${f} table 100 add 8.8.8.8
${f} table 100 add 50.16.196.80
${f} table 100 add 107.21.122.223

# mysql slave server
${f} table 101 add 50.17.182.68


${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any

${f} add 110 allow ip from any to any via lo0
${f} add 120 skipto 1000 ip from me to any
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 160 skipto 2000 ip from any to me

${f} add 200 skipto 500 ip from any to any { $ifVia }

${f} add 300 skipto 4500 ip from any to any in

${f} add 400 skipto 450 ip from any to any { $ifRecv }
${f} add 420 divert 1 ip from any to any
${f} add 450 divert 2 ip from any to any
${f} add 490 allow ip from any to any

${f} add 500 skipto 32500 ip from any to any in
${f} add 510 divert 1 ip from any to any
${f} add 540 allow ip from any to any


${f} add 1000 allow udp from any 53,7723 to any
${f} add 1010 allow tcp from any to any setup keep-state
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

${f} add 2000 check-state
${f} add 2010 allow icmp from any to any
${f} add 2020 allow tcp from any to any 22,80,443,5006
${f} add 2030 allow tcp from "table(101)" to any 3306
${f} add 2045 call 500 ip from any to any { $ifIVia }
${f} add 2050 deny ip from any to any { $ifVia }
${f} add 2060 allow udp from any to any 53,7723

${f} add 2100 deny ip from any to any

${f} add 4500 allow ip from any to "table(100)"
${f} add 32490 deny ip from any to any

${f} add 32500 allow ip from "table(100)" to any


net.inet.ip.fw.one_pass=0

ну и плюс правленый скрипт который пишет в окна фаервола

месяц полет нормальный порядка NNNN пациентов в час пик
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!