Fragmento libro “Dios y el estado”

Este post es un off-topic, pero me he tropezado con este libro, el cual leí hace mucho tiempo y quería compartir unas lineas con vosotros.

Este fragmento pertenece al libro Dios y el estado de Mijaíl Bakunin del cual hice un trabajo, allá por los años de 4º de la ESO. Recuerdo perfectamente que el profesor de filosofía nos puso un trabajo de final de curso (me llevaba muy bien con él por cierto, como mola tener profesores que les guste su trabajo) y nos dió unos temas a elegir con un material de unas 20-30 hojas por tema.

Sinceramente no recuerdo si fue porque esos temas no me interesaban o porque sencillamente me apetecía hacer el trabajo sobre este libro, pero se lo propuse y coló jjj. Si, un tostón de 200 hojas vs 20 jjj pero la verdad es que fue muy agradable (y densa sobretodo) su lectura.

Lo del zapatero y el arquitecto… que opinais ?

Ahí va el fragmento:

“¿Se desprende de esto que rechazo toda autoridad? Lejos de mí ese pensamiento. Cuando se trata de zapatos, prefiero la autoridad del zapatero; si se trata de una casa, de un canal o de un ferrocarril, consulto la del arquitecto o del ingeniero. Para esta o la otra ciencia especial me dirijo a tal o cual sabio. Pero no dejo que se impongan a mí ni el zapatero, ni el arquitecto ni el sabio, les escucho libremente y con todo el respeto que merecen su inteligencia, su carácter, su saber, pero me reservo mi derecho incontestable de critica y de control. No me contento con consultar una sola autoridad especialista, consulto a varias; comparo sus opiniones y elijo la que me parece más justa. Pero no reconozco autoridad infalible, ni aun en las cuestiones especiales; por consiguiente, no obstante el respeto que pueda tener hacia la honestidad y la sinceridad de tal o cual individuo, no tengo fe absoluta en nadie. Una fe semejante sería fatal a mi razón, a mi libertad y al éxito mismo de mis empresas; me transformaría inmediatamente en un esclavo estúpido y en un instrumento de la voluntad y de los intereses ajenos.

Si me inclino ante la autoridad de los especialistas y si me declaro dispuesto a seguir, en una cierta medida y durante todo el tiempo que me parezca necesario, sus indicaciones y aun su dirección, es porque esa autoridad no me es impuesta por nadie, ni por los hombres ni por dios. De otro modo la rechazaría con horror y enviaría al diablo sus consejos, su dirección y su ciencia, seguro de que me harían pagar con la pérdida de mi libertad y de mi dignidad los fragmentos de verdad humana, envueltos en muchas mentiras, que podrían darme.

Me inclino ante la autoridad de los hombres especiales porque me es impuesta por la propia razón. Tengo conciencia de no poder abarcar en todos sus detalles y en sus desenvolvimientos positivos más que una pequeña parte de la ciencia humana. La más grande inteligencia no podría abarcar el todo. De donde resulta para la ciencia tanto como para la industria, la necesidad de la división y de la asociación del trabajo. Yo recibo y doy, tal es la vida humana. Cada uno es autoridad dirigente y cada uno es dirigido a su vez. Por tanto no hay autoridad fija y constante, sino un cambio continuo de autoridad y de subordinación mutuas, pasajeras y sobre todo voluntarias.

Esa misma razón me impide, pues, reconocer una autoridad fija, constante y universal, porque no hay hombre universal, hombre que sea capaz de abarcar en esa riqueza de detalles (sin la cual la aplicación de la ciencia a la vida no es posible), todas las ciencias, todas las ramas de la vida social. Y si una tal universalidad pudiera realizarse en un solo hombre, y quisiera prevalerse de ella para imponernos su autoridad, habría que expulsar a ese hombre de la sociedad, porque su autoridad reduciría inevitablemente a todos los demás a la esclavitud y a la imbecilidad. No pienso que la sociedad deba maltratar a los hombres de genio como ha hecho hasta el presente. Pero no pienso tampoco que deba engordarlos demasiado, ni concederles sobre todo privilegios o derechos exclusivos de ninguna especie; y esto por tres razones: primero, porque sucedería a menudo que se tomaría a un charlatán por un hombre de genio; luego, porque, por ese sistema de privilegios, podría transformar en un charlatán a un hombre de genio, desmoralizarlo y embrutecerlo, y en fin, porque se haría uno un déspota.

