Libro: Python para Todos

Empezare con una nueva categoría en esta pagina para compartir recursos siempre y cuando la licencia lo permita.

Y para esta ocasión les comparto un libro para empezar a programar en Python, realmente un lenguaje con bastante uso en distintas categoría de la industria pero que es fácil de leer.

Python para todos de Raúl González Duque lo puedes descargar aquí:

Solo Notas: IS-IS Hello

Para empezar IS-IS es Intermediate System to Intermediate System. Es un protocolo de enrutamiento similar a OSPF pero antes de hacer la comparación, veamos algunas cosas.
Bajo la terminología ISO, Intermediate System es Router y un End System es Host (Si también los host puede hablar IS-IS, asi como también Windows tiene RIP) por lo tanto la comunicación entre dos routers es IS-IS, Router a Host es IS-ES y asi. Un detalle no menor es que IS-IS no trabaja bajo la capa IP como OSPF, RIP, EIGRP, etc si no que posee su propio protocolo Capa 3 llamado CLNS lo cual permite mucha versatilidad en descubrir vecinos sin IP (un uso seria FabricPath).

Ahora comparemos con OSPF:

  • Ambos trabajan con una Base de Datos (ahora BBDD) de enlace (Link State)
  • Ambos trabajan con el algoritmo SPF
  • Ambos trabajan con Áreas
  • Ambos sumarizan entre Areas.
  • Ambos son de tipo Classless
  • En una Red Broadcast se elige un Router Designado.
  • Ambos tienen capacidad de autenticación.

Dicho eso, empezamos a detallar IS-IS:

IS-IS trabaja con dos niveles la cual hacen las funciones de Areas, Un Router L1 tendrá conocimiento de su misma Área, no conoce rutas de un router L2. Un router L2 conocerá rutas de Backbone es decir de otros Router que sean L2 y estas pueden estar o no en la misma Area. Un router L1/L2 poseen ambas BBDD y tiene dos vecindades uno como Tipo L1 y otro tipo L2.

  • Los L1 puede hacer vecindad con otro L1 en la misma Área.
  • un L2 puede hacer vecindad con otro L2 este o no en la misma Área.
  • Un L1/L2 publica una default en una Área L1.

IS-IS trabaja con paquete llamados PDU y tiene el siguiente formato:

Paquete PDU en IS-IS

Como veras es el encabezado de todo paquete IS-IS para la diferenciarlo depende del Tipo pero en resumen son las siguientes:

  • IIH o (IS-IS HELLO)
  • LSP
  • SNP

Los IIH existen tres tipos IIH, los LAN L1, LAN L2 y P2P IIH. Un Router puede tener dos vecindades en la misma interfaz si ambos son Tipo L1/L2, lo cual no es optimo pero es posible, y como podrán imaginarse LAN quiere decir que son redes tipo Broadcast y P2P para punto a punto (dah!), son los únicos dos tipos de redes que hay en IS-IS. Existen otros 3 tipos de Hello que no tocare en esta entrada (los ESH y ISH para los End System).

En desarrollo…

Mantén Seguro tu PC bloqueando estas IP

Es inevitable permanecer seguros hoy en día, cada día enfrentamos nuevos desafíos y nuevas formas en caer para secuestrar un equipo y/o información que tengamos. Los delincuentes hoy en día nunca paran de buscar nuevas formas de conseguir mas publico.

Sin embargo nosotros los usuarios tenemos la responsabilidad de mantenernos informados y agregar las defensas necesarias para no caer en la trampa.

Hoy les comparto un pequeño Script en Windows para bloquear las IP maliciosas a la fecha que se pueden bloquear, ya que dichas IPs fueron catalogadas como IPs para uso malicioso. De esta manera agregamos un defensa adicional independientemente de cualquier App de seguridad poseas instalado o para aquellas personas que no usan App adicionales de Firewall y Antivirus como yo, es genial.

El Script es bastante sencillo, solo bloquea la entrada y salida que intente conectar a esas IPs, asi que cualquier URL que accidentalmente hagamos click se bloquea inmediatamente. Esto lo logra agregando reglas en el Firewall de Windows. Actualmente fue probado en Windows 10 y sin ningún tipo de problema. Aclaro que esto es una capa adicional a tus medidas de seguridad, esto no reemplaza al Antivirus o Firewall que poseas.

Para empazar debemos permitir la ejecución de Script en Windows 10, para ello tenemos que abrir la consola PowerShell en modo administrador y ejecutar:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

