Upvote:1
Iranian citizens normally require a visa for an airside transit (stopover without leaving the international area of the airport) in the Schengen Area (note that the Schengen Area is different from "Europe"), but there is an exception for US permanent residents if various conditions are met.
In your case, your proposed itinerary would not meet those conditions. You would need to pass through immigration and enter the Schengen Area in Austria, then exit the area in Germany. This requires a Schengen visa. The flight between Austria and Germany is treated as a "domestic" flight for the purposes of immigration.
As such, you would need a Schengen visa for this trip. A stopover in a single Schengen airport that allows you to transit airside is possible without a visa, which saves you the hassle and uncertainty of applying for one. If you do apply for a visa, I'd make sure you don't book any non-refundable flights first, as issuance is never guaranteed.
Upvote:1
Look at this map. The countries in the blue (including both Germany and Austria) area form the Schengen Area, which operates as a single country for border purposes.
Think of it this way: if a foreigner flies Istanbul-Tehran-Mashad-Dubai, they have to enter Iran in Tehran, because of the domestic flight Tehran-Mashad, and exit in Mashad, and therefore need an Iranian visa.
In the same way, when flying US-Austria-Germany-Iran, because of the Austria-Germany flight, you must enter the Schengen Area in Austria, and exit in Germany, and therefore need a (type C) Schengen visa, which, in your case, you apply for at the embassy of the country where you land first (the Austrian embassy if landing in Austria first)
So yes, it is correct that, to travel without a visa, you cannot fly between two airports in the Schengen Area.