Resumo. Nosotros reconocemos, pues, la autoridad absoluta de la ciencia, porque la ciencia no tiene otro objeto que la reproducción mental, reflexiva y todo lo sistemática que sea posible, de las leyes naturales inherentes a la vida tanto material como intelectual y moral del mundo físico y del mundo social; esos dos mundos no constituyen en realidad más que un solo y mismo mundo natural.”

Posted in Uncategorized | Tagged | 1 Comment

Mañana ESNOG GORE 7

Mañana 7 de Mayo , tendrá lugar en las oficinas de BT España, en el edificio Herre, la séptima edición de la reunión del “Grupo de Operadores de Red Españoles” o GORE.

El tema estrella de esta edición será IPv6, ya que casi el 80 por ciento de las charlas tiene relación con alguna cuestión relacionada con IPv6.

El invitado estrella será Geoff Huston, Chief Scientist de APNIC. Siempre es un placer escuchar a personas con una visión y un background como tiene este experto de Internet, que tantos estudios y aportaciones relacionadas con Internet ha hecho a lo largo de su carrera.

Esta vez iré en calidad de mero espectador, pero tengo muchas ganas de que llegue el momento del  evento, para juntarme con gente a la que aprecio mucho y conocer en persona a otros que he conocido estos últimos meses en la Twittesfera ;)

Aquí la agenda del evento.

Nos vemos!

Posted in Uncategorized | Tagged , , | Leave a comment

JNCIA-JUNOS aprobado!

Ayer aprobé el examen JN0-101 JNCIA-JUNOS.

Ha sido un “estudio express” y con buenos resultados! ;) 65 preguntas multiples que con el temario del Fast Track es perfectamente superable.

No se si seguiré de momento con el programa de certificaciones de Juniper, ya que el JNCIS-ENT lo veo asequible, pero son muchas cosas las que están en cola con mejor DSCP jjj

A ser felices!!

Posted in Uncategorized | Tagged , , | 9 Comments

Un vistazo al enemigo

Bueno, el enemigo para Cisco!!

En este mundo de las comunicaciones las cosas evolucionan y cambian muy rápido. De todos es sabido que el market share de Cisco es brutal, de entorno al 85% en algunos sectores del mundo del networking.

Aún así, la verdad es que en ciertos ámbitos ese dominio “casi absoluto” se está democratizando (para el bien de todos) y el pastel se está repartiendo entre fabricantes como Alcatel-Lucent (también en el mundo IP, no solo en transmisión), Huawey y los que más le están tocando la moral ultimamente a Cisco, Juniper.

Tengo datos contrastados, de que importante operadoras y carriers internacionales están migrando o han migrado su infraestructura o parte de ella de Cisco a Juniper. Motivos económicos ? técnicos ? En cualquier caso son empresas que tienen muuuucho dinero, y no juegan con tonterías, quieren que su red funcione, el ping es su negocio ;)

Llevo un par de meses siguiendo los movimientos de Juniper y también observando la demanda en el mercado laboral actual, y es cuanto menos interesante y muy recomendable estar formado y conocer bien este fabricante.

Examinando las certificaciones disponibles, he optado por empezar por la más básica JNCIA-JUNOS. Estoy utilizando el programa de certificaciones Fast Track de  Juniper y el material que ellos mismos proveen.

En el temario hacen mucho hincapié en su sistema operativo, JUNOS, y a primera vista está a años luz de la “IOS de toda la vida” de Cisco. Solo por la orden “commit” te hace pensar… coño!! estos tíos hacen cosas sexys y con cabeza!!

En breve me examino de la certificación, ya que estoy haciendo un estudio express y muy comprimido en el tiempo.

Como nota, mira que son pobres estos de Juniper que basan su SO en FreeBSD, eso del software libre es para pobres!! jjj

A cuidarse!

Posted in Uncategorized | Tagged , , , | Leave a comment

CCIP BGP passed!