De esta manera se permite la ejecución de Script en Windows y ahora debemos descargar el siguiente Script, si por alguna razón la pagina no se encuentra disponible comparto el Script:

# Script by Kevin Feenstra (Kevin@remixed.nl)
# Please keep in mind that this script isn't a replacement for antivirus software or a firewall appliance!
# This script is a extra layer of defense by blocking inbound and outbound traffic to your computer based on malicious ip lists

# Feedback? or just happy with my script, please let me know; kevin@remixed.nl


#Retrieve IP Blacklist from malc0de and safe copy daily (if you don't want to keep track of your list changes don't set the date in the filename).
#You might want to change the destination folder.
$SetDate = Get-Date -format "yyyyMMdd"
$source = "http://malc0de.com/bl/IP_Blacklist.txt"
$destination = "c:\temp\IP_blacklist_$SetDate.txt" 
Invoke-WebRequest $source -OutFile $destination

#regex to make sure we only retrieve the ip's from the file
$regex = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
$maliciousIPs = get-content -Path $destination | Select-String $regex
$maliciousIPs.count

#Create outbound rules for all ip's in blacklist


foreach ($maliciousIP in $maliciousIPs){
    #Checking if rule is exists
    $counterob++
    Write-Progress -Activity 'Processing IPs outbound' -CurrentOperation $maliciousIP -PercentComplete (($counterob / $maliciousIPs.count) * 100)
    $checkrule = Get-NetFirewallRule -Name "Network Security Outbound Blacklist $maliciousIP" -erroraction 'silentlycontinue'
    if ($checkrule -ne $Null) {Write-Host "Rule exists, skipping " -nonewline; Write-Host "$maliciousIP" -foregroundcolor green -backgroundcolor black -nonewline; Write-Host " !!"}

        #create rule
        else {
        Write-Host "Creating new rule for " -nonewline; Write-Host "$maliciousIP" -foregroundcolor red -backgroundcolor yellow -nonewline; Write-Host " !!"
        New-NetFirewallRule -Name "Network Security Outbound Blacklist $maliciousIP"  -Description "Block outbound traffic to malicious IP's" -Profile Any -Direction Outbound -Action Block -DisplayName "Network Security Outbound Blacklist $maliciousIP" -Group "NSOB" -RemoteAddress $maliciousIP}
}


#Create inbound rules for all ip's in blacklist

foreach ($maliciousIP in $maliciousIPs){
    #Checking if rule is exists
    $counterib++
    Write-Progress -Activity 'Processing IPs inbound' -CurrentOperation $maliciousIP -PercentComplete (($counterib / $maliciousIPs.count) * 100)
    $checkrule = Get-NetFirewallRule -Name "Network Security Inbound Blacklist $maliciousIP" -erroraction 'silentlycontinue'
    if ($checkrule -ne $Null) {Write-Host "Rule exists, skipping " -nonewline; Write-Host "$maliciousIP" -foregroundcolor green -backgroundcolor black -nonewline; Write-Host " !!"}

        #create rule
        else {
        Write-Host "Creating new rule for " -nonewline; Write-Host "$maliciousIP" -foregroundcolor red -backgroundcolor yellow -nonewline; Write-Host " !!"
        New-NetFirewallRule -Name "Network Security Inbound Blacklist $maliciousIP"  -Description "Block inbound traffic to malicious IP's" -Profile Any -Direction inbound -Action Block -DisplayName "Network Security Inbound Blacklist $maliciousIP" -Group "NSIB" -RemoteAddress $maliciousIP}
}



#Failsafe: uncomment rules to delete rules created by this script
# Delete inbound Blacklist rules
#Get-NetFirewallRule -group NSIB | Remove-NetFirewallRule
# Delete outbound Blacklist rules
#Get-NetFirewallRule -group NSOB | Remove-NetFirewallRule

Y no olviden bloquear nuevamente la ejecución de Scripts en Windows 10:

Set-ExecutionPolicy -ExecutionPolicy Restricted
Logo Cisco

Nuevas certificaciones

Que tal!

Hoy tenemos noticias y actualizaciones en las certificaciones en Cisco, Siempre para mejor! Hoy les cuento que por fin Cisco agrega Network Programmability, Network Automation, API, Python como un nuevo track en las certificaciones de Cisco, vamos que es excelente.

Un CCNA para todos.

