q1nex: ↑
27.09.2021 13:21Ну и куда же без любителей микротов, которые, впрочем, будут исчезать сразу после просьбы ткнуть пальцем в модель с аналогичным функционалом от микрота
Ну извините, у микротика есть конечно SwOS, но она сильно более урезанная - да и смысл его тогда пропадает, если урезать весь роутинг, очереди и прочее. Или вы из тех, кто любит прописывать статическую маршрутизацию как древние люди?
По поводу архитектур и прочего - роутер мало что делает процессором, почти всё делается аппаратно (тот же нат, например). Поэтому тот мипс спокойно мог выдавать больше пакетов в секунду, чем условный асус со 100500 ядер, просто потому что подбирают более подходящие железки и правильно пишут софт под него.
Rimsky: ↑
27.09.2021 16:45
мои косы нарезают траффик по приоритетам
1 DNS, IPTV по UDP53 и мультикастам - в первую голову,
2 web, туннели по dport - средний приоритет
3 всё что не попало - низкий приоритет
4 торренты висят на избранных портах - им вообще плинутсовый приоритет
даже если по dport TCP443 бегает не веб а что-то другое - всё-равно дается средний приоритет
Самое главное - торренты давятся, онлайн-контент must flow
- спойлер
Код: Выделить всё
#!/bin/sh
### Custom user script
### Called after router started and network is ready
### Example - load ipset modules
modprobe ip_set
modprobe ip_set_hash_ip
modprobe ip_set_hash_net
modprobe ip_set_bitmap_ip
modprobe ip_set_list_set
modprobe xt_set
#modprobe -rv sch_htb
modprobe sch_htb
#insmod sch_htb
int="br-lan"
DL=92Mbit
DL1=30Mbit
DL2=30Mbit
DL3=20Mbit
DL4=12Mbit
CL4=90Mbit
BURST=5Mbit
tc qdisc del dev $int root > /dev/null 2>&1
tc qdisc add dev $int root handle 1: htb default 30
tc class add dev $int parent 1: classid 1:1 htb rate $DL ceil $DL burst $BURST cburst $BURST
tc class add dev $int parent 1:1 classid 1:10 htb rate $DL1 ceil $DL prio 10 burst $BURST cburst $BURST
tc class add dev $int parent 1:1 classid 1:20 htb rate $DL2 ceil $DL prio 20
tc class add dev $int parent 1:1 classid 1:30 htb rate $DL3 ceil $DL prio 30
tc class add dev $int parent 1:1 classid 1:40 htb rate $DL4 ceil $CL4 prio 40
tc qdisc add dev $int parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $int parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $int parent 1:30 handle 30: sfq perturb 10
tc qdisc add dev $int parent 1:40 handle 40: sfq perturb 10
###HIGH PRIO
#ICMP
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 1 0xff flowid 1:10
#ACK
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10
#DNS
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 17 0xff match ip sport 53 0xffff flowid 1:10
#VOIP
tc filter add dev $int parent 1: protocol ip u32 match ip tos 0x68 0xff match ip protocol 11 0xff flowid 1:10
tc filter add dev $int parent 1: protocol ip u32 match ip tos 0xb8 0xff match ip protocol 11 0xff flowid 1:10
#TOS
tc filter add dev $int parent 1: protocol ip u32 match ip tos 0x10 0xff flowid 1:10
#IPTV
tc filter add dev $int parent 1: protocol ip u32 match ip dst 224.0.0.0/4 flowid 1:10
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 17 0xff match ip sport 5000 0xffff flowid 1:10
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 17 0xff match ip dport 5000 0xffff flowid 1:10
#SSH+TELNET
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 22 0xfffe flowid 1:10
#RDP
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 3389 0xffff flowid 1:10
#NTP
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 17 0xff match ip sport 123 0xffff flowid 1:10
###MED PRIO
#MAIL
# SMTP
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 25 0xffff flowid 1:20
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 465 0xffff flowid 1:20
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 587 0xffff flowid 1:20
# POP3
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 110 0xffff flowid 1:20
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 995 0xffff flowid 1:20
# IMAP
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 143 0xffff flowid 1:20
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 993 0xffff flowid 1:20
#WEB
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 80 0xffff flowid 1:20
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 443 0xffff flowid 1:20
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 8080 0xffff flowid 1:20
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 8081 0xffff flowid 1:20
#FTP
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 20 0xfffe flowid 1:20
#VPN
tc filter add dev $int parent 1: protocol ip u32 match ip src 127.0.0.1 flowid 1:20
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 1194 0xffff flowid 1:20
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 1195 0xffff flowid 1:20
###LOW PRIO DEFAULT
#All other stuff
# flowid 1:30
###VERY LOWEST PRIO
#Torrent
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 17 0xff match ip dport 59999 0xffff flowid 1:40
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip dport 59999 0xffff flowid 1:40
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 17 0xff match ip sport 59999 0xffff flowid 1:40
tc filter add dev $int parent 1: protocol ip u32 match ip protocol 6 0xff match ip sport 59999 0xffff flowid 1:40
tc filter add dev $int parent 1: protocol ip prio 4 u32 match ip protocol 17 0xff match ip dport 59998 0xffff flowid 1:40
tc filter add dev $int parent 1: protocol ip prio 4 u32 match ip protocol 6 0xff match ip dport 59998 0xffff flowid 1:40
Вот реально, микротик появился как раз чтобы заменить это, и на этом собственно и поднялся - вместо 100500 конфигов - удобный CLI и Winbox/WebUI. Очереди немного замудрёные, но плата за очень мощный функционал - да и из коробки в целом притензий у меня не было, можно было спокойно качать торренты когда в мск жил без какого-либо дискомфорта для остальных устройств
кстати по поводу 53 порта у ксяоми - возможно отвечает на запросы снаружи, тогда можно использовать для dns amplification attack.
А может почитать что случилось и почему? Уязвимость исправили много-много лет назад, сдедали несколько независимых аудитов безопасности - но кому-то всё ещё влом обновить прошивку, при том что открыть наружу порты ума хватило. Подобных уязвимостей было как миниму несколько у остальных брендов - просто они не работают по несколько лет без выключения)