Ayer aprobé el examen 642-661 BGP del CCIP, el primero de 3 para terminar la certificación ;)

A diferencia de otros exámenes de Cisco que halla hecho hasta ahora, este se centraba en un único tema (BGP) y la verdad es que se hace mucho más cómodo a la hora de estudiar. El examen se compuso de 61 preguntas en la que había 3 labs bastante interesantes y no muy complicados.

El material que he utilizado ha sido “Internet Routing Architectures”, un libro agradable de leer y muy claro, que cubre todos los conceptos necesarios para superar el examen sin problemas.

Ya tenía cierta experiencia con BGP pero me ha servido mucho para reforzar funcionalidades como los route-reflectors y confederations y aprender cosas nuevas como las particularidades en la agregación de prefijos, local-as, private-as…

He mentido, ya que dije que hasta el verano no iba a hacer ningún examen más jjj, pero no me he resistido, el networking llama!

Ya solo queda el examen de QOS y MPLS para terminar la certificación, todo con la intención de llegar lo mas preparado posible al CCIE, no por el CCIP en sí ;)

A cuidarse!

Posted in Certificaciones, Uncategorized | Tagged , , , , | 3 Comments

Juniper, QFabric Demo

Qué bello…

Posted in Uncategorized | Tagged , | Leave a comment

CCDP ARCH passed!

El pasado lunes aprobé el examen ARCH, el último examen que me quedaba para terminar el CCDP, así que ya está, otra pa la saca!

El temario del examen muy interesante en general y sobre todo variado, metiendo temas nuevos para mí como las redes SAN y almacenamiento fibre channel. En la sección de seguridad se tratan por un lado toda la infraestructura de NAC de Cisco, IDS/IPS y por otro, firewalls PIX/ASA, pero sobre todo firewalls sobre contextos virtuales con los módulos FWSM de los Catalyst 6500 Series, con los que suelo pegarme en mi día a día. Otra parte importante para el examen, es la parte de balanceadores (SLB, ACE…).

Todas las tecnologías que se ven en esta certificación, son analizadas sobre todo desde un punto de vista de diseño y integración dentro de un flujo de tráfico y especialmente en un entorno de datacenter.

Había partes que eran un poco más duras de estudiar y no tan “divertidas” como la parte de WiFi que era un poco “nebulositica” y muy generalista y la típica parte de los distintos modulos de interconexión de red (E-commerce, Entreprise edge, Core …) que tantas veces se repiten entre las distintas certificaciones.

Ahora hasta finales de Junio estaré bastante liado con la uni (quiero estarlo y no distraerme…) pero en verano me espera el CCIP (3 examenes) y quizás meter el morro al enemigo de azul, los chicos de Juniper.

Pura vida!

Posted in Uncategorized | Tagged , , , | 6 Comments

BGP Unequal-Cost Load-Balancing

Hace unos días me encontré con la necesidad de balancear el tráfico de salida de un Sistema Autónomo. Este AS hacía peering con otro mediante 2 enlaces, uno de mayor capacidad que el otro.

Con esta casuística, se planteaba un problema ya que no se puede hacer un balanceo “puro y duro” (multipath) ya que en caso de que hubiese una tasa de tráfico importante, perfectamente podría ocurrir que el enlace menor se saturase, mientras el enlace con mayor caudal seguiría “tranquilo”. Si esto ocurriese, parte del tráfico tendría problemas de saturación y so no es muy recomendable…

La única solución (elegante) es hacer un balanceo de carga proporcional al ancho de banda de los enlaces hacia nuestro Upstream Provider.

Para ver un ejemplo práctico, utilizaremos la siguiente topología:

  • Tenemos 2 AS – 65534 y 65535, ambos de rango privado
  • Nuestro AS y el que nosotros controlaremos será el 65534
  • El objetivo es balancear el tráfico que pase por AS2R1 originado por PC2 hacia el AS 65535, entre los 2 enlaces que tienen AS2R2 y AS2R3 de una manera proporcional a su ancho de banda
  • Dentro de cada sistema autónomo correrá iBGP y PC1 y PC2 accederán tendrán como GW por defecto AS1R6 y AS2R1 respectivamente
  • Teniendo en cuenta que solamente tenemos capacidad administrativa del AS 65534, solamente se mostrarán las configuraciones de este AS

