Bogon filtering

Bogons o Bogon space son los términos que se utilizan para referirse a redes (léase prefijos) que están sin asignar, o que aún están en propiedad de la IANA, que viene a ser lo mismo. La IANA es la entidad a nivel mundial responsable del direccionamiento IP, y es la encargada de asignar el direccionamiento a los registros de internet regional (RIR – como RIPE en Europa), siendo RIPE la entidad que se ocupa de asignarlas a los LIR (acens, telefonica, tu empresa).

Aunque la IANA mantiene una lista pública, la gente del Team Cymru mantiene una lista de redes Bogon cuyas rutas se marcan con la comunidad 65333:888 de modo que puedas abrir una sesión BGP con ellos y enviar esas rutas en tus routers a null (leer acerca de BGP blackholing).

Muchos ISP lo utilizan en base a que, si la IANA no ha asignado aún este direccionamiento, no tienen por qué tenerlas en consideración, pero cuidado con esto, ya que hace un par de semanas nos encontramos con una persona que no podía acceder a nuestra web desde Londres (Cable & Wireless), y el problema era absolutamente reproducible. Tras dedicarle un rato vimos que se debía a que un router de C & W estaba haciendo algo raro con nuestros paquetes. Casualmente, nuestro direccionamiento es relativamente nuevo (Salió de las listas Bogons en 2007). La respuesta fue un Thank you for your email. Please could you or your customer re-test and feedback?, y desde entonces nuestro direccionamiento era visible desde C & W. Mi opinión es que este ISP mantiene las redes bogon a mano y se les ha olvidado mantener actualizado algún router.

Legendaria

legendario, ria.

(De legenda).

1. adj. Perteneciente o relativo a las leyendas. Narración legendaria. Héroe legendario.

2. m. Libro de vidas de santos.

3. m. Colección o libro de leyendas de cualquier clase.

4. m. Despedida de soltero de Coto.

Viaje a Londres

Dado que se me han terminado los artículos que tenía pendientes de publicar y ahora toca escribir algo nuevo, he decidido escribir un artículo de relleno, para que tengáis algo sin ningún interés para leer.

El pasado 31 de Julio Pedro Laguna y yo nos fuimos a Londres seis días a ver como era aquello, y he de decir que me encantó. El Viernes 31 de Julio tras dejar las cosas en el hostal y recibir a una amiga de Pedro nos fuimos a las oficinas de last.fm dado que Nicklas Gummesson de tuenti me concertó una cita con Johan Oskarsson. Cuando llegamos nos enseñaron la oficina y nos presentaron a la gente, principalmente de backend y sistemas donde ahí pude conocer a Marc de Palol que había trabajado antes en el BSC y ahora se ocupa de sistemas Hadoop que utilizan para generación de gráficas, estadísticas de uso, análisis de logs y tests A/B. Ese día, lamentablemente un ingeniero de frontend dejaba la compañía por lo que había cervezas y vino para todos. Tras esto estuve hablando con el responsable de operaciones técnicas de last.fm que me explicó como monitorizaban sus sistemas, el número de servidores que tenían así como otras cosillas interesantes como qué hierro usaban, el tráfico que servían o el sistema de caché que utilizaban. Sinceramente, me esperaba que al ser un servicio de música a nivel mundial su tráfico fuese mucho mayor, pero he de decir a su favor que es una cifra para nada despreciable. Eso sí, aunque llevan funcionando desde casi cinco años tiene una jerarquía muy anarquica para mi gusto, algo que al parecer no ha cambiado desde la compra de CBS en Mayo de 2007.

Pasamos todo el fin de semana recorriendonos Londres, visitanto el Museo Británico, el London Bridge, el Big Ben, Harrods, etc, así como hacer una parada en The Brewmaster, un pub cerca de Leicester Square y pasar muy buenos momentos con españoles que están viviendo allí y sus amigos mayormente británicos.