Así, Cisco elimina los diferentes tipos de CCNA para cada track. Decidle adiós. Lo bueno, no mas pre-requisitos. Lo malo, para los que tienen varios CCNA. Asi que la siguiente lista sera reemplazada por un único CCNA, vamos que son todos.

  • CCNA Cloud
  • CCNA Collaboration
  • CCNA Cyber Ops
  • CCNA Data Center
  • CCDA
  • CCNA Industrial
  • CCNA Routing and Switching
  • CCNA Security
  • CCNA Service Provider
  • CCNA Wireless 

Todos los cambios con respecto a las certificaciones harán efecto a partir de 24 de Febrero del 2020.

Specialist, un nuevo nivel

Vamos desde siempre hay certificaciones Specialist pero ahora tendran mucho mas protagonismo como un nivel antes para ser CCNP, lo interesante certificaciones especificas para un producto y/o tecnologia. De hecho, hasta los momento hay 30 certificaciones repartidos en los 7 tracks de Cisco. Mas info.

Nuevos CCNP

Tenemos novedades interesantes tambien. La repuesta corta es, necesitamos de un Core Exam y Concentration Exam para ser CCNP. El core es fijo mientras que el Concentration puedes elegir varias opciones para ser CCNP. Es decir, si nos fijamos en CCNP SP:

Core exam:

300-501 SPCORImplementing and Operating Cisco Service Provider Network Core Technologies (SPCOR)

Concentration exams (choose one):

300-510 SPRIImplementing Cisco Service Provider Advanced Routing Solutions (SPRI)
300-515 SPVIImplementing Cisco Service Provider VPN Services (SVPI)
300-535 SPAUTOAutomating and Programming Cisco Service Provider Solutions (SPAUTO)

Tan solo tenemos que escoger uno de ellos y obtener la certificación CCNP.

Y la lista de CCNP quedara de la siguiente forma:

Bienvenido DevNet

Vamos, es la novedad mas interesante de Cisco, como mencione anteriormente por fin implementan la programación como un track de Cisco, estará compuesta como un nuevo track con lo mismo niveles bastantes conocidos, CCNA, Specialist, CCNP y CCIE. Aqui es el unico CCNA con track propio distinto al nuevo CCNA mencionado por todos.

Adios R&S y Wireless, Hola Enterprise

Ya el certificado Routing & Switching y Wireless cambiara de nombre y cambiaran el track Enterprise. Las tecnologías asociadas a Wireless formaran de Enterprise y puedes elegir Concentration exams a la tecnología Wireless para obtener el CCNP Enterprise.

Y los CCIE quedaran…

Con todo lo dicho, las certificaciones CCIE la lista final quedara de la siguiente forma:

Y ahora duran 20 años.

Notas adicionales:

  • Los CCIE-Written antiguos se actualizan al nuevo y obtienes CORE Exam segun el Track.
  • Adios CCENT, lo perderas.

Este post esta sujeto a actualizaciones.

Todo sobre las interfaces y conectores de tus HDD y SSD

Tal vez unos los tengas mas claro, otro no tanto. En internet hay montones de información sobre esto. Lo único a diferencia de los demás es recopilar todo lo útil y unirlo en un solo articulo. Este tema es súper complicado y la vez delicado ya que conlleva de comprar erróneamente tus componentes y luego veras que no funciona o simplemente no es el rendimiento que esperas.

Para empezar debemos detallar lo que son las conexiones actuales como SATA, IDE y los actuales M.2, U.2, PCIe, etc. Y la interfaz que nuevamente esta se encuentra SATA y los nuevos NVMe y PCIe. Con esto claro ya podemos un poco a diferenciar sus diferencias y definamos cada tecnología.

SATA: Bastante popular y conocido hoy en día. No hay sorpresas hasta los momentos. Solo hay 3 Versiones bastante conocidas SATA1, SATA2, SATA3. Aquí hablamos tanto el conector como la interfaz. Recordar que funcionan de modo AHCI que seria el SATA nativo y modo IDE, un modo que fue bastante usado en los tiempos de Windows XP ya que es un modo bastante compatible y transparente para los SO que aun no lo soportaban. Entre sus diferencias esta el soporte native command queuing y hot-plugging (usado para los eSATA) veamos un cuadro con sus diferencias en las velocidades teoricas.

SATARaw data rateData rate
SATA revision 3.06 Gbit/s600 MB/s
SATA revision 2.03 Gbit/s300 MB/s
SATA revision 1.01.5 Gbit/s150 MB/s