Y ahora…

¿Cómo le indicamos a AS2R1 que tiene que usar 2 caminos distintos para llegar a las rutas de AS 65535 pero teniendo en cuenta (y actuando en consecuencia) de que son enlaces con distintos ancho de banda ?

La solución nos la da una Extended Community de BGP llamada “Link Bandwidth” o “BGP DMZlink”. Esta es una “community no-transitiva” fuera de nuestro AS, luego se quedará dentro de nuestro AS, entre nuestros vecinos iBGP, que es lo que nos interesa.

¿ Pero como anunciamos ese valor a AS2R1 ? A continuación se muestra la configuración de la parte BGP de AS2R2 y AS2R3.

AS2R2:
router bgp 65534
no synchronization
bgp log-neighbor-changes
bgp dmzlink-bw
network 10.200.2.0 mask 255.255.255.252
network 172.24.0.0 mask 255.255.255.252
neighbor 10.200.2.1 remote-as 65534
neighbor 10.200.2.1 description AS2R1
neighbor 10.200.2.1 next-hop-self
neighbor 10.200.2.1 send-community both
neighbor 172.24.0.1 remote-as 65535
neighbor 172.24.0.1 description AS1R4
neighbor 172.24.0.1 dmzlink-bw
no auto-summary

interface Serial1/0
bandwidth 25000

ip address 172.24.0.2 255.255.255.252
serial restart-delay 0
no cdp enable
end

—————————————

AS2R3:
router bgp 65534
no synchronization
bgp log-neighbor-changes
bgp dmzlink-bw
network 10.200.2.4 mask 255.255.255.252
network 172.24.0.4 mask 255.255.255.252
neighbor 10.200.2.5 remote-as 65534
neighbor 10.200.2.5 description AS2R1
neighbor 10.200.2.5 next-hop-self
neighbor 10.200.2.5 send-community both
neighbor 172.24.0.5 remote-as 65535
neighbor 172.24.0.5 description AS1R5
neighbor 172.24.0.5 dmzlink-bw
no auto-summary

interface FastEthernet0/0
bandwidth 100000

ip address 172.24.0.6 255.255.255.252
duplex auto
speed auto
no cdp enable
end

—————————————

  • bgp dmzlink-bw: Habilitamos la feature BGP DMZLink
  • neighbor x.y.z.w send-community both: mandamos las communities standar y extended al vecino (solamente con las extended valdría)
  • neighbor x.y.z.w dmzlink-bw: Se propagará el valor de DMZ Link Bandwitdth, calculado a partir del ancho de banda configurado en la interfaz que se use para llegar al neighbor x.y.z.w
  • Configuramos el bandwidth adecuado en las interfaces que nos dan salida de nuestro AS. Serial 1/0 en el caso de AS2R2 y Fa 0/0 en el caso de AS2R3

Ya solo quedaría configurar el router interno AS2R1.

AS2R1:
router bgp 65534
no synchronization
bgp log-neighbor-changes
bgp dmzlink-bw
network 10.200.2.0 mask 255.255.255.252
network 10.200.2.4 mask 255.255.255.252
network 192.168.2.0
neighbor 10.200.2.2 remote-as 65534
neighbor 10.200.2.2 description AS2R2
neighbor 10.200.2.6 remote-as 65534
neighbor 10.200.2.6 description AS2R3
maximum-paths ibgp 2
no auto-summary

  • bgp dmzlink-bw: Habilitamos BGP DMZlink para “hacer caso” a las extended communities anunciadas por AS2R2 y AS2R3
  • maximum-paths ibgp 2: Habilitamos el multipathing para que se metan 2 gateways como máximo para un mismo destino (1 por efecto)

Verificación

Analizamos la tabla de enrutamiento y CEF de AS2R1 con respecto a la red 192.168.1.0/24 que es una red del AS 65535.

