Most of the cities and towns in Iran are well connected by air, road, and trains. So, getting around in Iran is not difficult.
Flight: Though there is flight connectivity to almost every town in Iran, the airports in Iran are a little chaotic. Flights being delayed are quite common and this may upset your schedule. So, do keep buffer time in your itinerary if you are using internal flights. I used Iran Air for Mashhad – Tabriz and Tehran – Shiraz. The in-flight service is good. Iran Air has an office in Mumbai, where you can book the domestic flights of Iran. But they accept only cash and the sad part is you cannot book these tickets online.
For International flights, I used Gulf Air (Bahrain national carrier) from Tehran – Bahrain – Mumbai. For the price of only 15000 INR, the service of Gulf Air was brilliant.
Rail: The rail connectivity is quite good in Iran and they also have metros in major cities. Iran railway schedule
Bus: There a lot of luxury buses plying between major towns. I used the bus service from Esfahan to Tehran and the service was good. Royal Safar Iranian is the name of the bus agency and I think it is the only bus service that offers drop till Tehran International airport (Imam Khomeini International Airport). Contact details for Royal Safar Iranian
Double check the timings after they issue the ticket. They messed up my departure date and I had to take my couchsurfing host’s help to get the mistake rectified.
Car: We were lucky to get Ali (picture below), one of the best driver/guide in Iran, who travelled with us from Tabriz – Urmia lake – Maku – Jolfa – Masouleh – Rasht – Ramsar – Tehran. Very highly recommended. He is currently developing his website but here his is short bio
Contact number: +98 921 402 9491