Перейти до

Пора менять железку?


Рекомендованные сообщения

sysctl net.inet.ip.fw.verbose_limit=100000

sysctl net.inet.ip.fw.verbose=1

 

и смотрим /var/log/security на каком правиле блочится

 

100% рабочий конфиг я давал ранее, если взято с моего примера, подозреваю, что белые IP просто не добавлены в таблицу 1

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 107
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Поллинг убрать, ибо он есть жалкой програмной реализацией того, что em и igb умеют аппаратно.

+1   А также забыть как страшный про pfnat и пачки по два пайпа на юзера.

Мне кажется, Вам советуют люди, которые уже прошли Ваш путь и знают, о чём говорят.     У меня на 1-м брасе 2000 туннелей, при 10 тарифных планах всего около 40 правил ipfw с NAT'ом и пайпами вклю

Posted Images

Мдя, короче лажа какая-то у меня получилась, напутал что-то видимо.

Щас оказалось что и СТГ подрубиться не может и часть сервисов не работает.

На строки

${fwcmd} add 500 nat 1 ip from any to $NatIP in recv $int0
${fwcmd} add 501 nat 1 ip from 10.0.0.0/8 to any out xmit $int0

скрипт вообще ругается, говорит синтаксис неверный или вроде того. Уже некогда было разбираться, поскольку сервер рабочий, а уже утро и меня тут начали доставать звонками - пришлось вернуть natd. Бл#...

Ночью попробую ещё раз. Если доживу. ^_^

Спасибо за поддержку.

Ссылка на сообщение
Поделиться на других сайтах

Проблема в его отсутствии. Я б сделал давно уже наверное, если б была такая возможность.

И это последний раз когда я так делаю, больше никто на такое не уговорит. Кошмар.

Ссылка на сообщение
Поделиться на других сайтах

Да я её уже поставил давно (Sun VirtualBox - отличная штука), но поскольку у меня Windows 7 основной системой, я боюсь как бы она мне не мешала в тестах.

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

Если запущу и слепок с её винта сделаю и куда-нить его пульну временно, думаю может на ней пару дней можно будет обкатать. Сетевых карт у меня теперь полно. ^_^

Напишу потом как оно.

Ссылка на сообщение
Поделиться на других сайтах

В общем поднял на второй машине FreeBSD + NAT - минимум функций и смоделировал всё по образцу отсюда.

В итоге на тестовой машине всё завелось сразу.

Делаю то же самое на сервере - затык.

 

Правда у тестовой нет алиасов на ИФ. Внешний у неё 10.0.1.6 - смотрит в локалку и получает оттуда Инет, а внутренний 172.16.0.1 - смотрит интерфейсом на ноут.

 

Сервер сети же - соединён с софтовым роутером на FreeBSD и находится одним внутренним ИФ в сети 10.0.0.0/24 (адрес внутреннего иф 10.0.0.10), а вторым иф он смотрит на провайдера (на этом же иф прописаны алиасы).

 

На сервере делаю так:

 

nat_ip="aa.bb.cc.dd"
int_if="igb0"
fwcmd="/sbin/ipfw -q"

#Загоняем подсети в таблицу
${fwcmd} table 2 10.0.0.0/24
${fwcmd} table 2 10.0.1.0/24
${fwcmd} table 2 10.0.2.0/24
${fwcmd} table 2 10.0.3.0/24
${fwcmd} table 2 10.0.4.0/24
${fwcmd} table 2 10.0.5.0/24
${fwcmd} table 2 10.0.6.0/24

${fwcmd} nat 1 config ip ${nat_ip}
${fwcmd} add 10 nat 1 ip from any to ${nat_ip} in recv ${int_if}
${fwcmd} add 20 nat 1 ip from table\(2\) to any out xmit ${int_if}

${fwcmd} add 100 allow ip from any to any

