ipfw, dummynet - кто видел такое?

Протоколы, пинги, роутинг - ответы на вопросы как заставить сеть работать правильно
Аватара пользователя
dopey

 
Сообщения: 19
Зарегистрирован:
31 май 2005, 14:58

ipfw, dummynet - кто видел такое?

Сообщение dopey 31 май 2005, 18:08

Настроил dummynet вот таким образом:

==========================================
#----------------------------------------------------
# configure bandwidth and weights (dynamic shaping)#
#----------------------------------------------------

ipfw pipe 100 config bw 212Kbit/s queue 25Kbytes
ipfw queue 1 config pipe 100 weight 33 gred 0.002/10/30/0.1
ipfw queue 2 config pipe 100 weight 33 gred 0.002/10/30/0.1
ipfw queue 3 config pipe 100 weight 33 gred 0.002/10/30/0.1
ipfw queue 4 config pipe 100 weight 1 gred 0.002/10/30/0.1


#---------------------------------------------------------------
# assign each client its bandwidth priority (dynamic shaping) #
#---------------------------------------------------------------

ipfw add 100 queue 1 all from any to 192.168.0.104
ipfw add 102 queue 2 all from any to 192.168.0.11
ipfw add 104 queue 3 all from any to 192.168.0.102
ipfw add 106 queue 4 all from any to 192.168.0.101
===========================================

ipfw -a list выдает вот это:

===========================================
00046_____1692096____1017659531____count ip from any to 192.168.0.11
00047_____1691518____1017552039____count ip from any to 192.168.0.11 out recv fxp0
00048___________0_____________0____count ip from any to 192.168.0.11 out xmit fxp0
00049_____1691517____1017550539____count ip from any to 192.168.0.11 out recv fxp0
00050_____1691517____1017550539____count ip from any to 192.168.0.11 recv fxp0
00051_____2098409_____222311501____count ip from 192.168.0.11 to any out xmit fxp0
00060_____29517________36154136____count ip from any to 192.168.0.104
00061_____25709_________2131446____count ip from 192.168.0.104 to any out xmit fxp0
00070_____2502__________2371679____count ip from any to 192.168.0.101
00071_____2030___________184728____count ip from 192.168.0.101 to any out xmit fxp0
00080_____192338______282317137____count ip from any to 192.168.0.102
00081_____147048________6516456____ count ip from 192.168.0.102 to any out xmit fxp0
00100_____29517________36154136____queue 1 ip from any to 192.168.0.104
00102_____1692100____1017661745____queue 2 ip from any to 192.168.0.11
00104_____192338______282317137____queue 3 ip from any to 192.168.0.102
00106_____2502__________2371679____queue 4 ip from any to 192.168.0.101
00110_____4234296____1571876161____divert 8668 ip from any to any via fxp0
00200_____576_____________52796____allow ip from any to 192.168.0.100
00201_____558____________106672____allow ip from 192.168.0.100 to any
00202_____22614_________1096850____allow ip from any to 192.168.1.100
00203_____2295803_____232379791____allow ip from 192.168.1.100 to any
00204_____5000__________4743134____allow ip from any to 192.168.0.101
00205_____2145___________200005____allow ip from 192.168.0.101 to any
00206_____3383041____2035106337____allow ip from any to 192.168.0.11
00207_____2099389_____222402712____allow ip from 192.168.0.11 to any
00208_____59034________72308272____allow ip from any to 192.168.0.104
00209_____26057_________2172626____allow ip from 192.168.0.104 to any
00210_____384676______564634274____allow ip from any to 192.168.0.102
00211_____147656________6598996____allow ip from 192.168.0.102 to any
65535_____1629___________341978____deny ip from any to any
============================================

Какого хрена не совсем заметно что dummynet разделяет канал? Нет, конечно эффект есть, например теперь я уверен что все получат хоть какую-то часть канала... Без dummynet если кто-то качал по полной, так у остальных google.com открывался только после десятой попытки.
Но все-же, почему если кто-то качает через Shareaza или eDonkey, так остальные получают явно минимум в 2 раза меньше?

Или может мне надо ставить приоритеты не на пользователей а на виды траффика?
The severity of the itch is inversely proportional to the ability to scratch it. :)

Аватара пользователя
Igoras
Moderator
Moderator
 
Сообщения: 3248
Зарегистрирован:
22 окт 2003, 20:27
Откуда: Кишинев, Starushka.net

Сообщение Igoras 31 май 2005, 19:56

Вот как стоит у меня

# dynamic shaping out
${ipfw} add 3110 queue 10 ip from 192.168.0.0/16 to any not 5190 out via ${ifout}
${ipfw} queue 10 config pipe 10 queue 100 mask src-ip 0xffffffff gred 0.002/10/30/0.1
${ipfw} pipe 10 config bw 128Kbit/s queue 5

# max speed per user
${ipfw} add 3120 pipe 11 ip from 192.168.0.0/16 to any out via ${ifout}
${ipfw} pipe 11 config bw 48Kbit/s mask src-ip 0xffffffff

