Здравствуйте.
Имеется странная проблема. Не знаю в каком направлении ковырять дальше. Буду весьма благодарен, если кто пнёт в правильную сторону.Есть:
- FreeBSD6.4 + NAT + IPFW + PPPoE + DUMMYNET (в качестве роутера);
- канал в Интернет 30 Мбит/с;
- локалкаЕсть правила:
#...
ipfw pipe 1 config bw 1Mbit/s
#...
ipfw add 101 pipe 1 ip from 10.10.10.10 to any
ipfw add 102 pipe 1 ip from any to 10.10.10.10
#...
# nat - порт NAT
# devI - интерфейс, который смотрит в Интернет
# IPInt - IP на интерфейсе devI
ipfw add 1001 divert ${nat} ip from 10.10.10.10 to any out xmit ${devI}
ipfw add 1002 divert ${nat} ip from any to ${IPInt} in recv ${devI}
#...
ipfw add 65000 allow ip from any to any
#...Всё работает :)
Проблема:
Если pipe 1 мегабит (как указано выше), то у абонента из локалки торренты, спидтесты и т.п. показывают максимум 0,9 download и 0.47 upload. Когда поменять pipe на "2Mbit/s", у клиента 1,83/0,87 и т.д.. А что самое интересное, если вообше убрать из правил pipe, то максимальная скорость у клиента не выше 8 мегабит/с, тоесть FreeBSD не отдала все 30 провайдерских мегабит/с клиенту. (Включали ноут клиента непосредственно напрямую к провайдеру минуя FreeBSD роутер и speedtest.net показал все 30 мегабит)В логах messages ошибок нету.
Вопрос: куда девается трафик и как найти проблему? :)
>Вопрос: куда девается трафик и как найти проблему? :)ну для начала дополните правила, помещающие пакеты в пайп названиями интерфейсов.
я подозреваю, что трафик попадает в пайп дважды.
ну и посмотрите ipfw show pipe в момент тестирования скорости.
>ну для начала дополните правила, помещающие пакеты в пайп названиями интерфейсов.
>я подозреваю, что трафик попадает в пайп дважды.Это точно. без интерфейса траффик пройдет дважды. проверить легко и просто - запомните счетчики pipe и качните файл известного размера - сразу видно...
>>ну для начала дополните правила, помещающие пакеты в пайп названиями интерфейсов.
>>я подозреваю, что трафик попадает в пайп дважды.
>
> Это точно. без интерфейса траффик пройдет дважды. проверить легко и просто
>- запомните счетчики pipe и качните файл известного размера - сразу
>видно...дабл-пайт это стандартные грабли юных пайперов )
попадает два раза в пайп, и как по вашему это может повлиять на уменьшение скорости?
нагружается машина чуть больше и только.а что если стоит pipe 1Мбит/с то спидтест должен показать четко 1Мбит/с ?
>попадает два раза в пайп, и как по вашему это может повлиять
>на уменьшение скорости?очень странный вопрос ))
типа - я допустил глюк - что будет? ответ - будет глючить
>нагружается машина чуть больше и только.не факт
>
>а что если стоит pipe 1Мбит/с то спидтест должен показать четко 1Мбит/с
>?говнотесты не есть показатель
> ну для начала дополните правила, помещающие пакеты в пайп названиями интерфейсов.Большое спасибо за ответ.
Назрел ещё один вопрос. Не очень понимаю принцип такой штуки, например, если у меня допустим:
vr0 - смотрит в интернет;
vr1 - смотрит в локалку;то как такое правило:
ipfw add 101 pipe 1 ip from 10.10.10.10 to any
ipfw add 102 pipe 1 ip from any to 10.10.10.10расписать по интерфейсам, если 10.10.10.10 приходит на сервер через PPPoE по интерфейсу tunX (где "Х" - "Х"-его знает :)) а выходит после NAT'а с vr0 уже с внешним адресом?
Разве что как-то так:
ipfw add 101 pipe 1 ip from 10.10.10.10 to me in
ipfw add 102 pipe 1 ip from me to 10.10.10.10 out