Lightly char the onions and ginger so that they release their flavor. You can do this on high heat over the stove. Or you can broil them in the oven.
In a large pot, bring the beef bones to a boil to release their impurities. Boil for 10 minutes. You can remove from heat when you see all the scum and gross gunk float to the top.
Rinse the beef bones under cold water. Rinse each piece well to ensure there is no gunk sticking to them.
In a medium saucepan, toast the dried spices for 1-2 minutes, or until they release a little aroma. (You don't want them burnt, just slightly toasted.) Remove from heat and place inside a cheesecloth bag.
In a large stockpot (12 quarts or 16 quarts), add the charred onions and ginger, beef bones, and cheesecloth with aromatics. Fill it with water to its max capacity. Bring it to a boil, uncovered.
Add sugar and fish sauce. Lower the heat, and simmer uncovered for at least 3 hours. (The longer the better. You can also add more water as you go if simmering for longer than 3 hours.)
Taste the broth. If it's not salty enough, add more salt or fish sauce. If not sweet enough to your liking, add more sugar. I thought the broth was perfect to my taste, so I left it alone.
Strain the broth. Throw away the onion and ginger. If there is meat on the beef bones, use a small knife and scrap the meat and tendon off. You can add this meat to the pho bowl.