Me llamaron muchas cosas la atención, como por ejemplo el precio del metro, que me pareció ligeramente caro. Yo definitivamente por tener la tarjeta de recuerdo, me compré una Oyster Card. En lo que a coches respecta me hizo gracia que la mayoría de los modelos de Opel se comercializan como Vauxhall, así como que los taxis sean todos de la marca LTI, con capacidad normalmente para cinco personas aparte del conductor y algunos de ellos incluyan diferentes canales de televisión, radio, etc. A los autobuses entras por cualquier puerta, sin ser necesariamente la de delante, al lado del conductor, asumiendo que vas a pagar con la Oyster y no escaquearte. En otras ciudades europeas esto va mucho más allá, incluso sin tornos en el metro, pero no deja de llamarme la atención esa confianza en el ciudadano. Mucha gente utiliza la bicicleta como método de transporte, así como el metro, dejando de lado el coche en la mayoría de las ocasiones.

Por otro lado, una noche que salimos a cenar fuera juntos por la zona de Old Street y en Brick Lane St. la cantidad de restaurantes indios era impresionante, así como la forma de captar clientes que paseaban por la calle, con relaciones públicas en las puertas como si de porteros de discoteca de tratasen, ofreciéndote las bebidas gratis a cambio de cenar en su restaurante. Al pagar la cena esta y otras veces me fijé que nunca se llevan la tarjeta de crédito, sino que la introduces en la máquina y tecleas el PIN de la tarjeta para autorizar el pago. He de comentar también el tema de la propina es de un 10% a un 12% aunque puedes exigir que la quiten de la factura y no pagarla, pero si el camarero te escupe, no te extrañe :D . EN un restaurante llamado Ed’s la camarera incluso se ofreció a hacernos fotos juntos. La propina se nota ¿verdad? En EEUU si no me equivoco la propina supone un 15% de la factura y es obligatoria ¿Me puede alguien confirmar esto?

Muchos supermercados abren hasta las 23:00, y si no te ha dado tiempo de ir a comprar algo tienes unas tiendas con unos grandes carteles que dicen Off License que abren las 24 horas. En mi opinión son mucho más comunes los supermercados de 24 horas allí que aquí en España.

El Viernes que era nuestro primer día quedamos con unos amigos por King Cross St., cerca de nuestro hostal y encontramos de casualidad un sitio llamado Camino donde vendían agua de Valencia, sidra del gaitero, carajillos, etc. Uno de los camareros era español. Otra cosa que me gustó, es que los periódicos tiene grapas, así como que algunos periódicos gratuitos se reparten de tarde en vez de solamente por la mañana. Pude leer el Londonpaper y Metro, y he de decir que con muchos temas son unos amarillistas.

Como no, nos fuimos al jodido centro centro comercial de Harrods donde en la sección de electrónica me compré la primera temporada de Two and a half men.  El homenaje que les han preparado al hijo de Mohamed y a Lady Di en una planta de Harrods requiere una mención. También estuvimos por las tiendas de Oxford St. y entramos en un Apple Store donde allí más que vender, predican. Nada comparado con las tiendas Apple de España.

En lo que a la fiesta respecta, de todo tipo, pero jamás he visto un fiestón tan bien montado en un piso privado como en el que estuve, ni el rollo de alquilarse una suite en un hotel con unos amigos para tomarse algo y luego irse a la discoteca de al lado. La gente los Viernes suele salir de trabajar e irse a tomar algo con los compañeros de trabajo al pub de al lado de la oficina, normalmente pintas de cerveza como es habitual. En cambio los Sábados la gente suele salir con sus amigos.

En definitiva me gustó mucho Londres, tanto que me planteo estar viviendo allí en un futuro, aunque no se si soportaré bien el tema del mal tiempo. Me han contado que en invierno la gente va a trabajar de traje y con botas por la rodilla, las cuales cambian por zapatos al llegar a la oficina a causa de las lluvias que se dan allí. Seguramente se me queda algo en el tintero, pero si así fuese… visitadlo, os gustará.

How to get the most bang for the buck (II)

La semana pasada hablábamos de aceleradores de PHP, algo que nos permitiría servir más peticiones por segundo con nuestros servidores web. Hoy hablaré de un parche llamado FatMM que aplicaremos a nuestras fuentes de PHP y que nos permitirá arañarle un poco de CPU a nuestros frontales.

