lunes, 22 de febrero de 2010

Debuguear con Cisco

Bueno, no es que sea muy experto en debugueo, pero hay veces que lo necesito para ver si hay tráfico en el router o para ver si al menos se conectan ambos lados. En este caso me voy a centrar en un equipo que hace doble NAT y quiero conocer si hay conexión en ambos sentidos. Es importante recordar que el comando debug puede llegar a colgar el router por la cantidad de recursos que necesita. Que cada cual asuma el riesgo de jugar con él o no.

Vamos al lío:

- Lo primero es ver es estado del NAT para comprobar que las direcciones se traducer correctamente. Para ello simplemente hay que usar el 'show':

sh ip nat tr , que traducido es 'Show IP NAT Translation'. Soy muy vago y lo resumo todo al máximo ;-)
Este comando nos mostrará la tabla de NAT, si hay conexión y el puerto utilizado para la misma. Muy útil.

- Si vemos que se crea la conexión, pero no parece que funcione, se puede hacer el debug de la parte NAT:

debug ip nat detailed (no os quejéis que pongo el comando completo). Coño!! no se ve nada. Esto es muy común. Al router tienes que indicarle que lo muestre con term mon.

- Ahora quiero ver todos lo paquetes IP para descartar otros problemas. Creo que lo primero sería desactivar el debug anterior, porque son acumulativos y si pones otro se ejecurarán ambos. Para desactivarlo puedes poner no debug ip nat o simplemente no debug all  para parar todos los activos. A continuación ejecutamos:

debug ip packet detail . Ahora empezará a salir una cantidad enorme de información. Mi consejo es almacenarla en algún tipo de fichero para luego analizarla.

- Por fin hemos terminado y queremos parar el debug. podemos usar no debug ip packet o bien no debug all . Además, queremos quitar el monitor del router, con lo que tendremos que ejecutar term no mon

Listo, con esto podéis encontrar el problema o por lo menos orientaros hacia dónde puede estar.





martes, 2 de febrero de 2010

Borrar un servidor huérfano del Active Directory

Normalmente, cuando se quiere eliminar un servidor del AD, se utiliza el comando DCPROMO y se siguen los pasos, pero pueden ocurrir varias cosas para que este sistema falle. Bien que el DCPROMO falle y no nos deje eliminarlo, o bien que hemos quitado el servidor sin hacerle previamente el DCPROMO (que era mi caso). Bueno, la historia es que cerramos una oficina y quitamos libremente el servidor de la misma y lo mandamos a Madrid. Sin más eliminé el 'site' y la cuenta del AD, pero ese fue mi error. Cuando quise arreglarlo no pude. Conecté nuevamente el equipo en la red (diferente subnet) y al haber eliminado la cuenta esta máquina ya no estaba en el dominio. Hice un DCPROMO /forceremoval para forzar la eliminación local de la configuración del AD, pero no lo elimina del dominio :-(

¡PANIC!, ¡PANIC!, ALARMA, ERROR, NIEGA QUE HAS SIDO TÚ Y ECHA LA CULPA A OTRO

No nos alarmemos, no pasa nada. Para estos casos existe una utilidad que nos salva la vida, NTDSUTIL

Pasos que hay que seguir:
  • Desde el command prompt (MS-DOS de toda la vida), escribimos ntdsutil y pulsamos [ENTER].
C:\ntdsutil
ntdsutil:
  • Desde Ntdsutil: escribimos metadata cleanup [ENTER].
ntdsutil: metadata cleanup
metadata cleanup:
  • Desde metadata cleanup: escribimos connections [ENTER].
metadata cleanup: connections
server connections:
  • Desde server connections: escribimos connect to server ServerDC [ENTER], 
Este ServerDC es cualquier controlador de dominio que tengamos en la red y que se encargará de darnos la información que le pidamos y de ejecutar los comandos que le indiquemos.

server connections: connect to server serverDC
Binding to serverDC ...
Connected to serverDC using credentials of locally logged on user.
server connections: 
El siguiente paso es para dominios en Windows 2000, pero por si acaso yo lo he seguido. Funciona sin problemas en Windows 2003 R2 ;-)
  • Escribe q (quit) [ENTER]
server connections: q
metadata cleanup:
  • Escribe select operation target [ENTER]
metadata cleanup: Select operation target
select operation target:
  • Escribe list domains [ENTER] (ya me he cansado de tanto 'Escribe'. A partir de ahora lo voy a omitir.
select operation target: list domains
Found 1 domain(s)
0 - DC=MiDominio,DC=local1 - DC=miDominio,DC=local 
select operation target:
  • select domain 0 [ENTER]
Este es el número de dominio que queremos seleccionar. Si solo hay uno la cosa es fácil, el '0' 

select operation target: Select domain 0
No current site
Domain - DC=MiDominio,DC=local
No current server
No current Naming Context
select operation target:
  •  list sites [ENTER]
select operation target: List sites
Found 1 site(s)
0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=MiDominio,DC=local
select operation target:
  • select site 0 [ENTER]
El es el site que queremos seleccionar. Si solo tenemos 1 pues ponemos '0'

select operation target: Select site 0
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=MiDominio,DC=local
Domain - DC=MiDominio,DC=local
No current server
No current Naming Context
select operation target:
  • list servers in site [ENTER]
select operation target: List servers in site
Found 2 server(s)
0 - CN=serverDC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=MiDominio,DC=local
1 - CN=serverDC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=MiDominio,DC=local2 - CN=serverborrar,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=MiDominio,DC=local 
select operation target:
  • select server 2  [ENTER] 
es el servidor que queremos eliminar. en nuestro caso vamos a elegir el tercero, que es el número '2'
 
select operation target: Select server 2
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=MiDominio,DC=local
Domain - DC=MiDominio,DC=local
Server - CN=SERVERBORRAR,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=Midominio,DC=local
 DSA object - CN=NTDS Settings,CN=SERVERBORRAR,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=MiDominio,DC=local
 DNS host name - serverborrar.MiDominio.local
 Computer object - CN=SERVERBORRAR,OU=Domain Controllers,DC=MiDominio,DC=local
No current Naming Context
select operation target:
  •  quit [ENTER]
select operation target: q
metadata cleanup:
  • remove selected server [ENTER]
Pulsa 'YES' en el mensaje de aviso

metadata cleanup: Remove selected server
"CN=SERVERBORRAR,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=MiDominio,DC=local" removed from server "serverDC"
metadata cleanup:
  •  quit [ENTER]
  •  quit [ENTER]  (Hasta que salgamos al command prompt)
¡PREMIO! ya tenemos el servidor eliminado del AD, ¿seguro?. Pues no del todo. Ahora solo falta eliminarlo de sitios de AD. Para eso hacemos:
  1. Nos vamos a Active Directory Sites and Services y expandimos el site donde se encontraba.
  2. Con el botón derecho del ratón sobre él seleccionamos Delete 
  3. Nos vamos ahora a Active Directory Users and Computers y lo buscamos como equipo del dominio.
  4. Con el botón derecho del ratón sobre él seleccionamos Delete
  5. Nos vamos a DNS  y expandimos la zona de donde se ha eliminado el servidor
  6. Borramos las entradas CNAME en el  _msdcs.root domain del forest zone y  el HOSTNAME. Tal vez tengamos que buscar más entradas que hagan referencia a dicho servidor, pero con cargarnos todo se arregla ;-)
Uhfff, un poco extenso este post, pero al menos espero que le sirva a alguien, je,je,je.