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