Назад | Перейти на главную страницу

Формирование трафика FreeBSD

Я пытаюсь формировать трафик с помощью FreeBSD, вот мои правила

su-3.2# ipfw show | grep pipe
08380 1514852  125523804 pipe 1 tcp from any to any dst-port 80
su-3.2# ipfw pipe 1 show
00001:   2.000 Mbit/s    0 ms   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     64.237.55.83/60598    72.21.81.133/80    6520267 1204533020  0    0 1216
su-3.2# 

в первую очередь почему, когда я бегу ipfw pipe 1 показать Я получаю тот же IP-адрес источника и назначения, который, похоже, никогда не менялся, но общее количество пакетов / байтов увеличивается

И самый важный вопрос, после всего этого, я смотрю статистику MRTG и вижу, что у меня очень большой предел 2 Мбит / с.

Что я делаю не так?

вот конфигурационный файл

flush
pipe flush
pipe 1 config bw 2Mbit/s
add 100 allow ip from any to any via lo0
add 200 deny ip from any to 127.0.0.0/8
add 300 deny ip from 127.0.0.0/8 to any
add 8380 pipe 1 tcp from any to any src-port www uid daemon
add 8380 pipe 1 tcp from any to any dst-port www uid daemon
add 65000 pass all from any to any

Вы ограничиваете HTTP-трафик до 2 Мбит / с, но пропускаете весь остальной трафик. Таким образом, у вас все еще может быть 50 Мбит / с FTP-трафика, например, который не будет ограничен

Раньше я устанавливал политику так:

# flush all rules
ipfw -f flush

ipfw pipe 1 config bw 256Kbits/s
ipfw pipe 2 config bw 512Kbits/s
ipfw pipe 10 config bw 1Mbits/s
ipfw pipe 50 config bw 20Mbits/s
ipfw pipe 60 config bw 20Mbits/s
ipfw pipe 100 config bw 100Mbits/s


ipfw add 1 pipe 50 ip from X.X.X.X/21 to any out
ipfw add 2 pipe 60 ip from any to X.X.X.X/21 in

Таким образом, у вас есть 20 Мбит / с внутри и 20 Мбит / с снаружи. Если вы используете только один канал, то это 20 Мбит / с, то есть 10 Мбит / с.

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

Если вы привязаны к ipfw, посмотрите этот сайт - Они говорят о формировании трафика OS X, но ipfw - это ipfw, и он должен вас подтолкнуть. (По сути, похоже, что вам не хватает очередей на канале, что, если я правильно помню, нарушает формирование трафика).

Если вы не состоите в браке с ipfw, вы можете сделать это (и многие другие QOS и Queuing) проще с помощью pf и ALTQ (Одна ссылка, доступно множество других, включая документы очереди pf)

Общее примечание: организация очередей / формирования обычно работает лучше всего при применении к исходящему трафику (поэтому, если вы хотите ограничить входящий трафик на интерфейсе вашего интернет-провайдера, возможно, вам больше повезет с регулированием исходящего трафика на внутреннем интерфейсе)