divert на natd при этом убираю, хотя сам демон в памяти висит. Думаю мешать не должен, перенаправления-то в правилах нет.

Но эта собака всё равно не колбасит.

С СТГ тоже траблы при этом - не коннектится авторизатор, но я думаю надо будет просто исключить 10.0.0.10 из NAT или порты.

 

Я уже все правила повыкидывал, оставил только эти - NAT и allow all from any to any.

 

Версия ОС и сборка ядра на обеих машинах одинаковая, кроме раздела оптимизации работы ядра, но там влияющих опций вроде нет.

В rc.conf на обеих машинах прописаны идентичные строки.

 

На тестовой машине это пашет, на сервере - нет. :)

 

NAT вкомпилен в ядро. "Не фунциклируит"?

Ссылка на сообщение
Поделиться на других сайтах

Убрать подсеть интернет-интерфейса с таблицы для NAT. Вообще, желательно натить с белго адреса (повесить его алиасом на локалхост и натить на него)

Последнее правило у Вас всё разрешает, нехорошо, с точки зрения безопасности. Для начала хотя-бы зафильтруйте в первых правилах порты сервисов машины для всех, корме себя.

Ссылка на сообщение
Поделиться на других сайтах
Убрать подсеть интернет-интерфейса с таблицы для NAT. Вообще, желательно натить с белго адреса (повесить его алиасом на локалхост и натить на него)

Эм... так?

 

#Белые IP
${fwcmd} table 3 8.8.8.8
${fwcmd} table 3 4.4.4.4
...
${fwcmd} add 500 nat 1 ip from any to $NatIP in recv $int0
${fwcmd} add 501 nat 1 ip from 10.0.0.0/8 to not table\(3\) out xmit $int0

 

Почему только вот на тестовой приведеный пример работает без проблем?

 

Так я и натю с белого IP, только он алиасом на внешнем ИФ висит, как и несколько других.

Просто под этим одним как-бы сеть вся сидит, остальные понятно - для избранных.

 

И как это - на внутреннем иф? Роутить запросы вовнутрь? На внешнем разве не удобнее?

Я почему-то всегда считал, что всё белое должно быть снаружи. :)

 

 

Последнее правило у Вас всё разрешает, нехорошо, с точки зрения безопасности. Для начала хотя-бы зафильтруйте в первых правилах порты сервисов машины для всех, корме себя.

Я просто сделал второй скрипт, который показал выше. И запускаю его для теста. Затем когда вижу результат - сразу запускаю родной скрипт сервера, который возвращает все правила назад.

Так что в этом смысле всё нормально. :)

Ссылка на сообщение
Поделиться на других сайтах
Убрать подсеть интернет-интерфейса с таблицы для NAT. Вообще, желательно натить с белго адреса (повесить его алиасом на локалхост и натить на него)

Эм... так?

 

#Белые IP
${fwcmd} table 3 add 8.8.8.8
${fwcmd} table 3 add 4.4.4.4
...
${fwcmd} add 500 nat 1 ip from any to $NatIP in recv $int0
${fwcmd} add 501 nat 1 ip from 10.0.0.0/8 to not table\(3\) out xmit $int0

Так не работает.

 

 

Почему только вот на тестовой приведеный в прошлом моём сообщении пример - работает без проблем?

 

Так я и натю с белого IP, только он основным на внешнем ИФ висит (через rc.conf прописан), а несколько других - алиасами.

Просто под этим одним как-бы сеть вся сидит, остальные понятно - для избранных.

 

И как это - localhost, на внутреннем иф, lo0? Роутить запросы вовнутрь? На внешнем разве не удобнее?

Я почему-то всегда считал, что всё белое должно быть снаружи. :)

 

 

Последнее правило у Вас всё разрешает, нехорошо, с точки зрения безопасности. Для начала хотя-бы зафильтруйте в первых правилах порты сервисов машины для всех, корме себя.

