====== Сервис QOS ====== * [[https://habr.com/post/420525/|Сети для самых матёрых. Часть пятнадцатая. QoS]] ===== Уилиты для экспериментов ===== * [[Утилита iPerf]] gate# apt install wondershaper gate# wondershaper eth1 10 10 gate# wondershaper eth1 gate# wondershaper clear eth1 ===== Linux ===== ===== Cisco ===== * [[https://www.cisco.com/c/en/us/support/docs/switches/catalyst-3750-series-switches/91862-cat3750-qos-config.html|Cisco Catalyst 3750 QoS Configuration Examples]] * [[https://reggle.wordpress.com/2013/05/14/qos-part-v-hardware-queues-on-35603750-switch-platform/|QoS part V: hardware queues on 3560/3750 switch platform]] * [[http://cisco-conf.ru/qos/90-qos-catalyst-3750-.html|3750 QOS: Общие принципы]] ==== Включение ==== mls qos ==== Назначение QOS для трафика c определенным DSCP ==== * [[https://dreamforccie.wordpress.com/2010/04/23/convert-phb-af-to-dscp-decimal-and-vise-versa-its-so-easy/|Convert PHB AF to DSCP Decimal and Vise Versa: It’s So Easy!]] * [[https://supportforums.cisco.com/t5/wan-routing-and-switching/dscp-qos-value/td-p/920725|DSCP - QOS value]] TOS: 0x000068b8 show mls qos maps dscp-output-q interface GigabitEthernet1/0/1 mls qos trust dscp ==== Назначение DSCP для трафика c определенным профилем ==== no ip access-list extended IP-Communicator ip access-list extended IP-Communicator ! permit udp any any range 10000 20000 ! permit ip any host 195.19.32.11 permit ip host 195.19.32.11 any class-map match-all Class-B match access-group name IP-Communicator policy-map sample-policy2 class Class-B set dscp ef interface GigabitEthernet1/0/2 service-policy input sample-policy2 ==== Назначение QOS для трафика отдельного порта ==== show mls qos maps cos-output-q interface GigabitEthernet1/0/11 mls qos cos 5 mls qos trust cos ==== Выделение полосы в магистральном соединении для трафика с определенным QOS ==== sh mls qos queue-set show mls qos interface g1/0/47 queueing interface GigabitEthernet1/0/47 ! Full priority for q1 srr-queue bandwidth shape 0 0 0 0 srr-queue bandwidth share 255 1 1 1 ! 1/20 band for q1 srr-queue bandwidth shape 20 0 0 0 srr-queue bandwidth share 1 1 1 1 clear mls qos interface g1/0/47 statistics show mls qos interface g1/0/47 statistics | inc queue ===== Равномерное ограничение полосы для всех с исключениями ===== ==== FreeBSD (ipfw) ==== [gate:~] # cat /etc/ipfw.conf pipe 1 config bw 100mbit/s pipe 2 config bw 64kbit/s mask dst-ip 0xffffffff add 10 pipe 1 ip from any to 192.168.100+X.2 add 20 pipe 2 ip from any to 192.168.100+X.0/24 add 100 allow ip from any to any [gate:~] # cat /etc/rc.conf ... dummynet_enable=yes firewall_enable="YES" firewall_type="/etc/ipfw.conf" [gate:~] # /etc/rc.d/ipfw start [gate:~] # ipfw pipe show ===== Балансировка нагрузки между провайдерами ===== ==== FreeBSD (pf) ==== http://www.openbsd.org/faq/pf/pools.html [gate:~] # cat /etc/pf.conf lan_net = "192.168.1X.0/24" int_if = "tap0" ext_if1 = "fxp0" ext_if2 = "rl0" ext_gw1 = "10.10.105.100" ext_gw2 = "172.16.7.2" nat on $ext_if1 from $lan_net to any -> ($ext_if1) nat on $ext_if2 from $lan_net to any -> ($ext_if2) pass in on $int_if route-to \ { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin \ proto tcp from $lan_net to any flags S/SA modulate state pass in on $int_if route-to \ { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin \ proto { udp, icmp } from $lan_net to any keep state pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 \ to any pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 \ to any