AS2R1#sh ip route 192.168.1.0
Routing entry for 192.168.1.0/24
Known via "bgp 65534", distance 200, metric 0
Tag 65535, type internal
Last update from 10.200.2.6 00:36:01 ago
Routing Descriptor Blocks:
10.200.2.6, from 10.200.2.6, 00:36:01 ago
Route metric is 0, traffic share count is 4
AS Hops 1
Route tag 65535
* 10.200.2.2, from 10.200.2.2, 00:36:01 ago
Route metric is 0, traffic share count is 1
AS Hops 1
Route tag 65535

—————————————

AS2R1#sh ip cef 192.168.1.0
192.168.1.0/24, version 52, epoch 0, per-destination sharing
0 packets, 0 bytes
via 10.200.2.6, 0 dependencies, recursive
traffic share 4
next hop 10.200.2.6, FastEthernet1/0 via 10.200.2.6/32
valid adjacency
via 10.200.2.2, 0 dependencies, recursive
traffic share 1
next hop 10.200.2.2, FastEthernet0/0 via 10.200.2.2/32

valid adjacency
0 packets, 0 bytes switched through the prefix
tmstats: external 0 packets, 0 bytes
internal 0 packets, 0 bytes

—————————————

Tal y como podemos observar, tanto en la tabla de enrutamiento como en la tabla CEF, existe un “traffic share” de 1-4. Esto quiere decir que de 5 paquetes (depende el algoritmo de load balancing aplicado), 4 irán por un sitio y el quinto por otro y volver a empezar, 4-1 4-1… Si os fijais, el ancho de banda configurado en la interfaz Serial 1/0 es 4 veces menor que la de la Fa 0/0. Hace justo lo que se queríamos, un balance de carga proporcional al ancho de banda!

Veamos que cuenta la database de BGP sobre la red 192.168.1.0

AS2R1#sh ip bgp 192.168.1.0
BGP routing table entry for 192.168.1.0/24, version 42
Paths: (2 available, best #1, table Default-IP-Routing-Table)
Multipath: iBGP
Not advertised to any peer
65535
10.200.2.2 from 10.200.2.2 (172.24.0.2)
Origin IGP, metric 0, localpref 100, valid, internal, multipath, best
DMZ-Link Bw 3125 kbytes
65535
10.200.2.6 from 10.200.2.6 (172.24.0.6)
Origin IGP, metric 0, localpref 100, valid, internal, multipath
DMZ-Link Bw 12500 kbytes

Podemos ver que tenemos el valor “DMZ-Link Bw” especificado en Kbytes, es el valor que hayamos puesto con el comando “bandwidth” dividido entre 8.

  • 100000 kbit / 8 = 12500 Kbytes
  • 25000 kbit / 8 = 3125 Kbytes

Y finalmente la prueba mágica, ping desde PC2 a PC1 con un “record route” para ver el camino del paquete ICMP.

PC2#ping
Protocol [ip]:
Target IP address: 192.168.1.100
Repeat count [5]: 10
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface:
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]: r
Number of hops [ 9 ]: 5
Loose, Strict, Record, Timestamp, Verbose[RV]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 192.168.1.100, timeout is 2 seconds:
Packet has IP options: Total option bytes= 23, padded length=24
Record route: <*>
(0.0.0.0)
(0.0.0.0)
(0.0.0.0)
(0.0.0.0)
(0.0.0.0)

Reply to request 0 (40 ms). Received packet has options
Total option bytes= 24, padded length=24
Record route:
(192.168.2.100)
(10.200.2.1)        *1
(172.24.0.6)
(10.200.1.6)
(192.168.1.1)
<*>
End of list

Reply to request 1 (56 ms). Received packet has options
Total option bytes= 24, padded length=24
Record route:
(192.168.2.100)
(10.200.2.5)          1
(172.24.0.2)
(10.200.1.2)
(192.168.1.1)
<*>
End of list

Reply to request 2 (36 ms). Received packet has options
Total option bytes= 24, padded length=24
Record route:
(192.168.2.100)
(10.200.2.5)          2
(172.24.0.6)
(10.200.1.6)
(192.168.1.1)
<*>
End of list

Reply to request 3 (28 ms). Received packet has options
Total option bytes= 24, padded length=24
Record route:
(192.168.2.100)
(10.200.2.5)         3
(172.24.0.6)
(10.200.1.6)
(192.168.1.1)
<*>
End of list

