lunes, 26 de septiembre de 2011

Herramientas básicas en redes.

Esta entrada la quiero dedicar al uso de algunos comandos que nos pueden resultar, bien en mayor o menor medida, útiles para el conocimiento de cualquier usuario que lo requiera.

La mayoría de las aplicaciones son de Windows.

- Ipconfig

Ipconfig es la herramienta básica para la monitorización del estado de nuestras tarjetas de red, así como conocer la dirección IP, máscara de red, puerta de enlace, servidores DNS que estamos usando y la dirección MAC de la tarjeta que estamos utilizando para una determinada conexión, así como otras opciones (Para más info, abre una línea de comandos y escribe ipconfig /?)

Como la utilidad tiene demasiadas opciones, destacaré solo las más usadas:

  • ipconfig /all: Muestra toda la información de las interfaces que está usando el ordenador.

    Datos que obtiene de cada interfaz:
    Dirección IP, máscara de red, puerta de enlace, dirección MAC, servicio DHCP, dirección fisica.
  • ipconfig /displaydns: Muestra la caché DNS de todas las interfaces

    Info: La caché DNS registra las últimas direcciones que se han solicitado al servidor DNS. La caché DNS tiene una pequeña "trampa": No se borran los datos de ella si se elimina todo el rastro del navegador web. A veces, es el último recurso que se puede usar para saber los registros de direcciones web del ordenador.
     
  • ipconfig /flushdns: Borra la caché DNS de todas las interfaces
  • ipconfig /renew y ipconfig /release: El primero renueva la dirección IP que usa en la red local el ordenador. El segundo, la libera.
- Getmac

Getmac es una herramienta que, una vez introducida en la línea de comandos, te devuelve las direcciones MAC de los adaptadores que estés usando en ése momento. Es una alternativa a introducir ipconfig /all para cuando únicamente quieres sacar la dirección MAC y no toda la configuración asignada a la tarjeta de red.

La única inconvencia destacable en esta herramienta es que no te empareja qué dirección MAC tiene un medio predeterminado (Por ejemplo, no te dice que la tarjeta Ethernet cableada tiene esta mac).

Si por ejemplo estamos usando Ethernet cableado y no Wi-Fi, te devolverá dos direcciones: Una de ellas te pondrá Medios desconectados (ésta será la tarjeta Wi-Fi sin conectar a ningún AP) y la otra te pondrá algo como "\Device\Tcpip_{numeros}. Si estamos usando dos o más medios a la vez (Por ejemplo, que nuestro equipo sea un servidor con varias tarjetas) habrá que recurrir a ipconfig /all para diferenciarlas mejor


 - Ping

Ping es la herramienta más usada en todos los ordenadores conectados en red. Su funcionamiento es sencillo: Envía un paquete ICMP a la dirección IP que se le especifique. El contenido es irrelevante, pero para la gente curiosa, los datos enviados son 32 bytes, y son, ni más ni menos, que el abecedario, así, por ejemplo, los 32 bytes enviados, son, en realidad, las siguientes sucesiones de letras:

abcdefghijklmnopqrstuvwabcdefghi - 32 bytes
abcdefghijklmnopqrstuvwabcdefghijklmnopq - 40 bytes

A estos datos también se les debe sumar los que asigne la cabecera TCP, puertos, dirección IP y demás.

Los usos más comunes son, por ejemplo, para saber si alguien está en la misma red, o si un ordenador concreto le llegan los paquetes a otro.