Я просто сделал второй скрипт, который показал выше. И запускаю его для теста. Затем когда вижу результат - сразу запускаю родной скрипт сервера, который возвращает все правила назад. Это 3-5сек.

Так что в этом смысле всё нормально. :)

 

Ага, заработало... сделал так:

#Локалка
${fwcmd} table 2 add 10.0.1.0/24
...
#Белые IP
${fwcmd} table 3 add 8.8.8.8
${fwcmd} table 3 add 4.4.4.4
...
${fwcmd} add 500 nat 1 ip from not table\(3\) to $NatIP via ${ext_if}
${fwcmd} add 501 nat 1 ip from table\(2\) to any via ${ext_if}

 

Кстати, способ с использованием именно внешyего ИФ для правил 500 и 501 почему-то показан почти во всех примерах, которые я встречал.

Пойду ковырять теперь реал IP.

Спасибо большущее за помощь. :)

Отпишусь потом как всё прошло.

 

Так, с пробросом белых ip средствами ipfw nat - тоже прошло успешно. Очень помогло вот это.

Всё заколбасило.

Идём дальше. На очереди - засунуть все правила юзеров в таблицы.

Далее отпишусь.

Ссылка на сообщение
Поделиться на других сайтах

Настроил вроде. Поскольку не спал толком всё это время - мог что-то напутать, поэтому пока обкатываю. Пару ошибок уже устранил. Подозреваю, что не все сервисы доступны для реал-IP, не поправил ещё полностью.

Итак, внизу смотрим результат перехода на ipfw nat со связки ipfw + pf и небольшой модификации loader.conf, которую посоветовали на пару страниц выше. Правда на связке ipfw+pf она ничего не дала, но я оставил на всякий.

Разумеется, все юзеры загнаны в таблицы.

Interrupt по прежнему не самый маленький, но я и этим доволен.

Потери пакетов прекратились, пинги на шлюз стабильные, 1-2мс. Теперь даже при загрузке обоих ядер на 40-45%.

Трафик 30-40Мбит. В совокупности доходит до 70-90Мбит и 5000-7000pps, но видимо сервер не сильно расстраивается, раз я играя в онлайн-игрушку этого не чувствую (классная тестилка работы сервера кстати). :)

Конечно, это не те такие уж большие объёмы, но прогресс налицо.

Пропали проблемы с подключениями по VPN. Я почти счастлив. :)

Просто огромное спасибо тем, кто помог! :)

post-3670-082750000 1288888808_thumb.png

post-3670-037637300 1288888815_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах

Помониторил. Нагрузка 5000-6500 pps, трафик 40-100Мбит. Пинги на шлюз провайдера в среднем 2-3мс. Потерь нет вообще.

Но меня по-прежнему смущает interrupt.

Поскольку материнка одна из дешёвых для настольного ПК - грешу на неё.

Иначе хез что это.

Все Ваши советы в этой теме применил, больше похоже нечего оптимизировать. :P

 

P.S. Как посмотреть число сессий на юзера, какой утилитой (типа trafshow) и с какими опциями?

post-3670-022227400 1289152965_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах

Покажи

 

top -aSPHs 1

systat -vmstat

 

что-то не до конца дотюнено со второй карточкой, не может быть столько прерываний при траффике 100М.

Ссылка на сообщение
Поделиться на других сайтах

Карточка одна, Intel двухголовая.:P

Кстати, как корректо загнать показатели top в текстовый файл?

Неудобно скринами, а текст не лезет по конвееру ">", ломается форматирование или хрень какая-то получается.

post-3670-092078000 1289154385_thumb.jpg

post-3670-017179200 1289154394_thumb.jpg

Ссылка на сообщение
Поделиться на других сайтах

igb0 работает как надо, igb1 генерирует слишком много прерываний, либо со стороны igb1 бОльший траффик (pps) либо недотюнено, либо глюк драйверов, либо отложеные прерывания какого-то процесса (скорей всего dumminet, ибо 0% у него быть не может под нагрузкой)

 

