Preheat oven to 400 degrees. In the bottom of a roasting pan add bones, beef, onion, carrots, celery, and 1 cup water. Roast until well-browned, about 1 hour, adding water the bottom of the pan if needed some nothing scorches.
To a Dutch oven or large stock pot, add roasted bones, beef, vegetables, enough cold water to cover (see note 3), and salt. If desired, tie parsley stems, thyme, garlic, bay leaf, and peppercorns to make a sachet or add loosely to the pot (see note 4).
Over medium-high heat, bring to a boil. Immediately reduce heat to low and skim the foam off the top. Simmer gently (bubbles should barely break the surface at irregular intervals) until the beef is cooked through, at least 2 hours. The longer the broth simmers, the more flavor it will have.
Remove bones and beef from pot to a rimmed baking sheet or large bowl. Separate the beef and discard bones (you should have at least 2 cups beef you can use for another purpose).
Strain the broth through a fine-mesh strainer or cheesecloth. Place in a large bowl and chill covered overnight in the refrigerator.
The next day, scrape off the accumulated fat from the top of the stock and discard or reserve for another use (this is beef tallow, if you're into that). Divide the broth into freezer-safe containers (leaving at least 1/2-inch for expansion), label, and freeze for up to 3 months. Or, refrigerate and use within 4 days.