I agree with Tim, OSM is a very good option for such kind of job. I've used it 
myself for routing applications with success.

The pgRouting tutorial explains how to extract road segments for a specific 
region and import it to a database:

http://workshop.pgrouting.org/chapters/osm2pgrouting.html

Regards,

Luís