Preheat the oven to 450°. In a large roasting pan, toss the bones, carrots, and celery with oil. Roast, shaking the pan halfway through until everything is slightly caramelized, about 30 minutes.
Add bones, roasted vegetables, and pan juices to a stock pot with vinegar, onion, garlic, peppercorns, and herbs. Add enough water to cover everything by at least 1”. Cover the pot and bring the water to a boil. Reduce heat to a low simmer, cover with a lid slightly ajar, and cook for at least 8 hours. Longer is better! Occasionally stir, skimming off the foam on top if necessary.
Remove from heat and let cool slightly. Strain broth through a fine-mesh strainer, discarding bones and vegetables. Let cool to room temperature, then divide broth among airtight containers.
Notes
Bones: Some health food stores like Whole Foods sell frozen bones if you don't have bones from the meat you've eaten.
Shorter time: Technically, you can skip the roasting step, but it does add flavor. Also, the longer you cook it, the better the flavor is.
Enjoy: Bone broth can be enjoyed as a drink, as a liquid to make grains, or as you would use any beef or vegetable broth.