eSATA: Poco conocido y poco usado debido al bum de los puertos USB, es un conector con las mismas funcionalidades de un SATA, es prácticamente como mover el SATA interno hacia afuera cambiando el conector. No hay ninguna diferencia en términos de rendimiento, si cambia el conector ligeramente para hacerlo mas compatible para su uso externo (es un cable un poco mas duro con respecto a los cables de uso interno), las velocidades son las mismas que SATA y el tamaño del cable no es mas de 1 metro.

mSATA: es un conector usado unicamente para portátiles o laptop. Es la versión comprimida del conector SATA con los pines para la energía. Tiene el mismo conector que mPCIe pero no son compatibles, así que es fácilmente se puede confundir. Sus velocidades no cambia con respecto al SATA. Mi única recomendación es revisar las especificaciones del dispositivo para validar el tipo de conector. Un posible TIP es la Posición de la Etiqueta ya que indica el «frente» del dispositivo la cual puede indicar el «diente» o «muesca».

Un SSD mSATA y su conector

Ahora nos detemos aquí, ya que lo que hablamos de SATA es tanto un conector como una interfaz. Basicamente SATA posee un recorrido mas lento ya que pasa por una controladora y no tiene visión directa con la CPU.
Para quitar esta limitación se empieza a usar el PCIe como interfaz con la mejora que eso conlleva para ello repasemos el PCIe.

PCI ExpressTransfer rate×1×2×4×8×16
1.02.5 GT/s250 MB/s0.50 GB/s1.0 GB/s2.0 GB/s4.0 GB/s
2.05.0 GT/s500 MB/s1.0 GB/s2.0 GB/s4.0 GB/s8.0 GB/s
3.08.0 GT/s984.6 MB/s1.97 GB/s3.94 GB/s7.88 GB/s15.8 GB/s
4.016.0 GT/s1969 MB/s3.94 GB/s7.88 GB/s15.75 GB/s31.5 GB/s
5.032.0 GT/s3938 MB/s7.88 GB/s15.75 GB/s31.51 GB/s63.0 GB/s

Como veras el PCIe la mejora es mas que considerable, la ventaja es que los componentes son retrocompatibles y es posible hacer un actualización en este caso de un SSD que aproveche mejor las velocidades. Ahora bien PCIe tambien aplica que es tanto un conector como una Interfaz. El PCIe tiene sus conectores y a nivel lógico también es una interfaz que tiene visión directa con el CPU. Con esto en claro continuemos con los otros conectores.

NVMe: O tambien llamada Non-volatile memory express es el futuro y la nueva interfaz que aprovecha PCIe a todo su potencial es basicamente el reemplazo AHCI en los SATA (que a su vez reemplaza a IDE). Esta basado en pararelismo, con lo que mejora el rendimiento y latencia, es el único protocolo actualmente que hace uso de las lineasPCIe es decir si escuchas o lees que hace uso de PCIe es por que hace uso de la interfaz NVMe. Para que entiendan las diferencias con SATA, NVMe tiene carriles directamente al CPU, SATA posee 32 comandos (comandos para hacer uso de datos) y una cola de ejecución en cambio NVMe posee 65000 colas de comandos y 65000 comandos es decir disminuye significativamente la latencia, aumenta los IOPS por lo tanto un increible aumento de rendimiento. No confundir que hay tarjetas / Convertidores que hace uso de PCIe para conectar SATA pero no por ello hace uso de NVMe. Para hacer uso de las grandes velocidades de los SSD (~2GB/s) es por que hace uso NVMe. Solo recuerden que se trata una interfaz y no un conector. A nivel técnico permite un I/OPS mucho mas alto debido a que tiene mayor cantidad de comandos y colas. NVMe es usado en los conectores SATAe, U.2, M.2 o PCIe SSD.

SATA Express: una nueva revisión de SATA nace SATA Express o SATAe ó SATA 3.2 su propuesta es ser retrocompatibles con los conocidos los antiguos SATA. Su mejora consiste en usar PCIe como interfaz, para ello usa 2 lineas PCIe ademas posee un nuevo conector para ser posible ello.

El Conector SATAe

U.2: Su nombre original es SFF-8639 para luego ser llamamo U.2 a diferencia de SATAe es que usa 4 lineas PCIe lo que permite obtener mayores velocidades y lo hace comparable con M.2. Es una conexión heredara de el mundo, su ventaja fundamental con respecto a los demás conectores como SATAe y M.2 es que no esta limitada en espacio como M.2 ni a las 2 lineas de SATAe por lo que es posible obtener mayores capacidades obteniendo el mismo rendimiento.

