Coat shanks with salt and pepper and heat oil in a large pot. Cook at a medium-high heat. Add shanks, a few at a time to the pot and cook until brown on all sides, about 8 minutes, then place the shanks in a bowl.
Add onions, carrots and garlic to the pot and sauté until golden, about 10 minutes. Then, stir in all remaining ingredients and add the shanks back into the pot, ensuring they are submerged. Bring to the boil and then reduce heat to medium-low.
Cover and simmer until meat is tender, this should take about 2 hours.
Remove the lid after the two hours and simmer until the meat is very tender, about 30 minutes longer. Transfer shanks to platter and cover with cooking foil.
Boil juices in pot until thickened, season with salt and pepper and spoon over shanks to serve.