Пробуй поиграть с:

sysctl net.isr.direct

sysctl net.route.netisr_maxqlen

sysctl net.inet.ip.fastforwarding

sysctl net.inet.ip.dummynet.io_fast

Ссылка на сообщение
Поделиться на других сайтах

Не морочьте себе голову, interrupts это не просто обработка физических прерываний , это весь контекст обработки пакета - фаервол, шейперы, NAT/biNAT. Обработка трафика самим адаптером одна сотая из общей загруки, пилить нужно правила фаервола и остальные ресурсоемкие вещи, а не ни в чем не повинный драйвер :P

Ссылка на сообщение
Поделиться на других сайтах

На igb1 по trafshow сейчас 5000 pps, совокупный трафик 40Мбит.

 

sysctl net.isr.direct=1
sysctl net.route.netisr_maxqlen=256
sysctl net.inet.ip.fastforwarding=0
sysctl net.inet.ip.dummynet.io_fast=0

Сделал:

sysctl net.inet.ip.fastforwarding=1
sysctl net.inet.ip.dummynet.io_fast=1

Без изменений.

Ссылка на сообщение
Поделиться на других сайтах

Нагрузка детская совершенно.

 

sysctl net.isr.direct для перестройки требуется несколько минут

sysctl net.route.netisr_maxqlen=256 мало

 

Отключение шейперов уменьшает нагрузку? Куда спотрит igb1?

 

У меня сейчас на одном из BRAS'ов:

 

WCPU COMMAND

98.97% idle: cpu1

95.70% idle: cpu0

8.98% em0 taskq

6.84% em1 taskq

 

Траффик всего 100 Mbit. Сетевухи 82574L. FreeBSD-7.3 STABLE amd64 Core 2 Duo 3.2

Ссылка на сообщение
Поделиться на других сайтах

igb1 смотрит наружу.

Прошло минут 15-20, без изменений.

 

sysctl net.route.netisr_maxqlen=1024 - без изменений.

 

Шейп пока вырубить не могу, воскресенье, юзеров много онлайн.

Все загнаны в таблицы. Вырубить шейп - в смысле сделать allow all from any to any или вообще убрать pipe из правил?

 

Если делаю allow all from any to any - да, interrupt падает примерно на 40-50% (сейчас это 52%, падающие до примерно 25%), нагрузка на внейшний ИФ igb1 снижается примерно на столько же.

Ссылка на сообщение
Поделиться на других сайтах

sysctl net.route.netisr_maxqlen должно хватить (у меня стоит 16384)

pipe xxx config bw 0Kbit/s - скорость не ограничена

 

 

nterrupt падает примерно на 40-50%

 

Дальше оптимизируйте правила, либо со временем ставьте посильней процессор (лучше побольше ядер).

Ссылка на сообщение
Поделиться на других сайтах

Уж не знаю куда дальше оптимизировать, все юзеры по таблицам сидят, правил ipfw сейчас получается около 350.

Мысль одна - пора всё же менять железку, хотя нельзя не признать что ipfw nat несколько улучшил ситуацию.

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

 

P.S. Кто-то подскажет как посмотреть кол-во открытых сессий на юзера/ИФ?

Ссылка на сообщение
Поделиться на других сайтах
ipfw сейчас получается около 350

 

Вот и причина. Уменьшить до 40 максиум.

 

P.S. Кто-то подскажет как посмотреть кол-во открытых сессий на юзера/ИФ?

 

ipfw pipe xxx show | grep <IP> и посчитать сторчки, если интерисует к-во

Ссылка на сообщение
Поделиться на других сайтах

Тут не сервер менять нужно, а структуру софта. Не должно быть на двухядерной машине при 50мбит трафика загрузки в 50%.. Или фаервол излишне перегружен правилами, или шейпер без хешей тупит(падение загрузки в 2 раза это подтверждает в принципе). Даже NAT при таком трафике должен быть незаметен.

