Preheat the oven to 350 degrees F. Heat the oil in a large Dutch oven or deep ovenproof skillet over medium heat. Add the onion, celery, carrot, and season with 2 teaspoons salt and pepper to taste. Cook, stirring occasionally, until the vegetables are tender and just beginning to brown, about 20 minutes. Add the garlic and tomato paste, mix well and cook until the tomato paste darkens, about 3 minutes.
Salt and pepper the lamb shanks and lay them in a single layer, over the vegetables in the Dutch oven. Add enough stock to surround but not cover the shanks and bring to a simmer. Transfer to the oven. Braise the shanks, uncovered, turning every 30 minutes or so, until the meat is fork tender, about 2 hours. (The meat will brown during the final stages of braising.) Remove from the oven and set aside to cool for about 15 minutes to allow the fat to rise to the surface of the sauce. Transfer the meat to a plate.
Skim the fat from the surface of the braising liquid. Strain the sauce through a fine mesh strainer into a bowl, pressing down on the vegetables with a spoon to extract as much liquid as possible. Discard the vegetables. Degrease the sauce again if necessary and return to the Dutch oven. Simmer the sauce until reduced by about half. Return the shanks to the sauce, and warm gently over low heat. Taste the sauce and adjust the seasoning with salt and pepper to taste. Transfer to a warm serving dish and serve.