The innkeeper finished tending to Caer's wounds. He sighed.
"You know we could avoid all this if you just talked to the elves."
"You know as well as I do that they're abandoning these lands to the orcs. "
"If you revealed who you were maybe they would sta-"
"-It wouldn't make any difference. I'm a fighter, not a diplomat. You know that."
The innkeeper sighed. "All too well. But you should at least try. Ride to Rivendell and make your case."
"Would it get you off my back?"
Caer nodded. "I'll need a fast horse."
Vader's wife was very pregnant when she died 19 years ago. All of a sudden a 19 year old who is very strong in the force and has a distinct resembalance to him in his younger days rolls in from Vader's home planet with his old Master Obi-Wan (Who was the ONLY other person preset at the time his wife died. And to boot, the kid's last name is Skywalker.
So in answer to your question, he knew Luke was his son because his name is Darth Vader, and not Darth Retard.
-Forum post on why Vader knew Luke was his son.