Ссылка на сообщение
Поделиться на других сайтах
Вот и причина. Уменьшить до 40 максиум.

А было 800 или 900... :P

Эти правила генерятся благодаря применению таблиц.

 

Вот мой скрипт ipfw:

#!/bin/sh

sh_ip='10.0.0.10'
nat_ip="1.2.3.4"
fwcmd="/sbin/ipfw -q"
natdcmd="/sbin/natd"
int_if="igb0"
ext_if="igb1"

#sbros ipfw
${fwcmd} -f flush
${fwcmd} -f pipe flush
${fwcmd} -f queue flush
${fwcmd} table all flush

#Local for NAT
${fwcmd} table 2 add 10.0.0.0/24
${fwcmd} table 2 add 10.0.1.0/24
${fwcmd} table 2 add 10.0.2.0/24
${fwcmd} table 2 add 10.0.3.0/24
${fwcmd} table 2 add 10.0.4.0/24
${fwcmd} table 2 add 10.0.5.0/24
${fwcmd} table 2 add 10.0.6.0/24
${fwcmd} table 2 add 192.168.0.0/24

#Real IP
${fwcmd} table 3 add 8.8.8.8
${fwcmd} table 3 add 9.9.9.9
${fwcmd} table 3 add 1.1.1.1
${fwcmd} table 3 add 2.2.2.2

#In local dlya Real ip
${fwcmd} table 3 add 10.0.3.9
${fwcmd} table 3 add 10.0.3.26
${fwcmd} table 3 add 10.0.1.2

#Avtorizator, kartochki, site and forum, DNS
${fwcmd} table 50 add 10.0.0.0/24
${fwcmd} table 50 add 10.0.1.0/24
${fwcmd} table 50 add 10.0.2.0/24
${fwcmd} table 50 add 10.0.3.0/24
${fwcmd} table 50 add 10.0.4.0/24
${fwcmd} table 50 add 10.0.5.0/24
${fwcmd} table 50 add 10.0.6.0/24
${fwcmd} table 50 add 192.168.0.0/24

#Konfigurator
${fwcmd} table 51 add 10.0.1.2 5555
${fwcmd} table 51 add 10.0.1.59 5555
${fwcmd} table 51 add 10.0.3.9 5555

${fwcmd} table 51 add 10.0.1.5 5555
${fwcmd} table 51 add 10.0.2.5 5555
${fwcmd} table 51 add 10.0.3.5 5555
${fwcmd} table 51 add 10.0.4.5 5555
${fwcmd} table 51 add 10.0.5.5 5555
${fwcmd} table 51 add 10.0.6.5 5555

#Paritety
${fwcmd} table 49 add 10.0.0.0/8
${fwcmd} table 49 add 172.16.0.0/12
${fwcmd} table 49 add 192.168.0.0/12


#maskarading vo vne
#Vklychaem NAT
${fwcmd} nat 1 config log ip ${nat_ip} same_ports unreg_only redirect_addr 10.0.3.9 1.1.1.1 redirect_addr 10.0.3.26 8.8.8.8

#Pravila NAT dlya localki
${fwcmd} add 10161 nat 1 ip from not table\(3\) to ${nat_ip} via ${ext_if}
${fwcmd} add 10162 nat 1 ip from table\(2\) to any via ${ext_if}
#Pravila NAT dlya REAl IP
${fwcmd} add 10163 nat 1 ip from any to table\(3\) via ${ext_if}

${fwcmd} add 10167 allow udp from any 123 to any 123
${fwcmd} add 10168 allow ip from any 22 to any 22
${fwcmd} add 10169 allow udp from 127.0.0.1 53 to any
${fwcmd} add 10170 allow udp from any to 127.0.0.1 53

#icmp
${fwcmd} add 10175 allow icmp from table\(2\) to any via ${int_if} icmptype 0,8

#Razreshaem VPN
${fwcmd} add 10210 pass tcp from any to me 1723 setup
${fwcmd} add 10215 pass tcp from me to any 1723 setup
${fwcmd} add 10220 pass gre from me to any
${fwcmd} add 10225 pass gre from any to me

#blokiruem fragmentirovanie icmp
${fwcmd} add 10230 deny log icmp from any to any frag

#razreshaem icmp
${fwcmd} add 10235 allow icmp from any to any via ${ext_if}

${fwcmd} add 10240 deny log ip from any to 127.0.0.0/8
${fwcmd} add 10245 deny log ip from 127.0.0.0/8 to any

${fwcmd} add 10250 allow ip from any to any via lo0

# Sleduyushie pravila razreshayut konektit`sya klientam k serveru
# stargazer na port 8888 na kotorom on slushaet klientskie soedineniya
${fwcmd} add 10299 allow udp from any 8888 to table\(50\) 8888 via ${int_if}
${fwcmd} add 10300 allow udp from table\(50\) 8888 to any 8888 via ${int_if}

#razreshaem connect konfiguratorom s 10.0.1.2
${fwcmd} add 10314 allow tcp from ${sh_ip} 5555 to table\(51\) via ${int_if}
${fwcmd} add 10315 allow tcp from table\(51\) to ${sh_ip} 5555 via ${int_if}

#pravila dlya kartochek
${fwcmd} add 10400 allow tcp from me 80 to table\(50\)
${fwcmd} add 10410 allow tcp from table\(50\) to me 80

#Razreshaem DNS iz localki dlya piringa

${fwcmd} add 19040 allow udp from table\(50\) to any 53 via ${int_if}
${fwcmd} add 19049 allow udp from any 53 to table\(50\) via ${int_if}

#Paritety
#------
${fwcmd} pipe 20400 config mask dst-ip 0xffffffff bw 50Mbit/s
${fwcmd} pipe 20410 config mask src-ip 0xffffffff bw 50Mbit/s 
#------

Далее правила для каждого тарифа
......

#256
#------
${fwcmd} pipe 21820 config mask dst-ip 0xffffffff bw 240Kbit/s
${fwcmd} pipe 21830 config mask src-ip 0xffffffff bw 240Kbit/s 
#Inet
${fwcmd} add 21830 pipe 21830 all from not table\(49\) to table\(12\) via ${int_if}
${fwcmd} add 21830 pipe 21830 all from table\(12\) to not table\(49\) via ${int_if}
#------

#512
#------
${fwcmd} pipe 21840 config mask dst-ip 0xffffffff bw 540Kbit/s
${fwcmd} pipe 21850 config mask src-ip 0xffffffff bw 540Kbit/s 
#Inet
${fwcmd} add 21840 pipe 21840 all from not table\(49\) to table\(13\) via ${int_if}
${fwcmd} add 21850 pipe 21850 all from table\(13\) to not table\(49\) via ${int_if}
#------

#1024
#------
${fwcmd} pipe 21860 config mask dst-ip 0xffffffff bw 1100Kbit/s
${fwcmd} pipe 21870 config mask src-ip 0xffffffff bw 1100Kbit/s 
#Inet
${fwcmd} add 21860 pipe 21660 all from not table\(49\) to table\(14\) via ${int_if}
${fwcmd} add 21870 pipe 21670 all from table\(14\) to not table\(49\) via ${int_if}
#------

#b256
#------
${fwcmd} pipe 21880 config mask dst-ip 0xffffffff bw 240Kbit/s
${fwcmd} pipe 21890 config mask src-ip 0xffffffff bw 240Kbit/s 
#Inet
${fwcmd} add 21880 pipe 21880 all from not table\(49\) to table\(15\) via ${int_if}
${fwcmd} add 21890 pipe 21890 all from table\(15\) to not table\(49\) via ${int_if}
#------

