Just found a very annoying bug in RANCID 3.1, which also exists in RANCID 3.0 All the documentation for the proper configuration of your router.db file says it must be in the format


However when trying to do a rancid-run it fails to process any hosts and marks all the devices as down. After a lot of trolling through the control_rancid script and some Perl gymnastics I discovered it was looking for a ‘;’ as a separator. Once changing the config file to use a semicolon it works flawlessly. Knowing this a quick google did discover that it is listed in some threads e.g from http://www.shrubbery.net/pipermail/rancid-discuss/2012-October/006541.html

router.db,rancid.types.*: change field separator to ‘;’ (semi-colon) to allow for IPv6 addresses in router.db and avoid conflict with :s in device commands and perl module names

However all the official documentation still refers to using a colon http://www.shrubbery.net/rancid/man/router.db.5.html So be warned if using RANCID version 3.0 or above you will need to update your router.db files accordingly.

Tagged with: