Полисинг по времени на маршрутизаторе 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 |
Свинолёт в офисе ОТС
Вывози уродца
Если вы думаете что у вас херовая работа…
Работать? Но зачем?
Свинонс, The
Калькулятор координат с картой
Никульское, стародубово
Вторая попытка взять тайник, неудача.
На этот раз направились сюда. Со всем нужными координатами и программами.
1. Доезжаем до обозначенной церкви, считаем кол-во уцелевших петель.
2. Хэлрайзер.
3. Решаем задачу на координаты, позиционируемся.
4. Вперед, по полю.
5. Фотка нравится, мое чудо за 2.5 тысячи оказывается умеет снимать макро.
6. Но всё равно неудача. По указанным координатам ничего не нашлось. Место проходное, рыбаки сидят постоянно там. По всей видимости тайник разорен.
Третья попытка взять тайник, удача!
Забиваем на поиски, берем ноут, ищем следующую точку, которая оказывается совсем не подалеку.
7. Вечереет, едем.
8. Приехали. По отработанной схеме направялемся к цели.
9. И, о чудо, находим. «Ну и как он должен выглядеть? Тук-тук. А вот так!»
10. Гора предметов, тайник действует с 2004 года. Кладем свечу от ВАЗ-а, медиатор, зажигалку и резиновые ножки от коммутатора D-Link. Забираем свисток и клейкие бумажки.
11. Отмечаемся в блокнотике. Да, комары, это жесть.
12. Гжель тестирует свисток.