# nat
${ipfw} add 3320 divert natd ip from 192.168.0.0/16 to any out via ${ifout}
${ipfw} add 3320 divert natd ip from any to 195.234.159.67 in via ${ifout}

# dynamic shaping in
${ipfw} add 3510 queue 15 all from any not 5190 to 192.168.0.0/16 in via ${ifout}
${ipfw} queue 15 config pipe 15 queue 100 mask dst-ip 0xffffffff gred 0.002/10/30/0.1
${ipfw} pipe 15 config bw 384Kbit/s queue 5

# max speed per user in
${ipfw} add 3520 pipe 16 all from any to 192.168.0.0/16 in via ${ifout}
${ipfw} pipe 16 config bw 64Kbit/s mask dst-ip 0xffffffff

${ipfw} это '/sbin/ipfw -q', а ${ifout} - имя внешнего интерфейса (тот что на провайдера)... в итоге канал делится динамически, но юзер больше какой-то части не скушает... на самом деле там немного сложнее, отдельно делится молдова и отдельно внешний, но тут просто вариант где все вместе... ну там видны скорости еще... там свои надо вписать :) и еще все это работает нормально на _гарантированном_ канале... а на пакетах /5 от старнета вряд ли.. потому что шейпер делит по максимальной границе...

Аватара пользователя
dopey

 
Сообщения: 19
Зарегистрирован:
31 май 2005, 14:58

Сообщение dopey 02 июл 2005, 07:09

Igoras писал(а):и еще все это работает нормально на _гарантированном_ канале... а на пакетах /5 от старнета вряд ли.. потому что шейпер делит по максимальной границе...

Это конечно немного странно но работает даже вот такое:
Код: Выделить всё
ipfw pipe 100 config

И кажется что делит канал исходя из пропускной способности на момент.

Igoras писал(а):на самом деле там немного сложнее, отдельно делится молдова и отдельно внешний, но тут просто вариант где все вместе... ну там видны скорости еще...

А ты смог бы еще пару-тройку рабочих примеров написать? Мне вот с 1-го июля стало очень интересно каким образом можно различать молдавский траффик и внешний... Просто перешел на другой пакет.

Неужели придется писать для каждого юзверя ipfw правила которые будут считать траффик на каждую подсеть которая принадлежит любому из наших провайдеров?

И как мне узнать все ip наших провайдеров?
The severity of the itch is inversely proportional to the ability to scratch it. :)

Аватара пользователя
dopey

 
Сообщения: 19
Зарегистрирован:
31 май 2005, 14:58

Сообщение dopey 02 июл 2005, 15:54

dopey писал(а):И как мне узнать все ip наших провайдеров?

Это я уже нашел здесь: viewtopic.php?t=532 :D

А кто-нибудь может подсказать почему у меня IPFW показывает что выкачено больше чем показывает провайдер?
Причем на каждые выкаченые 10Мб по данным провайдера, у меня показывает больше примерно на 1,5Мб.

Считаю я через такое:
Код: Выделить всё
ipfw add 100 count all from any to 192.168.0.100 out recv fxp0
где fxp0 это natd interface.

Та же погрешность и на upload. Считаю так:
Код: Выделить всё
ipfw add 101 count all from 192.168.0.100 to any out xmit fxp0


Насколько я понял out recv и out xmit это правильно. :roll:

sergeyka.h10.ru писал(а):out recv rl0 - исходящий пакет, полученный rl0 интерфейсом
out xmit rl0 - исходящий пакет, отправленный rl0 интерфейсом
The severity of the itch is inversely proportional to the ability to scratch it. :)

Аватара пользователя
Igoras
Moderator
Moderator
 
Сообщения: 3248
Зарегистрирован:
22 окт 2003, 20:27
Откуда: Кишинев, Starushka.net

Сообщение Igoras 03 июл 2005, 01:42

dopey писал(а):Это конечно немного странно но работает даже вот такое:
Код: Выделить всё
ipfw pipe 100 config

И кажется что делит канал исходя из пропускной способности на момент.


А че бы не работать.... ты пайп создал... просто не отконфигурировал его.. так что что он есть, что его нет :) так что эту строчку тогда можно вообще опустить :)

dopey писал(а):А ты смог бы еще пару-тройку рабочих примеров написать? Мне вот с 1-го июля стало очень интересно каким образом можно различать молдавский траффик и внешний... Просто перешел на другой пакет.

Неужели придется писать для каждого юзверя ipfw правила которые будут считать траффик на каждую подсеть которая принадлежит любому из наших провайдеров?

И как мне узнать все ip наших провайдеров?


отдельно писать не придется... все сети объединяются в фигурные скобки через or =) чуть позже напишу рабочий пример.... а вот если нужно каждому юзеру отдельно молдову, отдельно внешний - тут уже по-моему каждому придется писать по 4 правила подсчета =(

dopey писал(а):А кто-нибудь может подсказать почему у меня IPFW показывает что выкачено больше чем показывает провайдер?
Причем на каждые выкаченые 10Мб по данным провайдера, у меня показывает больше примерно на 1,5Мб.


Возможно у провайдера не считаются заголовки пакетов, а ipfw считает все... :) но врать он не может вроде... :)

