Delrepubliken Udmurtien har utlyst tre dagars sorg efter händelsen, där minst 17 personer dog och 24 skadades, utöver den nu döde gärningsmannen. 22 av de skadade är barn.
Enligt polisen bar gärningsmannen, som uppges ha tagit sitt liv efter dådet, en svart tröja med "nazistsymboler" och en balaklava.
Mannen ska senare ha identifierats som en 34-årig tidigare elev på skolan. Enligt nationalgardet använde han sig av två ursprungligen icke-dödliga vapen som anpassats för skarp ammunition. Något motiv var ännu sent på måndagen inte känt.
Dådet inträffade vid skola nummer 88 i Izjevsk. Enligt skolans sajt hade den 982 elever, från årskurs ett till elva, och 80 lärare, skriver den ryska nyhetsbyrån Interfax.
Skolan har evakuerats och ett område runt byggnaderna har spärrats av.
Kremls talesperson Dmitrij Peskov beskriver skjutningen som ett terrordåd och säger att president Vladimir Putin sörjer dödsfallen djupt.
Staden Izjevsk har cirka 640 000 invånare och ligger väster om Uralbergen i västra Ryssland, cirka 96 mil öster om Moskva.