{"id":812,"date":"2013-09-10T02:15:37","date_gmt":"2013-09-10T08:15:37","guid":{"rendered":"https:\/\/www.lastdragon.net\/?p=812"},"modified":"2015-03-22T12:59:35","modified_gmt":"2015-03-22T18:59:35","slug":"qos-y-modelado-de-trafico-con-gnulinux","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=812","title":{"rendered":"QoS y Modelado de tr\u00e1fico con GNU\/Linux"},"content":{"rendered":"<p>Hace varios a\u00f1os en el 2008 escrib\u00ed un articulo llamado <a href=\"https:\/\/www.lastdragon.net\/?p=237\">Administrando anchos de banda en la red usando QoS en GNU\/Linux<\/a> En ese entonces agregue un p\u00e1rrafo que dec\u00eda lo siguiente.<\/p>\n<p><strong>\u00bfQu\u00e9 es lo que podemos hacer y que no.?<\/p>\n<p>Podemos controlar todo el tr\u00e1fico que inicia en nuestra red hacia internet, no podemos controlar el tr\u00e1fico que inicia en otro lado fuera de nuestra red, y que viene a nuestra red, esto es porque los paquetes vienen en desorden al estilo FIFO desde su punto de origen, existen m\u00f3dulos como el IMQ para Linux que pueden controlar el tr\u00e1fico que no iniciamos nosotros, mediante discriminaci\u00f3n de paquetes con una efectividad del 90% pero no hablare de este modulo aqu\u00ed.<\/strong><br \/>\nEn realidad si podemos controlar el tr\u00e1fico que llega del exterior sin el modulo IMQ, solo est\u00e1 condicionado a que debemos tener 2 tarjetas de red f\u00edsicas, el modulo IMQ se requiere solo cuando es una tarjeta de red con la que se quiere hacer QoS y modelado<\/p>\n<p>Este art\u00edculo ser\u00e1 un complemento al anterior y deber\u00edas leer el anterior antes de continuar con este.<\/p>\n<p>Diferencia de QoS y Modelado de tr\u00e1fico.<\/p>\n<p>El QoS es calidad de servicio, significa que si tenemos un enlace dedicado exclusivo a dar servicios de red podemos priorizar que servicio pesa m\u00e1s sobre otro, si el WEB es m\u00e1s importante que el corre o el correo m\u00e1s importante que el FTP<\/p>\n<p>La calidad de servicio termina en que se provee un servicio, son los paquetes que enviamos a internet, por ejemplo los paquetes del servidor WEB que enviamos a alguien que consulto nuestra p\u00e1gina WEB<\/p>\n<p>El modelado de trafico es lo opuesto, es cuando no damos servicio de red y por lo tanto la calidad en el servicio no importa, el modelado depende del trafico entrante, como en la red de un ciber caf\u00e9, aqu\u00ed lo importante es que los usuarios puedan navegar aunque otros usuarios tengan abiertas redes de intercambio de archivos que por su forma de operar terminan consumiendo todo el ancho de banda, esto tambi\u00e9n se puede aplicar a una oficina donde es mas importante entrar a las p\u00e1ginas de banco que al facebook<\/p>\n<p>El modelado de tr\u00e1fico garantiza el internet en la red LAN para los servicios que se consideran m\u00e1s importantes.<\/p>\n<p>Si ya leiste el articulo anterior no te ser\u00e1 dif\u00edcil entender el siguiente c\u00f3digo, de esto solo explicare que se requieren 2 tarjetas de red.<\/p>\n<p>En el ejemplo ETH1 es WAN y ETH0 es LAN<\/p>\n<p>Se ha declarado un ancho de banda de 30 Mbps, cuando se configuran las colas, a la LAN se le configura el doble de ancho de banda debido a que por esta tarjeta pasa el doble de tr\u00e1fico, al ser consumido el doble de ancho de banda se se le declara 60 Mbps, nos dar\u00e1 30 Mbps, en la tarjeta WAN no es necesario duplicar el ancho de banda, se pone el ancho de banda real ya que por la WAN solo pasa los paquetes que realmente deben pasar.<\/p>\n<p>Ejemplo de modelado<\/p>\n<p>QoS con modelado de trafico de entrada, se requieren 2 tarjetas fisicas para separar la LAN de la WAN<\/p>\n<p>la terjeta de LAN debe tener doble ancho de banda, la LAN debe tener su ancho de banda real.<\/p>\n<blockquote><p>tc qdisc del dev eth1 root handle 1: htb default 13<br \/>\ntc qdisc del dev eth0 root handle 1: htb default 13<\/p>\n<p>iptables -t mangle -F<\/p>\n<p>sleep 3<\/p>\n<p>tc qdisc add dev eth1 root handle 1: htb default 13<br \/>\ntc qdisc add dev eth0 root handle 1: htb default 13<\/p>\n<p>tc class add dev eth1 parent 1: classid 1:1 htb rate 30720kbit ceil 30720kbit<br \/>\ntc class add dev eth1 parent 1:1 classid 1:10 htb rate 10240kbit ceil 30720kbit prio 0<br \/>\ntc class add dev eth1 parent 1:1 classid 1:11 htb rate 10240kbit ceil 30720kbit prio 1<br \/>\ntc class add dev eth1 parent 1:1 classid 1:12 htb rate 5120kbit ceil 30720kbit prio 2<br \/>\ntc class add dev eth1 parent 1:1 classid 1:13 htb rate 5120kbit ceil 5120kbit prio 3<\/p>\n<p>tc class add dev eth0 parent 1: classid 1:1 htb rate 61440kbit ceil 61440kbit<br \/>\ntc class add dev eth0 parent 1:1 classid 1:10 htb rate 20480kbit ceil 61440kbit prio 0<br \/>\ntc class add dev eth0 parent 1:1 classid 1:11 htb rate 20480kbit ceil 61440kbit prio 1<br \/>\ntc class add dev eth0 parent 1:1 classid 1:12 htb rate 10240kbit ceil 61440kbit prio 2<br \/>\ntc class add dev eth0 parent 1:1 classid 1:13 htb rate 10240kbit ceil 10240kbit prio 3<\/p>\n<p>tc qdisc add dev eth1 parent 1:10 handle 10: sfq perturb 5<br \/>\ntc qdisc add dev eth1 parent 1:11 handle 11: sfq perturb 5<br \/>\ntc qdisc add dev eth1 parent 1:12 handle 12: sfq perturb 5<br \/>\ntc qdisc add dev eth1 parent 1:13 handle 13: sfq perturb 5<\/p>\n<p>tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 5<br \/>\ntc qdisc add dev eth0 parent 1:11 handle 11: sfq perturb 5<br \/>\ntc qdisc add dev eth0 parent 1:12 handle 12: sfq perturb 5<br \/>\ntc qdisc add dev eth0 parent 1:13 handle 13: sfq perturb 5<\/p>\n<p>tc filter add dev eth1 protocol ip prio 1 parent 1: handle 1 fw classid 1:10<br \/>\ntc filter add dev eth1 protocol ip prio 2 parent 1: handle 2 fw classid 1:11<br \/>\ntc filter add dev eth1 protocol ip prio 3 parent 1: handle 3 fw classid 1:12<br \/>\ntc filter add dev eth1 protocol ip prio 4 parent 1: handle 4 fw classid 1:13<\/p>\n<p>tc filter add dev eth0 protocol ip prio 1 parent 1: handle 1 fw classid 1:10<br \/>\ntc filter add dev eth0 protocol ip prio 2 parent 1: handle 2 fw classid 1:11<br \/>\ntc filter add dev eth0 protocol ip prio 3 parent 1: handle 3 fw classid 1:12<br \/>\ntc filter add dev eth0 protocol ip prio 4 parent 1: handle 4 fw classid 1:13<\/p>\n<p>#Maquinas con reglas Prioritarias<\/p>\n<p>#Asterisk<br \/>\n#Trafico saliente<br \/>\niptables -t mangle -A FORWARD -s 192.168.5.90 -j MARK &#8211;set-mark 0x1<br \/>\niptables -t mangle -A FORWARD -s 192.168.5.90 -j RETURN<br \/>\n#Trafico Entrante<br \/>\niptables -t mangle -A FORWARD -d 192.168.5.90 -j MARK &#8211;set-mark 0x1<br \/>\niptables -t mangle -A FORWARD -d 192.168.5.90 -j RETURN<\/p>\n<p>#WEB STANDART<br \/>\n#Trafico Saliente<br \/>\niptables -t mangle -A FORWARD -p tcp &#8211;dport 80 -j MARK &#8211;set-mark 0x2<br \/>\niptables -t mangle -A FORWARD -p tcp &#8211;dport 80 -j RETURN<br \/>\n#Trafico Entrante<br \/>\niptables -t mangle -A FORWARD -p tcp &#8211;sport 80 -j MARK &#8211;set-mark 0x2<br \/>\niptables -t mangle -A FORWARD -p tcp &#8211;sport 80 -j RETURN<\/p>\n<p>#WEB Segura SSL<br \/>\n#Trafico Saliente<br \/>\niptables -t mangle -A FORWARD -p tcp &#8211;dport 443 -j MARK &#8211;set-mark 0x2<br \/>\niptables -t mangle -A FORWARD -p tcp &#8211;dport 443 -j RETURN<br \/>\n#Trafico entrante<br \/>\niptables -t mangle -A FORWARD -p tcp &#8211;sport 443 -j MARK &#8211;set-mark 0x2<br \/>\niptables -t mangle -A FORWARD -p tcp &#8211;sport 443 -j RETURN<\/p><\/blockquote>\n<p>En el siguiente video se demuestra el efecto del modelado.<\/p>\n<p><iframe loading=\"lazy\" width=\"420\" height=\"315\" src=\"\/\/www.youtube.com\/embed\/7QJb09lYvtY\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>Similar al QoS cualquier paquete que no sea marcado con su prioridad para ser procesado por una cola se va a la cola default de LAN y WAN. En LAN la cola es de 5 Mbps y en WAN como explique se duplica a 10Mbps, sin embargo en la pr\u00e1ctica modela 5 Mbps quedando sincronizado a 5Mbps de subida y 5Mbps de bajada.<\/p>\n<p>En el video tambi\u00e9n se modela el trafico a p\u00e1ginas WEB se le da la prioridad 2 que esta ligada a una cola que tiene un ancho de banda garantizado de 10Mbps de los 30Mbps disponibles, al igual que el QoS el modelado aprovecha al 100% el ancho de banda disponible, le he garantizado 10 Mbps pero si est\u00e1n disponibles los otros 20Mbps los usara.<\/p>\n<p>En el video al hacer la prueba de velocidad da 25Mbps, esto se debe a que tengo tr\u00e1fico en mi red sin modelar, si recordando que la cola default tiene 5 Mbps, significa que el trafico de mi red privada esta saliendo por los 5Mbps default, dejando solo 25Mbps para las prioridades mas altas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hace varios a\u00f1os en el 2008 escrib\u00ed un articulo llamado Administrando anchos de banda en la red usando QoS en GNU\/Linux En ese entonces agregue un p\u00e1rrafo que dec\u00eda lo siguiente. \u00bfQu\u00e9 es lo que podemos hacer y que no.? Podemos controlar todo el tr\u00e1fico que inicia en nuestra red hacia internet, no podemos controlar&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,1,14],"tags":[],"class_list":["post-812","post","type-post","status-publish","format-standard","hentry","category-consultoria-y-manuales","category-personal","category-redes-y-telecoms"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=812"}],"version-history":[{"count":1,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/812\/revisions"}],"predecessor-version":[{"id":813,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/812\/revisions\/813"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}