Este parche cambia el comportamiento del gestor de memoria de PHP a la hora de reservar memoria, que en vez de reservar/liberar memoria al vuelo, reserva una determinada memoria a la hora de crear el hijo de PHP y aumenta esta cantidad de memoria si lo necesita. Al final esto permite ahorrar ciclos de CPU gracias a que ahora no tiene que hacer miles de alloc()s, dejando la CPU libre para hacer algo útil. Este ahorro de CPU se traduce en un mayor uso de memoria. Este parche es útil si sirves una página en PHP compleja, y no si sirves contenido estático o sencillos scripts en PHP. Este parche no nos ofrecerá tanto ahorro como APC, pero todo lo que sea arañar uso de CPU es bienvenido, ¿no?

Por defecto el tamaño de memoria reservado es de 64MB, que quizá sea un poco elevado. En la web del autor disponemos de un parche que modifica las fuentes de Apache para poder configurar el servidor web con la constante ZEND_FATMM al valor que deseemos. Lighttpd permite hacer esto a través de la opción bin-environment. ¿Cuál es el valor adecuado para nuestro servidor web? Te toca probar, y ver gráficas de CPU de tus frontales, pero hay que tener en cuenta que la memoria reservada, al contrario de la de APC, es independiente para cada hijo de PHP, por lo que si tienes reservado un segmento de memoria de 50MB y tienes 100 hijos de PHP, necesitarás 5GB de memoria fijos. Hay que añadir a esto la memoria reservada por APC, y la memoria máxima de cada proceso de PHP multiplicado por su número de hijos, teniendo en cuenta que quizá nos podamos permitir el lujo de hacer un poco de sobresuscripción de la memoria del sistema, basándonos en que es bastante improbable que tengas todos los hijos utilizados al mismo tiempo, consumiendo el máximo de memoria permitida a cada hijo de PHP, con el añadido de la memoria reservada por FatMM y APC.

Al fin y al cabo, es echar cuentas. Espero que os sea útil.

How to get the most bang for the buck

¿Cómo acelerar la ejecución de PHP? ¿Cómo ser capaz de servir más páginas por segundo? Este es uno de los retos a los que se enfrenta continuamente un administrador de sistemas en un entorno web con páginas dinámicas. Intentamos exprimir al máximo la infraestructura actual para no tener que desembolsar más dinero comprando nuevos servidores o utilizar más espacio en el CPD.

Desde hace años se vienen utilizando sistemas de caché en servidores web para ahorrar ciclos de CPU en la ejecución de PHP. Estos sistemas de caché funcionan precompilando el código y manteniéndolo pre-compilado en memoria, teniendo que compilar de nuevo el fichero PHP solamente si este cambia, algo que se averigua utilizando llamadas stat(), o bajo demanda, invalidando el objeto manualmente. El utilizar un acelerador de PHP puede hacer que tu servidor web sirva entre dos y cuatro veces más peticiones que sin él. Hay aceleradores de PHP para todos los gustos, cada uno con sus pros y sus contras. No obstante, no todos cubren las mismas necesidades, además de unos estar más maduros que otros. Yo personalmente, por la fase de desarrollo en la que se encuentra, prefiero APC, que además será incluido en el core de PHP6, lo que lo convertirá en el sistema de caché oficial para este lenguaje. Por otro lado, APC permite almacenar información en su memoria compartida, no solamente cachear los ficheros, por lo que si tienes determinada información que no cambia nunca y debe estar cacheada, es un buen sistema, además de fiable.

Lo bonito de APC es que lo instalas y empiezas a ver resultados, ya que seguramente el módulo esté habilitado por defecto, pero aún así tendrás que tunearlo un poco para sacarle toda la chicha que te puede ofrecer. No voy a entrar en esos detalles, pero la principal opción de configuración de PHP es la cantidad de memoria compartida donde almacenará los ficheros precompilados.

apc.shm_size = 32

Esta memoria es la que reserva el padre de PHP, no sus hijos, por lo que quizá te interese funcionar con una configuración compuesta por menos padres y más hijos para minimizar el uso de memoria en el servidor. Cuando la memoria reservada de APC comienza a alcanzar el 95% el segmento de memoria mostrará fragmentación, y dado que estamos alcanzando el límite de la memoria reservada podemos comenzar a tener errores 500 tras actualizar el código del servidor web, o en periodos de actividad intensa del sitio, por ejemplo. El paquete ofrece un fichero llamado apc.php que nos ofrece información avanzada del estado de APC. Es imprescindible echarle un vistazo para tener una visión general del estado de APC y no estar absolutamente ciego.

