Страница 1 из 1

ipfw - ограничение скорости

Добавлено: 2006-10-26 15:52:45
dikens3
Обычное ADSL подключение к прову 8Mbit/s | 1mbit/s. + Здесь есть телефон. Т.е. скорость в момент звонка урезается до 4Mbit/s. (Не помню точно, но где-то читал)

Есть две сетевухи, одна в лан, другая в инет.

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

На той, которая в инет или Лан?

P.S. Предполагаю, что на той, которая в инет.

Добавлено: 2006-10-26 16:14:25
Alex Keda
какому сайту?

Добавлено: 2006-10-26 16:58:34
dikens3
lissyara писал(а):какому сайту?
Мдя, действительно непонятно.. Своему корпоративному.

Чё-то перемудрил я:

Добавил

Код: Выделить всё

# Ускоряем Web-Site

        ${fwcmd} pipe 1 config bw 8Mbit/s queue 10
        ${fwcmd} queue 1 config pipe 1 weight 80
        ${fwcmd} queue 2 config pipe 1 weight 20
        ${fwcmd} add queue 1 ip from ${webmailserver} to any out via ${ifout}
        ${fwcmd} add queue 2 ip from not ${webmailserver} to any out via ${ifout}
НО:

Код: Выделить всё

# ipfw pipe show
00001:   8.000 Mbit/s    0 ms   10 sl. 0 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000

q00001: weight 80 pipe 1   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 tcp      192.168.*.*/80       89.109.4.168/2769  1408  1214253  0    0   0

q00002: weight 20 pipe 1   50 sl. 1 queues (1 buckets) droptail
    mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  0 udp     192.168.*.*/6369     217.11.48.13/53    1567   168977  0    0   0
Так собственно всё и стоит, счётчики изменяются, но никаких новых очередей не появляется. Что делать? Так и должно быть?

Добавлено: 2006-10-26 18:16:01
dikens3
Сделал так:

Код: Выделить всё

        ${fwcmd} pipe 1 config bw 7Mbit/s
        ${fwcmd} queue 1 config pipe 1 weight 80 queue 20 mask src-ip 0xffffffff
        ${fwcmd} queue 2 config pipe 1 weight 20 queue 20 mask src-ip 0xffffffff
        ${fwcmd} add queue 1 ip from ${webmailserver} to any out via ${ifout}
        ${fwcmd} add queue 2 ip from not ${webmailserver} to any out via ${ifout}
Вроде работает.

Сайт Объем данных Время загрузки Загрузка 1 Kб
1 http://www.mydomain.ru > 10 Kбайт 0.84 сек 0.08 сек
2 http://www.mydomain2.ru > 10 Kбайт 0.89 сек 0.09 сек


Тестировал тут:
http://web.nettools.ru/

Добавлено: 2007-02-15 17:24:48
BAV_Lug
Появилось несколько вопросов
1. Как правильно равномерно распределить между пользователями канал?
2. И как решить ту-же задачу, но, например, разбив пользователей на две группы с разными приоритетами?

Стоит сквид. И хотелось бы, чтобы канал делился на внутреннем интерфейсе только по порту 3128 (средствами сквида херня получается :()

ЗЫ Статью на сайте читал, но там ограничение по каждому пользователю, а мне нужно, что-бы когда канал пустует и один ползователь он весь отдавался ему.

Добавлено: 2007-02-15 17:39:15
dikens3
BAV_Lug писал(а):Появилось несколько вопросов
1. Как правильно равномерно распределить между пользователями канал?
2. И как решить ту-же задачу, но, например, разбив пользователей на две группы с разными приоритетами?

Стоит сквид. И хотелось бы, чтобы канал делился на внутреннем интерфейсе только по порту 3128 (средствами сквида херня получается :()

ЗЫ Статью на сайте читал, но там ограничение по каждому пользователю, а мне нужно, что-бы когда канал пустует и один ползователь он весь отдавался ему.
${fwcmd} queue 1 config pipe 1 weight 80
Вес так называемый. 80% предпочтение траффика по этому критерию.

Добавлено: 2007-02-16 10:03:50
BAV_Lug
dikens3 писал(а): ${fwcmd} queue 1 config pipe 1 weight 80
Вес так называемый. 80% предпочтение траффика по этому критерию.
Вот, что накопал по первому вопросу

Код: Выделить всё

ipfw pipe 10 config bw 10Mbit/s
ipfw pipe 20 config bw 10Mbit/s
ipfw queue 10 pipe 10 weight 50 mask src-ip 0xffffffff
ipfw queue 20 pipe 20 weight 50 mask dst-ip 0xffffffff

ipfw add ... queue 10 ip from any to any in via rl0
ipfw add ... queue 20 ip from any to any out via rl0

где rl0 - сетевая карта, обращенная в сторону "юзеров"
но не работает :(
что нужно подставить вместо точек?

и как посмотреть работают ли трубы? (ipfw pipe show - показывает две трубы, и все нули :( )

Добавлено: 2007-02-16 11:45:20
dikens3

Код: Выделить всё

# Указываешь скорость исходящего/входящего интерфейса 
       ${fwcmd} pipe 1 config bw 100Mbit/s
# Создаёшь 1 очередь с приоритетом 80% (Группа 1)
       ${fwcmd} queue 1 config pipe 1 weight 80 queue 20 mask dst-ip 0xffffffff
# Создаёшь 2 очередь с приоритетом 20% (Группа 2)
       ${fwcmd} queue 2 config pipe 1 weight 20 queue 20 mask dst-ip 0xffffffff
В итоге 100% определение канала?

# Приоритет для VIP юзеров
       ${fwcmd} add queue 1 ip from any to ${vip_users} out via ${iflan}
# Приоритет для остальных пользователей
       ${fwcmd} add queue 2 ip from any to not ${vip_users} out via ${iflan}

В итоге при 100% загрузке исходящего потока траффика c интерфейса iflan
80% канала будет отдаваться VIP пользователям и 20% обычным юзерам

Учти, что пример работать не будет, т.к. входящий(интернетный) трафик у тебя гораздо меньше 100Mbit/s.

Посмотреть ipfw pipe show