Preheat the oven to 450°. Heat the oil in a large roasting pan set over 2 burners. Add the beef shanks and cook over moderate heat until sizzling and lightly browned on 1 side, about 5 minutes. Transfer the pan to the oven and roast for 45 minutes, or until the meat and bones are browned. Add the carrots, celery and onion and roast for about 30 minutes longer, or until the vegetables are lightly browned.
Scrape the meat, bones and vegetables into a stockpot. Set the roasting pan over high heat and add 1 cup of the water. Cook, scraping up the browned bits, until the pan is clean. Pour the pan juices into the stockpot along with the remaining 3 cups and 3 quarts of water and simmer over moderately high heat for 30 minutes, skimming occasionally. Reduce the heat to moderately low, cover partially and simmer until the stock is richly flavored and reduced to 2 quarts, about 4 hours. Season with salt.
Strain the stock through a fine sieve set over a heatproof bowl. Refrigerate until cold, scrape off the fat and discard. Before using, boil the stock until reduced to 6 cups.
Make Ahead: The stock can be refrigerated for 1 week or frozen for up to 2 months.