Errores 500 en servidores corriendo PHP+APC

Esta es vieja, pero si tu tráfico aumenta cada día más, quizá tengas este problema tarde o temprano, siempre y cuando estés usando PHP5 con la extensión APC 1.0.18. Si es así, vuestros servidores web mostrarán errores 500, y el culpable de todo esto es un bug grave de File Descriptors Leakage en esa versión, lo que hace que el servidor corriendo PHP como FastCGI no cierre los descriptores de fichero correctamente una vez abiertos. Podéis ver el número de descriptores abiertos por un proceso utilizando la siguiente orden:

ls -la /proc/8549/fd

En la versión 1.0.19 se soluciona el problema.

Shouting in the Datacenter

¿Habéis escuchado alguna vez que las máquinas de aire acondicionado del CPD si no están bien instaladas pueden producir vibraciones y degradar el rendimiento de los discos duros? Os dejo un interesante vídeo de Brendan Gregg de Sun donde nos muestra las consecuencias de las vibraciones en un sistema de almacenamiento.

Parámetro open_files_limit en MySQL

Hace unos días me encontré con una base de datos de pruebas que mostraba un curioso error mientras hacía una pequeña copia de una base de datos con mysqldump. El error en cuestión era:

mysqldump: Got error: 1017: Can’t open file: ‘*.frm’ (errno: 24) when using LOCK TABLE.

Eso ocurre debido a los valores por defecto de configuración de MySQL establecen la opción open_files_limit a 1024, y cuando tienes múltiples bases de datos con muchas tablas, además de las tablas temporales que crea el motor de base de datos, no es suficiente. Yo, para evitar caer en límites absurdos establezco este parámetro a 50000. Tras cambiarlo debemos reiniciar la base de datos para que este cambio surja efecto.

¿Se ha convertido OVH en el hosting preferido de las mafias?

Hace año y algo fue cuando contraté mi servidor dedicado SuperPlan 2008 en OVH dado lo barato que era y los servidores más cucos que ofrecían. A día de hoy ya no tengo mis cosas ahí, ya que mi blog está alojado en WordPress y el correo en GMail, algo que decidí hace un par de meses dada mi falta de tiempo. A día de hoy me he enfrentado en más de cincuenta ocasiones a todo tipo de páginas que suplantan la identidad de sitios web, ataques de denegación de servicio desde servidores de su red, etc, casi siempre alojados en curiosamente, servidores Kemsirve de 23€ al mes. ¿Se están moviendo las mafias a este tipo de redes o por el contrario estamos tratando con gente que no tienen una botnet bajo su control? Según un comunicado oficial de la compañía, (tercer párrafo) se ha establecido un sistema de validación de la compra a causa de la cantidad de servidores dedicados que se pagan con tarjetas de crédito robadas.

SysRq trigger

Hace mucho tiempo hice unas menciones a SysRq (Aquí la documentación oficial), pero gracias a un compañero de trabajo he descubierto el SysRq trigger, que nos permitirá ejecutar las acciones de SysRq en remoto mediante escrituras en el /proc.

echo h > /proc/sysrq-trigger; dmesg | tail -n 1
SysRq : HELP : loglevel0-8 reBoot tErm Full kIll saK showMem Nice powerOff showPc show-all-timers(Q) unRaw Sync showTasks Unmount shoW-blocked-tasks

Veamos un ejemplo de cómo reiniciar el servidor:

echo s > /proc/sysrq-trigger; echo b > /proc/sysrq-trigger

Esto sincronizará los sistemas de ficheros montados y reiniciará el servidor. Útil cuando sabes que el estado del servidor es irrecuperable sin un botonazo, y un reboot de toda la vida  no solventa nada.

Un saludo,

Entradas siguientes »


Las opiniones reflejadas en este blog son personales o ni siquiera son opiniones, y bajo ningún concepto representan las estrategias, opiniones o posturas de mi empresa actual, ni de ninguna en las que he trabajado, así como tampoco de ninguno de los clientes o proveedores de todas ellas.
La información se proporciona como está, sin garantías de ninguna clase, y no otorga ningún derecho. Los comentarios pertenecen a sus autores y bajo ningún concepto el autor del blog se hará responsable de los mismos.

Categorías

Archivos