You've answered your own question. The modern inhabitants of Spain are the resulting blend of Celtic (and Lusitanian), Roman, Greek, Gothic, Basque, and some Arab inhabitants of the peninsula. The "Spanish" names you mention do not pop up suddenly -- they are for the most part descended from Latin or Germanic roots. The Spanish language is, more or less, a direct descendant of Latin with some Germanic influence mixed in. It is a "Romance" language, because it derives from the Romans (it has nothing to do with love). Other Romance languages include French, Italian, and Romanian.
Here are some examples of common Spanish names, and their origins:
Lopez: "son of lope," from the Latin lupus "wolf"
Sanchez: "son of sancto," from the Latin sanctus "sanctified"
Gonzalez: from Gundisalvus, a Latinized version of Germanic proper name. the *gund root means "war" in Germanic languages.
Castillo: from the Latin castellum "castle"
Vasquez: possibly a descendant of the Latin word denoting the Basque region and people
Hernandez: a variation on the Germanic name Ferdinand, meaning "voyager" (root *farð "journey" in Germanic)