dopey писал(а):Насколько я понял out recv и out xmit это правильно.


Я привык к in via для входящих пакетов через интерфейс и out via для исходящих.... out recv по-моему все же не не верно... исходящий пакет, полученный интерфейсом?? это как? как он может получить то, что сам отправляет :) по идее in recv должно быть... или я не прав?

Аватара пользователя
Andrew Noga

 
Сообщения: 27
Зарегистрирован:
25 июл 2004, 18:26

Сообщение Andrew Noga 12 июл 2005, 16:41

dopey писал(а):И как мне узнать все ip наших провайдеров?


http://tracker.starnet.md/ipfilter.dat

Аватара пользователя
Шинкевич Владимир

 
Сообщения: 1628
Зарегистрирован:
28 дек 2004, 17:36
Откуда: Киштаун

Сообщение Шинкевич Владимир 12 июл 2005, 17:09

лучше обратиться к провайдеру.. я так собираюсь сделать
Возвратно-поступательные движения неэффективны.

Аватара пользователя
dopey

 
Сообщения: 19
Зарегистрирован:
31 май 2005, 14:58

Сообщение dopey 14 июл 2005, 01:23

Profi the same писал(а):лучше обратиться к провайдеру.. я так собираюсь сделать

Да уж конечно! :) Мне в телекоме предложили за перенастройку модема с режима роутер в режим бридж заплатить 120 лей, а ип-адреса искать через ournet.md... :lol: Оператор меня еще так настойчиво уверял что там я точно найду ип адреса наших исп... :lol:
The severity of the itch is inversely proportional to the ability to scratch it. :)

Аватара пользователя
Шинкевич Владимир

 
Сообщения: 1628
Зарегистрирован:
28 дек 2004, 17:36
Откуда: Киштаун

Сообщение Шинкевич Владимир 14 июл 2005, 12:06

договор надо правильно заключать :) у меня есть пункт - "провайдер предоставляет научные и еще какие-то справки абоненту"
Возвратно-поступательные движения неэффективны.

Аватара пользователя
dopey

 
Сообщения: 19
Зарегистрирован:
31 май 2005, 14:58

Сообщение dopey 15 июл 2005, 00:30

Profi the same писал(а):договор надо правильно заключать :) у меня есть пункт - "провайдер предоставляет научные и еще какие-то справки абоненту"

Интересно, а ты добился наличия этого пункта своими настойчивыми требованиями о соблюдении твоих потребительских прав или же просто такой пункт присуствовал уже в контракте и твой провайдер таким образом пытается конкурировать с остальными?

И еще, насколько квалифицированную и полезную иммено тебе помощь они были в состоянии предоставить, будущими обязаннами этим пунктом контракта?

Или может быть тебе просто никогда не приходилось пользоватся услугами techical support своего провайдера?
The severity of the itch is inversely proportional to the ability to scratch it. :)

Аватара пользователя
Шинкевич Владимир

 
Сообщения: 1628
Зарегистрирован:
28 дек 2004, 17:36
Откуда: Киштаун

Сообщение Шинкевич Владимир 15 июл 2005, 10:24

1) б) :)
2) я думаю полную. они сами тарифицируют по молдовскому/внешнему - значит у них есть список.
3) приходилось... звонил когда инета не было..
Возвратно-поступательные движения неэффективны.

Аватара пользователя
Andrew Noga

 
Сообщения: 27
Зарегистрирован:
25 июл 2004, 18:26

Сообщение Andrew Noga 19 июл 2005, 09:15

Profi the same писал(а):2) я думаю полную. они сами тарифицируют по молдовскому/внешнему - значит у них есть список.


строго говоря списка как такового нет
потому как bgp

Аватара пользователя
Шинкевич Владимир

 
Сообщения: 1628
Зарегистрирован:
28 дек 2004, 17:36
Откуда: Киштаун

Сообщение Шинкевич Владимир 19 июл 2005, 11:43

потому как bgp

В этом случае есть следующая проблема: большинство провайдеров по-разному определяют "зарубежный" и "незарубежный" траффик. Тут есть несколько вариантов:

1. Попросить (заплатить) у провайдера список сетей, траффик в/из которых бесплатный. Как ни странно, это не такая легкая процедура, в том числе и в связи с отсутствием у многих списка как такового в нашем понимании этого слова. Кстати список придется регулярно обновлять. Надежность метода приближается к 100%

2. Попросить (заплатить) у провайдера отдавать тебе полную BGP таблицу и по ней фильтровать сети. Надежность метода также приближается к 100%

3. Построить такую таблицу самому, используя информацию по AS от провайдера и lookup по базе RIPE. Надежность метода - порядка 95%.

4. Делать back traceroute для каждого юзера с эвристическим анализом хостов. Надежность я оцениваю процентов в 70, не более.


Разниц в подходе не замечаю
Возвратно-поступательные движения неэффективны.


Вернуться в Настройка сети

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0