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