Cuando ejecutamos una orden de Ping pueden ocurrir dos cosas:

  • La conexión es satisfactoria. Mostrará algo parecido a:

    > Ping A.B.C.D
    Haciendo ping a A.B.C.D
    con 32 bytes de datos
    Respuesta desde A.B.C.D
    : bytes=32 tiempo=1ms TTL=128
    Respuesta desde A.B.C.D: bytes=32 tiempo=3ms TTL=128
    Respuesta desde A.B.C.D
    : bytes=32 tiempo=6ms TTL=128
    Respuesta desde A.B.C.D
    : bytes=32 tiempo=2ms TTL=128

    La explicación: Cuando haces Ping, envías paquetes de 32 bytes.
    Tiempo: Tiempo que tarda en enviar y recibir el paquete. Variable dependiendo del tráfico que maneje la red
    TTL: Tiempo de vida del paquete. También puede definirse como la cantidad de saltos que dará antes de que se destruya. Por ejemplo, 128 de TTL permite 128 saltos entre dispositivos como routeres, switch u otros ordenadores

  • La conexión no se realiza. En este caso, puede poner

    • Respuesta desde A.B.C.D: Tiempo agotado para solicitud: El paquete no ha llegado al router, o bien su tiempo de vida acabó y no pudo llegar de vuelta.
    • Respuesta desde A.B.C.D: Host de destino inaccesible: Puede ocurrir que el ordenador no esté en la misma red.
    • Error en la transmisión: Error general. La interfaz está desconectada de la red, e intenta hacer ping a una red inexistente.
Las opciones dentro del comando Ping son pocas:

  • Ping A.B.C.D -t: Indica al programa que haga Ping de forma contínua. Si Ping se ejecuta normal sin la variable -t solo enviará 4 paquetes. Con -t los manda todo el rato uno detrás de otro.
  • Ping A.B.C.D -l x: Indica el tamaño de búfer del paquete a enviar. X es el valor que se quiera dar
  • Ping A.B.C.D -i x: indica el tiempo de vida del paquete. X es el valor que se quiera dar.
  • Ping -a A.B.C.D: mostrará el hostname del ordenador objetivo.
- NSLOOKUP

Nslookup  es una herramienta utilizada para la resolución de dominios en direcciones IP. Resumiendo, la aplicación Nslookup realiza una petición al servidor DNS, y el mismo servidor le da una respuesta con las direcciones IP del dominio solicitado.

Nslookup puede resolver todo tipo de direcciones. También pueden utilizarse otros servidores DNS alternativos al predeterminado. Para ello, usareos Server x, siendo x la dirección IP


> server 10.0.0.1


Servidor predeterminado: (nombre del servidor DNS)
Dirección: 10.0.0.1
>

- Netsh

Netsh es una herramienta utilizada para la administración de las interfaces de red por línea de comandos. La hemos visto ya hace un par de entradas, con la creación de un archivo por lotes para la configuración de direcciones IP. Tiene más usos aparte del que le dimos, pero su uso es más dificil debido a no poder configurar gráficamente todas las opciones que incorpora. Por el momento nos quedaremos solo con el concepto de para qué sirve.

- Telnet

Telnet es un protocolo utilizado para la conexión de dos ordenadores de forma remota, un servidor y un cliente, controlando desde el ordenador cliente el ordenador servidor. El uso de la aplicación es sencillo:

  •  Open

La variable Open abre la conexión al servidor especificado.

Telnet> open x.x.x.x (dirección IP)

Para salir de la conexión, se debe usar la combinación de teclas Ctrl + C.

- Netstat

Netstat es una herramienta utilizada para "mapear" todas las conexiones que tenemos activas en nuestro sistema operativo. Se ejecuta por la línea de comandos, y su uso básico es para determinar qué puertos o conexiones tenemos activas.

PD: es posible que nos "asustemos" al ver tantas conexiones activas, sobre todo si nos fijamos en que la dirección IP 127.0.0.1 puede acumular demasiadas entradas (En el fondo esta dirección IP da igual, es la de loopback, y no sirve de nada en Internet), o que nuestra dirección de red verdadera también tenga demasiadas. Si queremos asegurarnos, poniendo netstat -n podremos ver "en bruto", con la dirección IP determinada, todas las conexiones de nuestro ordenador. Así, podremos usar la herramienta nslookup para saber de quién son las direcciones IP extrañas o que no sabemos.


Fuente:

