Архив за месяц: Сентябрь 2011

Суздаль 25 июля 2011

Схема города.

Музей деревянного зодчества.

Часовня.

Пашут оба одинаково, что слева, что справа.

Дом крестьянина.

Обзорный вид с центра поля.

Мельница.

Еще один дом.

Внутреннее убранство.

Впрягайся!

И храни свои миллиарды!

Лавочка, есть идея скопировать.

Колодец, по типу «белка в колесе».

На конях.

ООО Святая русь.

Очень интересные элементы, куда лучше огромных сверкающих вывесок.

Цель поездки для Кузьмича, медовуха суздальская.

Кто-то осуществил мою мечту, разместил релейку в колокольне.

То, чего в Хотьково никогда не будет.

Смотрит с укоризной.

Продается танк.

Из точки А выехал хелрайзер…

Полисинг по времени на маршрутизаторе cisco

«Time based policy maps and rate-limit» — по такому запросу в гугле я хотел бы получать нужную инфу.

Задача:
С 10 утра до 2 часов по рабочим дням ограничить ограничить скорость до 5 mbit/s, в остальное время ограничить до 512 kbit/s.

Решение:
Задаем временной промежуток с 10 до 14 по рабочим дням.

!
time-range work.hours
 periodic weekdays 10:00 to 13:59
!

Задаем префиксы интересующих нас сетей. В случае с саб-интерфейсом (rate-limit можно указывать для логических интрефейсов, в отличие от шейпинга) можно указать «any to any»

!
ip access-list extended any2any.work.hours
 permit ip any any time-range work.hours
!

Указываем классификатор, в нашем случае сверяем по акцес-листу.

!
class-map match-all any2any.work.hours
 match access-group name any2any.work.hours
!

Указываем политику QoS. Если трафик попадает под класс, действующий по времени, то работает первое ограничение, в остальных случаях — второе.

!
policy-map 5Mb-work-512Kb-nonwork
 class any2any.work.hours
    police 5242500 983040 1966080 conform-action transmit  exceed-action drop  violate-action drop
 class class-default
    police 512000 96000 192000 conform-action transmit  exceed-action drop  violate-action drop
!

Применяем политику к выбранному логическому интерфейсу.

!
interface GigabitEthernet0/1.1234
 service-policy input 5Mb-work-512Kb-nonwork
 service-policy output 5Mb-work-512Kb-nonwork
!

Блокировка uTP на FreeBSD через ng_bpf

tcpdump -ni em0 «vlan and ip[40:4]=0x7FFFFFFF»

#!/bin/sh
 
kldload ng_bpf
kldload ng_tag
kldload ng_ipfw
 
/usr/sbin/ngctl -f- < <-SEQ
        mkpeer ipfw: bpf 61 ipfw_hook61
        name ipfw:61 bpf_utp_filter
        mkpeer bpf_utp_filter: tag matched tag_utp
        name bpf_utp_filter:matched tag_utp_tagger
SEQ
 
ngctl msg bpf_utp_filter: setprogram { thisHook=\"ipfw_hook61\" ifNotMatch=\"ipfw_hook61\" ifMatch=\"matched\" bpf_prog_len=12 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=8 k=64 } { code=48 jt=0 jf=0 k=9 } { code=21 jt=0 jf=6 k=17 } { code=40 jt=0 jf=0 k=6 } { code=69 jt=4 jf=0 k=8191 } { code=177 jt=0 jf=0 k=0 } { code=64 jt=0 jf=0 k=20 } { code=21 jt=0 jf=1 k=2147483647 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] }
ngctl msg bpf_utp_filter: setprogram { thisHook=\"matched\" ifMatch=\"ipfw_hook61\" bpf_prog_len=1 bpf_prog=[ { code=6 jt=0 jf=0 k=96 } ] }
ngctl msg tag_utp_tagger: sethookin { thisHook=\"tag_utp\" ifNotMatch=\"tag_utp\" }
ngctl msg tag_utp_tagger: sethookout { thisHook=\"tag_utp\" tag_cookie=1148380143 tag_id=61 }
 
ipfw add netgraph 61 udp from any to any iplen 0-61
ipfw add deny udp from any to any tagged 0-61
 
# to test outgoing - tcpdump -pni Out_Interface "ip[40:4]=0x7FFFFFFF" and "ip[44:1]=0xab" and ether src Ext_If_Mac

С новыми сигнатурами 2.01

#!/bin/sh
 
kldload ng_bpf
kldload ng_tag
kldload ng_ipfw
 
/usr/sbin/ngctl -f- < <-SEQ
    mkpeer ipfw: bpf 61 ipfw_hook61
    name ipfw:61 bpf_utp_filter
    mkpeer bpf_utp_filter: tag matched tag_utp
    name bpf_utp_filter:matched tag_utp_tagger
SEQ
 
ngctl msg bpf_utp_filter: setprogram { thisHook=\"ipfw_hook61\" ifNotMatch=\"ipfw_hook61\" ifMatch=\"matched\" bpf_prog_len=13 bpf_prog=[ { code=48 jt=0 jf=0 k=0 } { code=84 jt=0 jf=0 k=240 } { code=21 jt=0 jf=9 k=64 } { code=32 jt=0 jf=0 k=36 } { code=21 jt=0 jf=2 k=2147483647 } { code=40 jt=0 jf=0 k=40 } { code=21 jt=4 jf=0 k=3 } { code=32 jt=0 jf=0 k=40 } { code=21 jt=0 jf=3 k=2147483647 } { code=48 jt=0 jf=0 k=44 } { code=21 jt=0 jf=1 k=171 } { code=6 jt=0 jf=0 k=65535 } { code=6 jt=0 jf=0 k=0 } ] }
 
ngctl msg bpf_utp_filter: setprogram { thisHook=\"matched\" ifMatch=\"ipfw_hook61\" bpf_prog_len=1 bpf_prog=[ { code=6 jt=0 jf=0 k=96 } ] }
ngctl msg tag_utp_tagger: sethookin { thisHook=\"tag_utp\" ifNotMatch=\"tag_utp\" }
ngctl msg tag_utp_tagger: sethookout { thisHook=\"tag_utp\" tag_cookie=1148380143 tag_id=61 }
 
ipfw add netgraph 61 udp from any to any iplen 48-61
ipfw add deny udp from any to any tagged 61
 
# to test outgoing - tcpdump -pni ext0 '(ip[36:4]=0x7FFFFFFF and ip[40:2]=0x0003) or (ip[40:4]=0x7FFFFFFF and ip[44:1]=0xab)' and ether src Ext_If_Mac

P.S. А вот так это делается в linux-е.

/sbin/iptables -A FORWARD -m udp -p udp -m string --hex-string "|0000000000380000|" --algo bm --from 36 --to 45 -j DROP
/sbin/iptables -A FORWARD -m udp -p udp -m string --hex-string "|7F FF FF FF AB|" --algo bm --from 40 --to 44 -j DROP
/sbin/iptables -A FORWARD -m udp -p udp -m string --hex-string "|7F FF FF FF 00 03 20 00|" --algo bm --from 36 --to 43 -j DROP
/sbin/iptables -A FORWARD -m udp -p udp -m string --hex-string "|00 38 00 00 00 01 00 00|" --algo bm --from 40 --to 47 -j DROP