Antes de abordar la cuestión de su etimología, voy a ilustrar primero la del latín canis 'perro', que la mayoría de indoeuropeístas relacionan con la designación común IE para el animal, *kʲ(u)wo:n2. Sin embargo, las anomalías fonéticas que presenta esta etimología me hacen dudar de ella. Siguiendo la propuesta de Douglas Kilday, propongo el lexema *kenh₁- 'joven, nuevo'3, que presumiblemente es el origen del celtibérico kentis 'hijo'. De esta manera, tendríamos una deriva semántica desde 'animal joven, cachorro' a 'perro'.
Volviendo a la palabra castellana, su pariente más cercano sería el euskera berri 'nuevo', que si estoy en lo cierto habría conservado el significado original. Como sugiere mi colega Marco Moretti, parece evidente la conexión con el afroasiático *bar- 'niño; hijo, hija' (HSED 213), aunque debido a la semántica dudo que se trate de un préstamo de alguna lengua de esa macrofamilia. A nivel fonético hay que tener en cuenta que la vibrante múltiple /r/ en castellano y euskera es reflejo de la rótica de la lengua de origen.
___________________________________________________________
2 A. Ernout & A. Meillet (1959): Dictionnaire étymologique de la langue latine, p. 92.
3 El vocalismo /a/ de canis puede ser explicado como una "coloración" por la oclusiva inicial uvular.