andryas 1 059 Опубліковано: 2010-11-02 06:26:06 Share Опубліковано: 2010-11-02 06:26:06 sysctl net.inet.ip.fw.verbose_limit=100000 sysctl net.inet.ip.fw.verbose=1 и смотрим /var/log/security на каком правиле блочится 100% рабочий конфиг я давал ранее, если взято с моего примера, подозреваю, что белые IP просто не добавлены в таблицу 1 Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-02 07:59:03 Автор Share Опубліковано: 2010-11-02 07:59:03 Мдя, короче лажа какая-то у меня получилась, напутал что-то видимо. Щас оказалось что и СТГ подрубиться не может и часть сервисов не работает. На строки ${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. Бл#... Ночью попробую ещё раз. Если доживу. Спасибо за поддержку. Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2010-11-02 08:24:59 Share Опубліковано: 2010-11-02 08:24:59 В чём проблема поднять тестовый сервер и на нём всё отладить? Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-02 08:40:24 Автор Share Опубліковано: 2010-11-02 08:40:24 Проблема в его отсутствии. Я б сделал давно уже наверное, если б была такая возможность. И это последний раз когда я так делаю, больше никто на такое не уговорит. Кошмар. Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2010-11-02 09:03:49 Share Опубліковано: 2010-11-02 09:03:49 Для теста вполне сгодится и виртуалка. http://ru.wikipedia.org/wiki/VirtualBox http://ru.wikipedia.org/wiki/VMware_Workstation Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-02 10:10:52 Автор Share Опубліковано: 2010-11-02 10:10:52 Да я её уже поставил давно (Sun VirtualBox - отличная штука), но поскольку у меня Windows 7 основной системой, я боюсь как бы она мне не мешала в тестах. Тут как раз машины две привезли подбитых грозой. Одна вроде дышет, у ней только вентилятор поменять на матери. Если запущу и слепок с её винта сделаю и куда-нить его пульну временно, думаю может на ней пару дней можно будет обкатать. Сетевых карт у меня теперь полно. Напишу потом как оно. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-03 12:27:07 Автор Share Опубліковано: 2010-11-03 12:27:07 В общем поднял на второй машине 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 вкомпилен в ядро. "Не фунциклируит"? Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2010-11-03 17:11:57 Share Опубліковано: 2010-11-03 17:11:57 Убрать подсеть интернет-интерфейса с таблицы для NAT. Вообще, желательно натить с белго адреса (повесить его алиасом на локалхост и натить на него) Последнее правило у Вас всё разрешает, нехорошо, с точки зрения безопасности. Для начала хотя-бы зафильтруйте в первых правилах порты сервисов машины для всех, корме себя. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-03 19:42:27 Автор Share Опубліковано: 2010-11-03 19:42:27 Убрать подсеть интернет-интерфейса с таблицы для 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, только он алиасом на внешнем ИФ висит, как и несколько других. Просто под этим одним как-бы сеть вся сидит, остальные понятно - для избранных. И как это - на внутреннем иф? Роутить запросы вовнутрь? На внешнем разве не удобнее? Я почему-то всегда считал, что всё белое должно быть снаружи. Последнее правило у Вас всё разрешает, нехорошо, с точки зрения безопасности. Для начала хотя-бы зафильтруйте в первых правилах порты сервисов машины для всех, корме себя. Я просто сделал второй скрипт, который показал выше. И запускаю его для теста. Затем когда вижу результат - сразу запускаю родной скрипт сервера, который возвращает все правила назад. Так что в этом смысле всё нормально. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-03 19:50:24 Автор Share Опубліковано: 2010-11-03 19:50:24 Убрать подсеть интернет-интерфейса с таблицы для 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 - тоже прошло успешно. Очень помогло вот это. Всё заколбасило. Идём дальше. На очереди - засунуть все правила юзеров в таблицы. Далее отпишусь. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-04 16:46:53 Автор Share Опубліковано: 2010-11-04 16:46:53 Настроил вроде. Поскольку не спал толком всё это время - мог что-то напутать, поэтому пока обкатываю. Пару ошибок уже устранил. Подозреваю, что не все сервисы доступны для реал-IP, не поправил ещё полностью. Итак, внизу смотрим результат перехода на ipfw nat со связки ipfw + pf и небольшой модификации loader.conf, которую посоветовали на пару страниц выше. Правда на связке ipfw+pf она ничего не дала, но я оставил на всякий. Разумеется, все юзеры загнаны в таблицы. Interrupt по прежнему не самый маленький, но я и этим доволен. Потери пакетов прекратились, пинги на шлюз стабильные, 1-2мс. Теперь даже при загрузке обоих ядер на 40-45%. Трафик 30-40Мбит. В совокупности доходит до 70-90Мбит и 5000-7000pps, но видимо сервер не сильно расстраивается, раз я играя в онлайн-игрушку этого не чувствую (классная тестилка работы сервера кстати). Конечно, это не те такие уж большие объёмы, но прогресс налицо. Пропали проблемы с подключениями по VPN. Я почти счастлив. Просто огромное спасибо тем, кто помог! Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-07 18:02:26 Автор Share Опубліковано: 2010-11-07 18:02:26 Помониторил. Нагрузка 5000-6500 pps, трафик 40-100Мбит. Пинги на шлюз провайдера в среднем 2-3мс. Потерь нет вообще. Но меня по-прежнему смущает interrupt. Поскольку материнка одна из дешёвых для настольного ПК - грешу на неё. Иначе хез что это. Все Ваши советы в этой теме применил, больше похоже нечего оптимизировать. P.S. Как посмотреть число сессий на юзера, какой утилитой (типа trafshow) и с какими опциями? Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2010-11-07 18:05:59 Share Опубліковано: 2010-11-07 18:05:59 Покажи top -aSPHs 1 systat -vmstat что-то не до конца дотюнено со второй карточкой, не может быть столько прерываний при траффике 100М. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-07 18:26:37 Автор Share Опубліковано: 2010-11-07 18:26:37 Карточка одна, Intel двухголовая. Кстати, как корректо загнать показатели top в текстовый файл? Неудобно скринами, а текст не лезет по конвееру ">", ломается форматирование или хрень какая-то получается. Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2010-11-07 18:42:52 Share Опубліковано: 2010-11-07 18:42:52 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 Ссылка на сообщение Поделиться на других сайтах
KaYot 3 711 Опубліковано: 2010-11-07 18:51:19 Share Опубліковано: 2010-11-07 18:51:19 Не морочьте себе голову, interrupts это не просто обработка физических прерываний , это весь контекст обработки пакета - фаервол, шейперы, NAT/biNAT. Обработка трафика самим адаптером одна сотая из общей загруки, пилить нужно правила фаервола и остальные ресурсоемкие вещи, а не ни в чем не повинный драйвер Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-07 18:56:03 Автор Share Опубліковано: 2010-11-07 18:56:03 На 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 Без изменений. Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2010-11-07 19:08:51 Share Опубліковано: 2010-11-07 19:08:51 Нагрузка детская совершенно. sysctl net.isr.direct для перестройки требуется несколько минут sysctl net.route.netisr_maxqlen=256 мало Отключение шейперов уменьшает нагрузку? Куда спотрит igb1? У меня сейчас на одном из BRAS'ов: WCPU COMMAND98.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 Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-07 19:23:27 Автор Share Опубліковано: 2010-11-07 19:23:27 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 снижается примерно на столько же. Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2010-11-07 19:26:34 Share Опубліковано: 2010-11-07 19:26:34 sysctl net.route.netisr_maxqlen должно хватить (у меня стоит 16384) pipe xxx config bw 0Kbit/s - скорость не ограничена nterrupt падает примерно на 40-50% Дальше оптимизируйте правила, либо со временем ставьте посильней процессор (лучше побольше ядер). Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-07 19:56:23 Автор Share Опубліковано: 2010-11-07 19:56:23 Уж не знаю куда дальше оптимизировать, все юзеры по таблицам сидят, правил ipfw сейчас получается около 350. Мысль одна - пора всё же менять железку, хотя нельзя не признать что ipfw nat несколько улучшил ситуацию. В любом случае большое всем Вам спасибо за помощь, будем думать что-то с новым сервером. P.S. Кто-то подскажет как посмотреть кол-во открытых сессий на юзера/ИФ? Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2010-11-07 20:03:23 Share Опубліковано: 2010-11-07 20:03:23 ipfw сейчас получается около 350 Вот и причина. Уменьшить до 40 максиум. P.S. Кто-то подскажет как посмотреть кол-во открытых сессий на юзера/ИФ? ipfw pipe xxx show | grep <IP> и посчитать сторчки, если интерисует к-во Ссылка на сообщение Поделиться на других сайтах
KaYot 3 711 Опубліковано: 2010-11-07 20:08:28 Share Опубліковано: 2010-11-07 20:08:28 Тут не сервер менять нужно, а структуру софта. Не должно быть на двухядерной машине при 50мбит трафика загрузки в 50%.. Или фаервол излишне перегружен правилами, или шейпер без хешей тупит(падение загрузки в 2 раза это подтверждает в принципе). Даже NAT при таком трафике должен быть незаметен. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-11-07 20:30:46 Автор Share Опубліковано: 2010-11-07 20:30:46 Вот и причина. Уменьшить до 40 максиум. А было 800 или 900... Эти правила генерятся благодаря применению таблиц. Вот мой скрипт 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 Сильно криво? Думаете может влиять так? Ссылка на сообщение Поделиться на других сайтах
andryas 1 059 Опубліковано: 2010-11-07 20:44:15 Share Опубліковано: 2010-11-07 20:44:15 Думаете может влиять так? Легко проверить. Вставить где-то в начале ещё 150 правил и посмотреть загрузку. Ещё раз повторюсь, у меня правил на порядок меньше. Распечатать на бумагу, много думать. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас