The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Гуру, помогите, будьте добры!"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Гуру, помогите, будьте добры!"
Сообщение от boomerangs Искать по авторуВ закладки on 10-Ноя-03, 23:57  (MSK)
Словом бьюсь уже третий день и не могу понять где тут собака зарыта, может вы разберетесь где подвох. Словом проблема следующая - DummyNet должен нарезать траффик, а он вроде как и делает это только верхняя граница скажем 2 килобайта прыгает до 10, а когда запускаю довнлоад мастер то и вообще берет весь канал. Словом приведу вам файлы rc.firewall и rc.conf.
rc.conf:
firewall_enable="YES"
natd_enable="YES"
natd_interface="rl0"
check_quotas="YES"
gateway_enable="YES"
inetd_enable="YES"
linux_enable="YES"
router="/sbin/routed"
router_enable="NO"
router_flags="-q"
sshd_enable="YES"
ifconfig_rl0="inet 192.168.1.178 netmask 255.255.255.0"
ifconfig_rl1="inet 192.168.0.179 netmask 255.255.255.255"
defaultrouter="192.168.1.1"
tcp_extensions="NO"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"
tcp_drop_synfin="YES"
sysctl kern.hostname=Krek

rc.firewall:
#!/bin/sh
/sbin/ipfw add 10 pipe 1 all from any to any
/sbin/ipfw pipe 1 config bw 20Kbit/s
/sbin/ipfw add 100 check-state
/sbin/ipfw add 200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
/sbin/ipfw add 300 allow ip from any to any via lo
/sbin/ipfw add 310 allow tcp from me to any keep-state via rl0
/sbin/ipfw add 320 allow icmp from any to any
/sbin/ipfw add 330 allow udp from me to any domain keep-state
/sbin/ipfw add 340 allow udp from any to me domain
/sbin/ipfw add 350 allow ip from me to any
/sbin/ipfw add 400 allow tcp from any to any
/sbin/ipfw add 500 divert 8668 all from any to any via rl0
/sbin/ipfw add 1002 allow all from 192.168.1.196 to any via rl0
/sbin/ipfw add 1002 allow all from any to 192.168.1.196 via rl0
#$(ipfw) add 65535 deny ip from any to any  

Весьма большая к вам просьба - опубликуйте в этом топике ваши конфиги файлов rc.firewall, желательно с применение Dummynet, можно и без, допишите каких правил здесь не хватает. Думаю не я один буду вам весьма благодарен.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Гуру, помогите, будьте добры!"
Сообщение от boomerangs Искать по авторуВ закладки on 11-Ноя-03, 00:01  (MSK)
Вообще, такое впечатление, что ДаммиНет не ограничивает траффик до конкретных 2КБ/сек а дает 0,2; 1,5; 8,9; 12;0;0;0;0;0;0;0;0;0;0;15;7, что если взять среднее арифметическое получается почти 2КБ/сек. Так что это такой тупой механизм ограничения или что-то не так?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Гуру, помогите, будьте добры!"
Сообщение от boomerangs Искать по авторуВ закладки on 11-Ноя-03, 11:54  (MSK)
Ну так поможет кто или нет?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Гуру, помогите, будьте добры!"
Сообщение от anonymous Искать по авторуВ закладки on 11-Ноя-03, 23:51  (MSK)
>Ну так поможет кто или нет?
Э-э-э...
Ну вобщем так. Что тут у вас понаписано в rc.firewall? Ужас.
Это не тот подход. В rc.firewall правила не пишутся. Это стандартный системный скрипт и его не надо менять. Вообще никогда не надо ничего менять в скриптах загрузки. Может не совсем понятно почему так, но со временем (опытом) прояснится. Назовем это системным подходом.

Значится делаем так. Создаем например каталог /etc/ipfw. В нем файлик rules. В файлике:
add 10 allow .....
add 20 allow ....
add 30 deny .....
.... итд

в rc.conf
firewall_enable="YES"
firewall_type="/etc/ipfw/rules"
firewall_quiet="YES"

Если возникло желание перезагрузить правила -
#sh /etc/rc.firewall

Все это конечно было немного не по теме вопроса. Идем далее.
Что считается у вас в "add 10 pipe 1 all from any to any"? На самом деле это же и входящий и исходящий трафик по всем интерфейсам, включая loopback. Это чревато знаете ли.

Пишем по другому. Например
add 10 pipe 1 ip from any to any in via rl0
add 20 pipe 2 ip from any to any out via rl0
Это две разные трубы на входящий и исходящий трафик. Хотя обычно исходящий не режут. Далее
pipe 1 config bw 3Kbyte/s
pipe 2 config bw 10Kbyte/s
Напишите ограничение скорости в _килобайтах_. На всякий случай ;-) Отдельно для каждой трубы. Если исходящий резать не нребуется - ну тогда ясно дело можно ограничиться одной, но с указанием направления (in или out)
Что у вас там резалось в вашем правиле - ну кто знает.