Investigaciones propias realizadas con Windows
Algunas ayudas de la página de ayuda de Microsoft.

    jueves, 1 de septiembre de 2011

    Creación de archivos por lotes para pequeñas cosas. Parte 2: Iniciar/detener servicios con un script.

    En esta segunda parte, realizaremos un nuevo archivo por lotes para otro tipo de trabajos y funciones, exactamente en la iniciación y detención de servicios del sistema operativo (Esto es, los servicios de Windows, o para ser exactos, los que aparecen en la pestaña Services.msc), pero de forma apilada y secuencial (Lo que viene a ser que con un ejecutable por lotes se activen X servicios, o se desactiven).

    Para ello, tomaremos otro ejemplo "de la vida real".

    Pongamos el ejemplo de un programa que necesite la activación de una serie de servicios para que funcione correctamente. Como ejemplo, pondré un programa que sí necesita de una serie de servicios para funcionar: VMware Workstation y sus productos.

    Por defecto, VMware, al instalarse, activa una serie de servicios automáticos en Servicios para que al iniciar el ordenador, dichos servicios del programa se activen y así pueda funcionar todo con normalidad.

    Ahora supongamos que nosotros no queremos que dichos servicios se activen automáticamente, quizá porque nos ralentiza mucho el sistema o porque tenemos una memoria RAM muy limitada. De la forma tradicional, deberíamos ejecutar la pestaña de servicios en Panel de Control > Herramientras Administrativas > Servicios y a partir de ahí desactivarlos o activarlos uno por uno ¿No?

    De forma recurrente, encontré una solución para evitar ejecutar cada tanto rato los Servicios y no malgastar un tiempo valioso.

    Por consola de comandos, descubrí que existe una opción para ejecutar servicios fácilmente. Usando el comando Net Start y el servicio a ejecutar, éste se iniciaba. De forma lógica, si ponía Net Stop y el servicio, éste se detenía.

    Visto para sentencia, elaboraremos los archivos que necesitamos para ello:

    Antes de su creación, vamos a realizar una pequeña comprobación técnica en los servicios:

    En VMware hay 5 servicios necesarios:
    • VMware Agent Service
    • VMware Authorization Service
    • VMware DHCP Service
    • VMware NAT Service
    • VMware USB Arbitration Service
    Como nuestro ordenador los inicia, lo primero que vamos a hacer es activarlos como Manual para que al iniciar el ordenador, seamos nosotros los que activemos o desactivemos el servicio y no se active solo.

    Una vez realizado en los 5, pasaremos a apuntar su Nombre de servicio, que no es el que viene en el programa de Servicios, sino Dentro de la ficha del servicio. Pulsamos en las propiedades del programa y aparecerá el Nombre del servicio. Así, por ejemplo:

    • VMware Agent Service tiene como nombre ufad-ws60
    • VMware Authorization Service tiene como nombreVMauthdserv
    • VMware DHCP Service tiene como nombreVMnetdhcp
    • VMware NAT Service tiene como nombre VMware NAT Service
    • VMware USB Arbitration Service tiene como nombre VMUSBArbService
      Una vez tengamos las referencias, creemos los archivos:

      Crearemos primero el archivo de inicio de servicios. Para ello, iniciamos Notepad y escribimos los servicios con su nombre de servicio que hemos especificado antes:


      net start ufad-ws60
      net start VMAuthdService
      net start VMnetDHCP

      net start VM NAT Service
      net start VMUSBArbService


      Una vez puesto, lo guardaremos con extensión .bat 
      Por ejemplo, VMwareON.bat

      PD: Si no queremos entrar en los procesos uno por uno para saber el nombre de proceso, podemos recurrir a un método alternativo: Encerrar el servicio entre comillas en el archivo que estamos creando. Así, por ejemplo, en vez de net start ufad-ws60, podríamos poner net start "VMware Agent Service".

      El archivo de detención de servicios será con la otra opción, con Net Stop, así, nos quedará algo así como


      net stop ufad-ws60
      net stop VMAuthdService
      net stop VMnetDHCP

      net stop VM NAT Service
      net stop VMUSBArbService


      Guardamos el archivo también como .bat.
      Por ejemplo, VMwareOFF.bat


      Listo. Ahora, cuando queramos iniciar los servicios del VMware ejecutaremos VMwareON.bat y se iniciarán, y para detenerlos, usaremos VMwareOFF.bat 


      PD: Se requieren permisos de administrador para realizarlo. Por ello, si usamos Windows 7 y Windows Vista daremos con botón derecho en el archivo y Ejecutar como administrador.

      Fuente:
      Servicio técnico de Microsoft
      Experiencia propia

      Para terminar, les dejo una canción:


      Ama... Ama... Ama... ¡Y ensancha el alma!
      Extremoduro.