#b512
#------
${fwcmd} pipe 21900 config mask dst-ip 0xffffffff bw 540Kbit/s
${fwcmd} pipe 21910 config mask src-ip 0xffffffff bw 540Kbit/s 
#Inet
${fwcmd} add 21900 pipe 21900 all from not table\(49\) to table\(16\) via ${int_if}
${fwcmd} add 21910 pipe 21910 all from table\(16\) to not table\(49\) via ${int_if}
#------

......

# Blokiruem vse ostal`nie klientskie zaprosi k routeru
${fwcmd} add 50020 deny log ip from 10.0.0.0/24 to 10.0.0.10 via ${int_if}
${fwcmd} add 50021 deny log ip from 192.168.10.0/24 to 192.168.20.1 via ${int_if}
${fwcmd} add 50022 deny log ip from 192.168.10.0/24 to 192.168.30.1 via ${int_if}

# Sleduyushie pravila razreshayut routeru soedinyat`sya s ispol`zovaniem 
# protokola tcp s vneshnimi setyami.
${fwcmd} add 50029 allow tcp from any to any out via ${ext_if} setup
${fwcmd} add 50030 allow tcp from any to any via ${ext_if} established

# Sleduyushie pravila razreshayut routeru soedinyat`sya s ispol`zovaniem 
# protokola udp s vneshnimi setyami, a takzhe razreshayut prohozhdenie 
# DNS trafika cherez router
${fwcmd} add 50031 allow udp from any to any out via ${ext_if}
${fwcmd} add 50032 allow udp from any to any in recv ${ext_if}

# Dalee idet zapreshayushee pravilo dlya vsego ostal`nogo 
# trafika (t.e. shema fayrvola – vse chto ne razresheno 
# yavno – to zapresheno)
$fwcmd add 65534 deny log ip from any to any

 

А это скрипт СТГ OnConnect:

 

#!/bin/sh
fwcmd="/sbin/ipfw"
ip=$2
login=$1
id=$4
cash=$3
int_if="igb0"
ext_if="igb1"
sgconf="/var/stargazer/cm/sgconf"


trf=`grep 'Tariff=' /var/stargazer/users/$login/conf | cut -d '=' -f2`

.....

if [ $trf = '256' ]
then
${fwcmd} table 12 add ${ip}
echo "C `date +%Y.%m.%d-%H.%M.%S``arp $ip` $cash" >> /var/stargazer/users/$login/connect.log
   exit 1
fi

if [ $trf = '512' ]
then
${fwcmd} table 13 add ${ip}
echo "C `date +%Y.%m.%d-%H.%M.%S``arp $ip` $cash" >> /var/stargazer/users/$login/connect.log
   exit 1
fi

if [ $trf = '1024' ]
then
${fwcmd} table 14 add ${ip}
echo "C `date +%Y.%m.%d-%H.%M.%S``arp $ip` $cash" >> /var/stargazer/users/$login/connect.log
   exit 1
fi


if [ $trf = 'b2048' ]
then
${fwcmd} table 18 add ${ip}
${fwcmd} add `expr $id '*' 10 + 11000` pipe 20400 all from table\(49\) to $ip
${fwcmd} add `expr $id '*' 10 + 11001` pipe 20410 all from $ip to table\(49\)
echo "C `date +%Y.%m.%d-%H.%M.%S``arp $ip` $cash" >> /var/stargazer/users/$login/connect.log
   exit 1
fi

.....

exit

 

Сильно криво? Думаете может влиять так? :P

Ссылка на сообщение
Поделиться на других сайтах
Думаете может влиять так?

Легко проверить. Вставить где-то в начале ещё 150 правил и посмотреть загрузку.

 

Ещё раз повторюсь, у меня правил на порядок меньше. Распечатать на бумагу, много думать.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.


×
×
  • Створити нове...