Administracion y Monitoreo de la Red RANCID ============ Notas: ------ * Comandos precedidos de "$" implican que Ud. debe ejecutar el comando como un usuario general, no root * Comandos precedidos de "#" implican que Ud. debe ejecutar el comando como root * Comandos con prompt de comandos mas especificos (ej. "RTR-GW>" o "mysql>") implica que Ud debe ejecutar el comando en un equipo remoto o dentro de otro programa Ejercicios ---------- 1. Conectarse a su PC via ssh 2. Asuma rol de root, e instale postfix $ sudo bash # apt-get install postfix Puede ser que le pregunte: select "Internet Site" Al proximo prompt, entre su nombre host (ej. pcxx.ws.nsrc.org) Asegurese que Postfix este' corriendo: # service postfix status Asegurese que el cliente de email 'mutt' este' instalado asi como "telnet" y "subversion": # apt-get install mutt telnet subversion 3. Adicione un alias para el usuario "rancid" en /etc/aliases file # vi /etc/aliases rancid-all: sysadm rancid-admin-all: sysadm Salve el fichero, y corra: # newaliases 4. Instale "Rancid": # apt-get install rancid Este' le dara' un aviso, y preguntara' "Really continue?" Seleccione "Yes" 5. Edit /etc/rancid/rancid.conf # vi /etc/rancid/rancid.conf Encuentre esta' linea en rancid.conf: #LIST_OF_GROUPS="sl joebobisp" Y adicione la sigiuente linea inmediatamente debajo: LIST_OF_GROUPS="all" (sin '#' al principio de la linea) Tambien queremos usar "subversion" y no "CVS": Encuentre la linea con el parametro RCSSYS, y cambiela a: RCSSYS=svn; export RCSSYS Y tambien encuentre la linea con el parametro CVSROOT, y cambie a: CVSROOT=$BASEDIR/SVN; export CSVROOT 6. Conviertase en el usuario 'rancid' Desde el prompt de 'root', cambie la identidad y conviertase en el usuario 'rancid' user: # su -s /bin/bash rancid asegurese que usted es ahora el usuario 'rancid' $ id Debe ver algo parecido a (los numeros pueden variar): uid=104(rancid) gid=109(rancid) groups=109(rancid) ***** NO CONTINUE SI UD. NO ES EL USUARIO 'rancid' !!!! ****** ***** SOLICITE AYUDA ****** 7. Crear /var/lib/rancid/.cloginrc $ vi /var/lib/rancid/.cloginrc adicione add user 10.10.* cisco add password 10.10.* cisco cisco (El primer 'cisco' es el nombre de usuario, el segundo y tercer 'cisco' son la clave y la clave de configuracion usada para conectarse a su enrutador. El '*' significa que va a usar esa informacion para conectarse a todos los dispositivos cuya direccion empieze con el prefijo '10.10') Proteja este fichero de forma tal que no pueda ser leido por otros usuarios: $ chmod 600 /var/lib/rancid/.cloginrc En la vida real, recomendamos crear un usuario 'rancid' con derechos minimos limitados como beunas practicas de seguridad. 8. Probar conectarse al enrutador de su grupo Conectese al enrutador de su grupo con clogin. Puede que tenga que teclear "Yes" para el primer aviso, pero no debe necesitar teclear las claves, debe ser automatico. $ /var/lib/rancid/bin/clogin 10.10.X.254 (re-emplaze x con el numero de su grupo.) Debe observar algo parecido a: spawn ssh -c 3des -x -l cisco 10.10.2.254 The authenticity of host '10.10.2.254 (10.10.2.254)' can't be established. RSA key fingerprint is 73:f3:f0:e8:78:ab:49:1c:d9:5d:49:01:a4:e1:2a:83. Are you sure you want to continue connecting (yes/no)? Host 10.10.2.254 added to the list of known hosts. yes Warning: Permanently added '10.10.2.254' (RSA) to the list of known hosts. Password: rtr2>enable Password: rtr2# Desconectese rtr2#exit 9. Inicialize el repositorio SVN para 'rancid': $ /usr/lib/rancid/bin/rancid-cvs Debe observar algo parecido a: Committed revision 1. Checked out revision 1. At revision 1. A configs Adding configs Committed revision 2. A router.db Adding router.db Transmitting file data . Committed revision 3. ***** Si encuentra problemas ****** Si esto no funciona, puede ser que el paquete 'subversion' no este' instalado, o alguna parte de la configuracion no fue adecuadamente preparada. Ud. debe verificar que 'subversion' este' instalado, y si es asi, ejecute los siguientes comandos: $ exit # apt-get install subversion # su - /bin/bash rancid $ cd /var/lib/rancid $ rm -rf all $ rm -rf SVN Ahora ejecute otra vez: $ /usr/lib/rancid/bin/rancid-cvs ******************************** 10. Crear el fichero de configuracion router.db $ vi /var/lib/rancid/all/router.db Adicione esta linea: 10.10.xxx.254:cisco:up (recuerde re-emplazar xxx con su numero de grupo) 11. Ejecutemos 'rancid'! $ /usr/lib/rancid/bin/rancid-run (Se demora aproximadamente 30 segundos) Vuelva a correrlo una segunda vez, pues la primera vez no existe alguna configuracion guardada. De esta forma se asegura 100% todo funciona: $ /usr/lib/rancid/bin/rancid-run 12. Verfique los logs: $ cd /var/lib/rancid/logs $ ls -l ... Vea el contenido de los ficheros de logs: $ cat all.* Debe ver algo como esto: starting: Tue Aug 30 16:34:42 UTC 2011 At revision 4. Trying to get all of the configs. All routers sucessfully completed. Sending . Sending configs/10.10.1.254 Sending router.db Transmitting file data .. Committed revision 5. ending: Tue Aug 30 16:34:51 UTC 2011 13. Vea las configuraciones: $ cd /var/lib/rancid/all/configs $ less 10.10.x.254 Si todo salio' bien, puede ver la configuracion de su enrutador 14. Cambiemos la descripcion de una interface en el router $ /usr/lib/rancid/bin/clogin 10.10.x.254 Cuando caiga en el prompt "rtrX#" cambiemos la descripcion con los siguientes comandos: rtrX# conf term rtrX(config)# interface LoopbackXX (replace XX with your PC no) (por ejemplo: rtr5(config)# interface Loopback17 (si su PC es la numero 17) Debe caer en el prompt de configuracion de interfaces: rtr2(config-if)# Ejecute: rtr2(config-if)# description "Nombre: InterfazXX" rtr2(config-if)# end Usted debe caer en este prompt: rtr2# Salve la configuracion permanentemente: rtr2# write memory Debe ver: Building configuration... [OK] Desconectese: rtr2# exit 15. Ejecutemos 'rancid' otra vez: $ /usr/lib/rancid/bin/rancid-run Vea la configuracion y los logs. Hay alguna nota sobre el cambio? $ cat /var/lib/rancid/logs/* 16. Vea las diferencias entre configuraciones $ cd /var/lib/rancid/all/configs $ ls -l Aqui deben ver todas las configuraciones $ svn log 10.10.x.254 (xxx correspondiente a su enrutador, ej: .1 or .2 or 3.) Fijese en el numero de las revisiones. Ahora veamos las diferencias entre versiones: $ svn diff -r 5:6 10.10.x.254 | less ... Puede encontrar los cambios efectuados? 17. Verificar las notificaciones via correo Regresemos a ser el usuario "sysadm", y ejecute "mutt" para ver los correos que 'rancid' a enviado: $ exit # exit $ id ... verifique que usted es el usuario 'sysadm' ... si no, desconectese y reconectese como 'sysadm' $ mutt (Cuando "mutt" le pregunta si crea el directorio Mail, diga "Yes") Create Mail directory? Yes Si todo resulto' como planeado, debe ver los mensajes enviados por 'rancid' (use 'q' para retornar al indice de mensajes, y 'q' para salir de "mutt") 18. Ponga a rancid a correr cada 30 minutos por 'cron' (automatizar chequeo) $ sudo bash # crontab -e -u rancid (Especifique su editor favorito) Adicione esta linea: */30 * * * * /usr/lib/rancid/bin/rancid-run ... salve y salga 19. Ahora adicione todos los otros enrutadores Note the IP addresses for the routers 10.10.x.254 donde x va de 1 a 6 Actualize router.db # su -s /bin/bash rancid $ vi /var/lib/rancid/all/router.db Adicione: 10.10.1.254:cisco:up 10.10.2.254:cisco:up 10.10.3.254:cisco:up 10.10.4.254:cisco:up 10.10.5.254:cisco:up 10.10.6.254:cisco:up (Note que "cisco" significa equipos Cisco -- le dice a Rancid que espera conversar con un dispositivo Cisco. Tambien puede conversar con Juniper, HP, ...) 20. Corra rancid otra vez: $ /usr/lib/rancid/bin/rancid-run (Debe demorar un minuto o mas, sea paciente) 21. Vea los logs: $ cd /var/lib/rancid/logs $ ls -l ... Mire el ultimo fichero creado $ less all.YYYYMMDD.HHMMSS 22. Vea las configuraciones $ cd /var/lib/rancid/all/configs $ more 10.10.* si todo salio' bien, debe ver todas las configuraciones 23. Ejecute Rancid otra vez en caso de que alguien haya cambiado configuraciones otra vez. $ /usr/lib/rancid/bin/rancid-run (paciencia, 1 minuto) 23. Familiarizarse con clogin: $ /usr/lib/rancid/bin/clogin -c "show clock" 10.10.x.254 Que noto' ? 24. Adicione el repositorio SVN de RANCID a SVNWeb Si todavia esta' conectado como 'rancid', regrese a 'root' $ exit # Instale SVNWeb: # apt-get install websvn * Responda "Yes" a la pregunta "want to configure it now" * Presione "Ok" a la proxima pregunta sobre soporte de web servers. * Adicione (dos siguientes preguntas) la localizacion del repositorio de subversion: /var/lib/rancid/SVN (asegurese que sea en mayusculas "SVN"). * Presione "Ok" para especificar config de los permisos 25. Arreglar los permisos. (El servidor web debe ser capaz de leer el archivo de subversion) # chgrp -R www-data /var/lib/rancid/SVN # chmod g+w -R /var/lib/rancid/SVN 26. Vea los ficheros de configuracion via web! http://pcXXX.ws.nsrc.org/websvn Revise los ficheros en el directorio 'all/configs'. Aqui estan todas las configuraciones. 27. Vea revisiones Puede ver revisiones, pero esta parte no funciona en el paquete de Ubuntu 10.04 Esto puede arreglarse con un patch: Simple: # apt-get install wget patch # cd /usr/share/websvn/include # wget http://noc.ws.nsrc.org/downloads/patch-svn # patch < patch-svn Ahora puede ver las diferencias entre revisiones con WebSVN. Vaya a http://pcXXX.ws.nsrc.org/websvn otra vez, seleccione el fichero de su enrutador, (10.10.x.254) y seleccione "Compare with Previous" Ahora puede ver los ultimos cambios registrados. +---- Rev. 30 Aug 2011