Cable U.2, por el lado Izq. para el SSD, y el otro lado para la Tarjeta Madre.

M.2: Este es el mas problemático de todos a mi parecer y su vez el que tiene mas futuro. M.2 es un conector o en ingles Form Factor. Su principal ventaja es que ocupa un Slot en la Tarjeta Madre ademas es que puedes conectar cualquier dispositivo desde Convertidores hasta los mismo SSD por lo tanto tienes un PC mas limpio de cables (Te ahorras el cable de poder y SATA por ejemplo), M.2 es también conocido por Next Generation Form Factor (NGFF), Este conector tiene la particularidad de poder hacer uso de interfaz SATA o NVMe (de ahí el problema) incluso por USB, de hecho mucha gente cree que por ser M.2 es sinónimo de lograr las grandes velocidades del protocolo NVMe. Pero M.2 tiene mucha versatiblidad para conectar adaptadores u otros dispositivos, no solo SSD. El M.2 posee varios tamaños y para ello tenemos nomenclaturas para designar los discos SSD M.2. Las 2 primeras cifras indican el ancho de la memoria SSD y las 2 o 3 siguientes la longitud, por lo tanto mientras mas grande mayor cantidad chips puede alojar lo que indica que puedes tener un SSD de mayor tamaño.

Ancho: 12, 16, 22 y 30 mm
Largo: 16, 26, 30, 38, 42, 6o, 80 y 110 mm

La memoria flash que suelen utilizan estos discos SSD son del tipo NAND. Cuanto mayor sea su longitud de una memoria SSD M.2 mayor número de chips podrán alojar y por lo tanto mayor capacidad de almacenamiento tendrá. Así pues, las memorias de 30 y 42 mm de largo admiten de 1 a 3 chips de memoria NAND mientras que las de 80 y 110 mm de longitud admiten hasta 8 chips de memoria NAND. Pero no todas las tarjetas madres tienen el espacio para una M.2 de 110mm para ello ver las especificaciones. Comparado con SSD 2.5″ hay menos espacio pero te ahorras los cables pero con el avance de la tecnología (chips mas pequeños) ya es posible en un M.2 2280 un 1TB.

Los distintos tamaños M.2 con sus respectivos anclaje.



La diferencia de tamaño de un SSD 2.5″ y SSD M.2

El problema del M.2 como dije antes es que es posible hacer uso de interfaz SATA o NVMe es por ello que hay que ver las compatibilidades y especificaciones de tu tarjeta madre ya que varían según el Modelo y Soporte y ademas según el tipo de CPU. Pero vamos unos Tips para ver como diferenciarlos. Por suerte no hay margen de error ya que no es reversible por lo tanto no es posible forzarlo.

Para empezar los modulos M.2 poseen Notch o Dientes para diferenciarlos perfectamente de una interfaz a otra. Y serian básicamente los siguientes modelos:
B = SATA, PCIe x2, USB 2.0, USB 3.0
M = SATA, PCIe x4
B + M = SATA, PCIe x2. Pueden usarse en cualquier de los dos Modos.
Para ello hay que revisar las especificaciones. Existen ademas tarjetas PCIe para conectar módulos M.2 por Ejemplo esta:

Una pequeña muestra de las interfaces que soporta M.2:

Key IDPin LocationInterface
Aago-152x PCIe x1 / USB 2.0 / I2C / DP x4
Bdic-19PCIe x2 / SATA /USB 2.0 / USB 3.0 / HSIC / SSIC / Audio / UIM / I2C
C16-23Reserved for Future Use
D20-27Reserved for Future Use
E24-312x PCIe x1 / USB 2.0 / I2C / SDIO / UART / PCM
F28-35Future Memory Interface (FMI)
G39-46Not Used for M.2; for Custom/Non-Standard Apps
H43-50Reserved for Future Use
J47-54Reserved for Future Use
K51-58Reserved for Future Use
L55-62Reserved for Future Use
M59-66PCIe x4 / SATA


Un resumen:

PCIe: Tal como indique arriba y teniendo claro la interfaz y conector de PCIe finalmente existe SSD PCIe, son SSDs pero con conector PCIe aqui no hay limites, pueden usar desde 1X hasta 16X pero son los SSDs mas caro del mercado pero los mejores en velocidades.

Y finalmente seria todo, si tienen dudas, no duden en escribir.