{"id":1362,"date":"2024-05-21T10:00:00","date_gmt":"2024-05-21T13:00:00","guid":{"rendered":"https:\/\/www.nerdadas.com\/blog\/?p=1362"},"modified":"2024-05-21T10:17:17","modified_gmt":"2024-05-21T13:17:17","slug":"calidad-de-servicio-con-google-meet","status":"publish","type":"post","link":"https:\/\/www.nerdadas.com\/blog\/calidad-de-servicio-con-google-meet\/","title":{"rendered":"Calidad de Servicio con Google Meet"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Creo que lo m\u00e1s divertido (y estresante) de trabajar en Sistemas es encontrar soluciones a los retos que surgen todos los d\u00edas. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este mes ya evitamos que el usuario navegue por lugares que no debe, frenamos el modo de compartir internet desde los equipos personales, mejoramos la red de WiFi y creamos una de visitas(para m\u00e1s adelante el lab) y ahora nos enfrentamos a un nuevo desaf\u00edo: Proveer una conexi\u00f3n a Google Meet con la mejor calidad posible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta es una de las guerras en las que no vamos a poder ganar todas las batallas, pero podemos dar nuestro mejor esfuerzo y lograr un funcionamiento aceptable dentro de la red.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Factores que destruyen Google Meet<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para este laboratorio me bas\u00e9 en este documento oficial de Google Meet: <a href=\"https:\/\/support.google.com\/a\/answer\/1279090?hl=es\">https:\/\/support.google.com\/a\/answer\/1279090?hl=es<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo detallo para Mikrotik RouterOS y al final para implementar en <strong>Cisco ASA<\/strong>.(Lo testee en un <strong>ASA5515x<\/strong> y configur\u00e9 desde ASDM)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De este documento obtengo los siguientes factores que pueden afectar la conexi\u00f3n en video calls:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1- <strong>Ancho de banda: <\/strong>Si bien google se puede adaptar a cualquier ancho de banda, si la red est\u00e1 muy saturada vamos a experimentar cortes, p\u00e9rdidas de imagen y hasta el cartelito de: Problemas con su conexi\u00f3n. <strong>Este es el mecanismo al que apunto con el lab de hoy<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2- <strong>Consumo de Memoria Ram o CPU: <\/strong>Este factor va a depender del equipo del cliente. En el documento antes mencionado Google nos solicta que al empezar una conexi\u00f3n con Google Meet cerremos pesta\u00f1as y aplicaciones que no usemos. <strong>Este factor solo lo puede atacar el usuario.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3- <strong>Calidad de imagen y transferencia de datos: <\/strong>Google nos recomienda modificar la calidad desde nuestra consola de Workspace configurando la <strong>\u00abcalidad de video\u00bb<\/strong> en <strong>configurar automaticamente<\/strong>.<strong> Eso debemos hacerlo desde el panel por el administrador de Google Workspace.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Garantizando el servicio<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Google recomienda NO aplicar QoS (calidad de servicio) a las conexiones, para no limitar el ancho de banda disponible para Google Meet, pero de tener una red muy grande y que esto sea inevitable te da algunos consejos.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"824\" height=\"573\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-10.png\" alt=\"\" class=\"wp-image-1363\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-10.png 824w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-10-300x209.png 300w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-10-768x534.png 768w\" sizes=\"auto, (max-width: 824px) 100vw, 824px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Basado en este dato defino una Queue que establezca, en este caso, 50Mbps de subida e igual de bajada para cualquier tr\u00e1fico que tenga como destino las ips de google antes anunciadas.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/queue simple\nadd dst=74.125.250.0\/24 max-limit=50M\/50M name=\"Google Meet\" target=\"\"\nadd dst=142.250.82.0\/24 max-limit=50M\/50M name=\"Google Meet 2\" target=\"\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este ejemplo de <strong>Simple Queue<\/strong> funcion\u00f3 a la perfecci\u00f3n. <strong>Hay que colocarlo arriba de todas las dem\u00e1s Queues<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-11.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-11-1024x510.png\" alt=\"\" class=\"wp-image-1364\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-11-1024x510.png 1024w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-11-300x149.png 300w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-11-768x382.png 768w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-11.png 1452w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">De esta manera todo el tr\u00e1fico que vaya a los servidores de Google Meet tendr\u00e1 prioridad sobre el resto, garantizando el ancho de banda necesario para que todos puedan participar de la call sin problema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La cantidad de Mbps que destines depender\u00e1 mucho del ancho de banda total que tengas. Les dejo parte de la documentaci\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"807\" height=\"527\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-12.png\" alt=\"\" class=\"wp-image-1365\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-12.png 807w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-12-300x196.png 300w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-12-768x502.png 768w\" sizes=\"auto, (max-width: 807px) 100vw, 807px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Casos fallidos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Solo para documentar incluyo un primer caso en el que trat\u00e9 de ser m\u00e1s espec\u00edfico y el ejemplo <strong>NO FUNCION\u00d3<\/strong> como esperaba.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este caso hice un marcado de paquetes seg\u00fan los datos de conexi\u00f3n que me daba la documentaci\u00f3n oficial:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/ip firewall address-list\nadd address=142.250.0.0\/15 list=google-meet\nadd address=172.217.0.0\/16 list=google-meet\nadd address=172.253.0.0\/16 list=google-meet\nadd address=74.125.0.0\/16 list=google-meet\n\n\/ip firewall mangle\n# Marcar conexiones basadas en IPs de Google Meet\nadd chain=prerouting protocol=tcp dst-address-list=google-meet action=mark-connection new-connection-mark=google-meet-conn passthrough=yes\nadd chain=prerouting protocol=udp dst-address-list=google-meet action=mark-connection new-connection-mark=google-meet-conn passthrough=yes\n\n# Marcar conexiones basadas en puertos espec\u00edficos de Google Meet\nadd chain=prerouting protocol=tcp dst-port=443 action=mark-connection new-connection-mark=google-meet-conn passthrough=yes\nadd chain=prerouting protocol=udp dst-port=19302-19309 action=mark-connection new-connection-mark=google-meet-conn passthrough=yes\nadd chain=prerouting protocol=udp dst-port=3478 action=mark-connection new-connection-mark=google-meet-conn passthrough=yes\n\n# Marcar paquetes basados en las conexiones marcadas anteriormente\nadd chain=prerouting connection-mark=google-meet-conn action=mark-packet new-packet-mark=google-meet-pkt passthrough=no\n\n\/queue simple\nadd name=QoS-google-meet target=0.0.0.0\/0 max-limit=50M\/50M packet-marks=google-meet-pkt<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este ejemplo se bas\u00f3 en los datos que pasa Google para los Filtros de puertos a implementar:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-13.png\"><img loading=\"lazy\" decoding=\"async\" width=\"808\" height=\"371\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-13.png\" alt=\"\" class=\"wp-image-1366\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-13.png 808w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-13-300x138.png 300w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/image-13-768x353.png 768w\" sizes=\"auto, (max-width: 808px) 100vw, 808px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Como veras, es la misma regla que antes pero con rangos de ips m\u00e1s grandes y detalles de los puertos y protocolos espec\u00edficos que declara la documentaci\u00f3n oficial.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ahora en Cisco ASA (el ejemplo funcional)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Para Cisco ASA las reglas son exactamente las mismas<\/strong> que nuestro ejemplo que <strong>SI<\/strong> funcion\u00f3:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-0.png\"><img loading=\"lazy\" decoding=\"async\" width=\"820\" height=\"617\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-0.png\" alt=\"\" class=\"wp-image-1374\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-0.png 820w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-0-300x226.png 300w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-0-768x578.png 768w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"820\" height=\"617\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-1.png\" alt=\"\" class=\"wp-image-1375\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-1.png 820w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-1-300x226.png 300w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-1-768x578.png 768w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"820\" height=\"617\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-2.png\" alt=\"\" class=\"wp-image-1377\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-2.png 820w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-2-300x226.png 300w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-2-768x578.png 768w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"820\" height=\"617\" src=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-3.png\" alt=\"\" class=\"wp-image-1378\" srcset=\"https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-3.png 820w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-3-300x226.png 300w, https:\/\/www.nerdadas.com\/blog\/wp-content\/uploads\/2024\/05\/qos-asa-3-768x578.png 768w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">C\u00f3mo chequeamos que funcione?.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>show service-policy<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos a ver las estad\u00edsticas de  consumo de la ACL.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusiones<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de varias pruebas dentro de la red puedo ver, en el gr\u00e1fico de la Simple Queue, que al establecer una conexi\u00f3n en un reuni\u00f3n virtual de Google Meet, el tr\u00e1fico empieza a marcar sus caracter\u00edsticos Picos mostr\u00e1ndome que la regla funciona.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De todas formas, cabe destacar que el ancho de banda garantizado no es suficiente para que Google Meet funcione correctamente. Me he topado con problemas de render cuando el usuario blurrea el fondo o pone alg\u00fan filtro sobre la imagen, cuando tiene una aplicaci\u00f3n corriendo en segundo plano que utiliza excesiva memoria ram o solo discos r\u00edgidos lo suficientemente lentos como para cargar toda la interfaz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La soluci\u00f3n en este caso es un summun de varias capas del modelo OSI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Creo que lo m\u00e1s divertido (y estresante) de trabajar en Sistemas es encontrar soluciones a los retos que surgen todos los d\u00edas. <\/p>\n<p>Este mes ya evitamos que el usuario navegue por lugares que no debe, frenamos el modo de compartir internet desde los equipos personales, mejoramos la red de WiFi y creamos una de visitas(para m\u00e1s adelante el lab) y ahora nos enfrentamos a un nuevo desaf\u00edo: Proveer una conexi\u00f3n a Google Meet con la mejor calidad posible.<\/p>\n","protected":false},"author":1,"featured_media":1368,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[275,766,64,1243,13,1223,161,1,17,804],"tags":[1294,1293,1291,18,1297,10,1298,1230,1292,1296,1295,1288,1290,223,1281,869,1058,1289,1017],"class_list":["post-1362","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-celulares","category-curiosidades","category-ideas","category-montando-tu-red-corporativa-de-0","category-ocio","category-redes","category-seguridad","category-sin-categoria","category-tecnologia","category-ti","tag-calidad","tag-calidad-de-servicio","tag-colas","tag-google","tag-google-meet","tag-jeremias-palazzesi","tag-meet","tag-mikrotik","tag-qos","tag-quality-of-service","tag-quality-service","tag-queue","tag-queue-tree","tag-red","tag-routeros","tag-seguridad","tag-servicio","tag-simple-queue","tag-ti"],"_links":{"self":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts\/1362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/comments?post=1362"}],"version-history":[{"count":9,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts\/1362\/revisions"}],"predecessor-version":[{"id":1384,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/posts\/1362\/revisions\/1384"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/media\/1368"}],"wp:attachment":[{"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/media?parent=1362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/categories?post=1362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nerdadas.com\/blog\/wp-json\/wp\/v2\/tags?post=1362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}