Place the beef knuckle bones and oxtail or marrow bones in a large pot and cover with cold water. Bring to a full boil over high heat and boil hard for 5 minutes — you'll see grey foam and impurities rise to the surface. This step is essential for clear broth.
Drain the bones and discard the water. Rinse each bone thoroughly under cold running water, removing all residue. Clean the pot completely before proceeding.
Halve the onion and place cut-side down in a dry cast iron skillet over medium-high heat, or hold directly over a gas burner with tongs. Char the cut face until blackened and slightly softened, about 4 to 5 minutes. Repeat with the ginger piece, turning until all surfaces are lightly blackened. The char adds smoky, complex depth to the broth.
In a separate dry skillet, toast the star anise, cinnamon stick, cloves, cardamom pods, coriander seeds, and fennel seeds over medium heat for 2 minutes, shaking constantly, until fragrant. Place the toasted spices in a small muslin bag or cheesecloth bundle so they stay together and are easy to remove later.
Return the blanched, rinsed bones to the cleaned pot. Add 12 cups of cold water, the charred onion and ginger, and the spice bundle. Bring to a gentle boil, then immediately reduce heat to a low simmer — the surface should tremble gently, not boil vigorously. A rolling boil will emulsify fat into the broth and make it cloudy.
Skim any foam that rises to the surface during the first 20 minutes of simmering. Simmer uncovered for 2 to 3 hours. The broth is ready when it has reduced slightly, turned amber in color, and smells deeply of beef and spice.
Remove and discard the charred onion, ginger, and spice bundle. Add 3 tablespoons of fish sauce and stir. Taste the broth — it should taste savory and slightly sweet, not aggressively salty. Add more fish sauce in small increments if needed, as saltiness varies by brand.
Add the rock sugar (about 1 oz) to the broth and stir until dissolved. The sweetness should balance the savory fish sauce. Strain the broth through a fine-mesh sieve into a clean pot, discarding all solids.
Skim excess fat from the surface of the broth, or refrigerate overnight and lift off the solidified fat cap for a cleaner broth. Keep the broth at a near-boil while assembling the bowls.
Cook dried rice noodles (banh pho medium width, about 8 oz for 4 people) according to package instructions — typically soak in cold water for 30 minutes, then boil for 30 to 60 seconds until just tender. Do not overcook.
Partially freeze the beef sirloin or eye of round for 30 to 45 minutes until firm but not solid. Slice thinly across the grain to 1/8 inch thickness using a sharp knife. Thin, uniform slices are essential for proper cooking in the broth.
Divide the cooked rice noodles evenly between 4 deep bowls. Arrange the thinly sliced raw beef over the noodles, keeping the slices separate so they cook evenly.
Bring the broth to a hard, rolling boil. Pour the boiling broth directly over the raw beef and noodles in each bowl — the heat of the broth cooks the beef in seconds. The beef should be just barely pink when the broth hits it; it finishes cooking in the bowl.
Serve immediately with the garnish plate on the side: fresh bean sprouts, Thai basil sprigs, fresh lime wedges, thinly sliced fresh chilies, hoisin sauce, and sriracha. Each person builds their bowl to taste at the table.