opengl , octrees and vbos

Hello , i am writng my little engine and i have the code which creates an octree given a triangle soup, i have read that clipping the triangles to the leaf node is a bad practice , so i was thinking about leaving triangles untouched and draw them after the culling phase. I have created also a sort of render group where triangles sharing the same material/texture are goruped and after the culling filter, ready to be drawn on screen.
My problem is that i do not know if what i am thinking to do is the best way to achieve a good framerate. I plan to create a large vao storing the vertex data of the entire object , and then create an index buffer at runtime containing
the triangles in the visible nodes grouped by texture , to avoid shader changes.Now , i’d like to know if i can modify the ibo ( index buffer objects ) attached to the vao , and in that case if someone could point me to some
code fragment becasue i have not idea on how to proceed from this point ( sorry i was a directx fan , i do not know how opengl deals with this ).
Thanks for your time