Iran and Russia have made progress towards an oil-for-goods deal sources said would be worth up to $20 billion, which would enable Tehran to boost vital energy exports in defiance of Western sanctions, people familiar with the negotiations told Reuters.

In January Reuters reported Moscow and Tehran were discussing a barter deal that would see Moscow buy up to 500,000 barrels a day of Iranian oil in exchange for Russian equipment and goods.

The White House has said such a deal would raise "serious concerns" and would be inconsistent with the nuclear talks between world powers and Iran.

A Russian source said Moscow had "prepared all documents from its side," adding that completion of a deal was awaiting agreement on what oil price to lock in.

The source said the two sides were looking at a barter arrangement that would see Iranian oil being exchanged for industrial goods including metals and food, but said there was no military equipment involved. The source added that the deal was expected to reach $15 to $20 billion in total and would be done in stages with an initial $6 billion to $8 billion tranche.

The Iranian and Russian governments declined to comment.

Two separate Iranian officials also said the deal was valued at $20 billion. One of the Iranian officials said it would involve exports of around 500,000 barrels a day for two to three years.

"Iran can swap around 300,000 barrels per day via the Caspian Sea and the rest from the (Middle East) Gulf, possibly Bandar Abbas port," one of the Iranian officials said, referring to one of Iran's top oil terminals.

"The price (under negotiation) is lower than the international oil price, but not much, and there are few options. But in general, a few dollars lower than the market price."

Oil is currently priced around $100 a barrel.

Iran and world powers reached an interim deal in November to ease some sanctions restrictions, which went into effect in January, in exchange for a curb to Iran's nuclear program. Work continues to reach a final settlement.

Under the sanctions accord, Iran's exports are supposed to be held at an average of 1 million barrels a day for six months to July 20, but sales have stayed above that level for five straight months, oil tanker tracking sources told Reuters last week.

"The deal would ease further pressure on Iran's battered energy sector and at least partially restore Iran's access to oil customers with Russian help," said Mark Dubowitz of Foundation for Defense of Democracies, a U.S. think-tank.

"If Washington can't stop this deal, it could serve as a signal to other countries that the United States won't risk major diplomatic disputes at the expense of the sanctions regime," he added.

The Iranian official said missiles would also be part of the deal, together with Russia providing assistance with building two nuclear plants in Iran. The Iranian official did not produce any documentation, and Russian government officials declined to comment.