Reply to request 4 (8 ms). Received packet has options
Total option bytes= 24, padded length=24
Record route:
(192.168.2.100)
(10.200.2.5)          4
(172.24.0.6)
(10.200.1.6)
(192.168.1.1)
<*>
End of list

Reply to request 5 (16 ms). Received packet has options
Total option bytes= 24, padded length=24
Record route:
(192.168.2.100)
(10.200.2.1)          *1
(172.24.0.6)
(10.200.1.6)
(192.168.1.1)
<*>
End of list

Reply to request 6 (20 ms). Received packet has options
Total option bytes= 24, padded length=24
Record route:
(192.168.2.100)
(10.200.2.5)         1
(172.24.0.2)
(10.200.1.2)
(192.168.1.1)
<*>
End of list

Reply to request 7 (24 ms). Received packet has options
Total option bytes= 24, padded length=24
Record route:
(192.168.2.100)
(10.200.2.5)          2
(172.24.0.6)
(10.200.1.6)
(192.168.1.1)
<*>
End of list

Reply to request 8 (16 ms). Received packet has options
Total option bytes= 24, padded length=24
Record route:
(192.168.2.100)
(10.200.2.5)          3
(172.24.0.6)
(10.200.1.6)
(192.168.1.1)
<*>
End of list

Reply to request 9 (16 ms). Received packet has options
Total option bytes= 24, padded length=24
Record route:
(192.168.2.100)
(10.200.2.5)          4
(172.24.0.6)
(10.200.1.6)
(192.168.1.1)
<*>
End of list

Success rate is 100 percent (10/10), round-trip min/avg/max = 8/26/56 ms

Como podemos ver en el output del comando, el primer paquete va a través del router 10.200.2.1 (irá por la Serial) y los siguientes 4 por 10.200.2.5 (Fa 0/0) y vuelta a empezar. It works!

Happy BGP-ing!!

Posted in Uncategorized | Tagged , , , , | 3 Comments

Proyecto CHAT-BGP

Llevo tiempo con  una idea en la cabeza. Un día leyendo sobre MP-BGP y atributos BGP, se me ocurrió el hacer una prueba de concepto sobre los atributos transitivos, más allá de marcar una ruta o usarlo en un route-map. Comprobar que estos atributos son transitivos “de verdad” jjj.

Pensé… que si estuviese aislado del planeta, en mi CPD, conectado a mi router frontera y quisiera hablar con un amigo mío que estuviese un par de Sistemas Autonomos mas allá…

¿ Por qué no usar BGP para comunicarme con él ?

Jajaj, si lo sé. SSH, IRC, XMPP, teléfono… pero eso sería “lo fácil” y que mejor manera de aprender algo que jugando con ello e implementar algo “no hecho antes” (creo). Un poco de espíritu hacker joder!

Resumiendo, tengo intención de desarrollar un sistema de chat basándome en los atributos transitivos de BGP y ver como afecta a las diferentes implementaciones, como de bien traspaso routers Cisco, Juniper, Quagga en Linux, OpenBGPD en OpenBSD…

Como no tengo alma de developer, me basaré en librerías que implementan parte del protocolo BGP que necesito, y de paso no reinvento la rueda. Aún estoy por decidirme entre una hecha en Perl y otra en Python. Estas librerías las utilizaría para la inyección de los datos y recibirlos, luego con un poco de scripting haremos algo que parsee datos y haga un poco de magia.

Son bastantes cosas las que tengo entre medias antes de ponerme a ello (certificaciones Cisco, módulo, universidad), pero ya he hecho alguna prueba nocturna y la cosa compila. Espero ponerme a finales de Febrero con ello. ;)

Los RFCs que tendremos que escudriñar serán los siguientes:

Ya os comentaremos los progresos en próximos posts ya que en esta frikada me ayudará @ioc32

Saludos!!


Posted in Uncategorized | Tagged , , , | 2 Comments

¿ Qué son los IXP ?

Aquí os dejo un video divulgativo de Euro-IX en que se habla sobre como funciona Internet, y el papel de los IXP (Internet eXchange Points) en su funcionamiento.

Merece la pena, disfrutadlo!

Posted in Uncategorized | Tagged , , | Leave a comment