Кроме того, по теме еще options HZ=1000 в конфиге ядра. Читайте LINT. Правда при таких низких скоростях это не должно сильно влиять.

Ну вроде бы все.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Гуру, помогите, будьте добры!"
Сообщение от anonymous Искать по авторуВ закладки on 12-Ноя-03, 00:15  (MSK)
>Ну вроде бы все.
А ну еще забыл. Читаем man ipfw.

pipe pipe_nr
        Pass packet to a dummynet(4) ``pipe'' (for bandwidth limitation,
        delay, etc.).  See the TRAFFIC SHAPER (DUMMYNET) CONFIGURATION
        Section for further information.  The search terminates; however,
        on exit from the pipe and if the sysctl(8) variable
        net.inet.ip.fw.one_pass is not set, the packet is passed again to
        the firewall code starting from the next rule.
Это я вот о чем. Если по нашенски, то сдесь написано вот что. После срабатывания правила pipe, остальные (низлежащие) правила не обрабатываются. Однако если переменная net.inet.ip.fw.one_pass не установлена, то на выходе из трубы пакет обрабатывается снова начиная со следующего правила.

Таким образом,
pipe 1 ip from any to any тра-та-та по умолчанию эквивалентно
add allow ip from any to any тра-та-та с занесением в трубу. Если это не то что нужно, то либо указанная переменная, либо можно добавлять в трубу несколько раз. Например,
pipe 1 ip from any to 1.2.3.4 in via rl0
pipe 1 ip from any to 1.2.3.5 in via rl0
итд

Далее я думаю мысль понятна.
Остальные предложенные вами правила оставляю без комментариев. Ведь вопрос был про dummynet как я понял.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Гуру, помогите, будьте добры!"
Сообщение от boomerangs Искать по авторуВ закладки on 12-Ноя-03, 12:57  (MSK)
Ну хорошо, скажем это эквивалентно, тогда по сути просто ограничиваем трубу и все - траффик должен проходить все равно не больший чем размер трубы, или я заблуждаюсь? Почему pipe 1 from any to any не ограничивает траффик а in via ограничивает? Что в первом случае траффик пролетает мимо трубы?

Таким образом,
>pipe 1 ip from any to any тра-та-та по умолчанию эквивалентно
>add allow ip from any to any тра-та-та с занесением в трубу.
>Если это не то что нужно, то либо указанная переменная, либо
>можно добавлять в трубу несколько раз. Например,
>pipe 1 ip from any to 1.2.3.4 in via rl0
>pipe 1 ip from any to 1.2.3.5 in via rl0


  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Гуру, помогите, будьте добры!"
Сообщение от anonymous Искать по авторуВ закладки on 12-Ноя-03, 14:34  (MSK)
>Ну хорошо, скажем это эквивалентно, тогда по сути просто ограничиваем трубу и
>все - траффик должен проходить все равно не больший чем размер
>трубы, или я заблуждаюсь? Почему pipe 1 from any to any
>не ограничивает траффик а in via ограничивает? Что в первом случае
>траффик пролетает мимо трубы?

Да не пролетает он мимо трубы. У вас труба не правильная. Вы сначала напишите как надо с in via, а потом уж занимайтесь трактовкой результата.
Один ньюанс где можно ошибиться -
Kbit/s != KBit/s (это не одно и то же)
Поэтому напишите в килобайтах, как я писал уже. Чтоб не ошибиться.
pipe 1 config bw 2KByte/s

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Гуру, помогите, будьте добры!"
Сообщение от boomerangs Искать по авторуВ закладки on 12-Ноя-03, 22:39  (MSK)
сейчас файрволл выглядит так -
/sbin/ipfw add 10 pipe 1 ip from any to any in via rl0
/sbin/ipfw add 20 pipe 2 ip from any to any out via rl0
/sbin/ipfw pipe 1 config bw 3Kbyte/s
/sbin/ipfw pipe 2 config bw 3Kbyte/s
/sbin/ipfw add 100 check-state
/sbin/ipfw add 200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
/sbin/ipfw add 300 allow ip from any to any via lo
/sbin/ipfw add 310 allow tcp from me to any keep-state via rl0
/sbin/ipfw add 320 allow icmp from any to any
/sbin/ipfw add 330 allow udp from me to any domain keep-state
/sbin/ipfw add 340 allow udp from any to me domain
/sbin/ipfw add 390 allow ip from me to any
/sbin/ipfw add 500 divert 8668 all from any to any via rl0
/sbin/ipfw add 1002 allow all from 192.168.1.196 to any via rl0
/sbin/ipfw add 1002 allow all from any to 192.168.1.196 via rl0

и все равно берется весь канал? Какое правило здесь все портит?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Гуру, помогите, будьте добры!"
Сообщение от Вачс Искать по авторуВ закладки on 13-Ноя-03, 18:37  (MSK)
Поставь диверт в начало может поможет, хотя сомневаюсь...
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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