Russia is raising the maximum age at which men can be conscripted from 27 to 30, making more of them liable to serve in the armed forces.
The change was passed by the lower house of parliament on Tuesday.
The package of measures comes as Moscow seeks to boost troop numbers to defend territory gained in its invasion of Ukraine last year.
A senior Russian MP said the new law was written with a major conflict in mind.
“It already smells like a big war,” Andrei Kartapolov, head of the Russian parliament’s defence committee, told MPs.
He argued that too many people were currently able to avoid military service.
All men of conscription age are expected to serve a year of compulsory military service.
Russia is thought to have sustained heavy casualties in nearly a year-and-a-half of fighting, but the Defence Ministry is reluctant to release figures.
Last autumn, the government announced a mobilisation of 300,000 reservists, but as a result, tens of thousands of men left Russia.
In a separate measure last week, the maximum age at which reservists can be called up was raised, meaning some men will now be considered available for military service until they are 55.
The State Duma passed the conscription bill in its second and third readings. It still needs to be approved by the upper house and by President Vladimir Putin, but this is seen as a formality.
Once signed, it is due to come into force on 1 January next year.
The latest measures go further than the Defence Ministry’s original proposal, which sought to change the conscription age range from 18-27 to 21-30. The lower age limit will continue to be 18.
“The wording of the draft law changed because the demographic situation is serious and affects the volume of the mobilisation resource,” Mr Kartapolov told Russian media.
He added that “many lads want to go and serve at 18”.
The draft law also bans men from leaving the country from the day of their call-up. Since April, conscription papers can be issued online instead of in person.
In addition, men who fail to report for conscription will be liable for fines of up to 30,000 roubles ($332), a tenfold increase.