For the stock, preheat the oven to 220C/200C Fan/Gas 7. Put the beef shin, bones, onion and ginger in a large roasting tin. Roast in the oven for 1 hour, or until the onion looks quite charred and everything is well browned.
Put the shin and bones in a large saucepan. Slice the ginger and add that to the saucepan with the onion. Cover with around 4 litres/7 pints water. Bring to the boil, skimming off any grey coloured foam on top.
While you are waiting for the water to come to the boil, put the roasting tin over direct heat on a hob and deglaze with a little water. Scrape up any brown bits from the bottom of the pan. When you have finished skimming the top of the water of the saucepan, add the scraped bits and all of the spices to the pan.
Simmer very slowly, partially covered, for between 3–5 hours, until the meat is tender and the stock has a depth of colour. Strain the stock into a new pan. Strip the meat from the shin and add into the pan, discarding the rest of the solids. Season with salt and pepper, bring to the boil and leave to simmer.
Meanwhile, cook the noodles in a separate saucepan of salted boiling water, according to the packet instructions.
Add the carrot to the beef stock and simmer for 3 minutes. Add the spring onions, beansprouts, and fish sauce and simmer for a further minute. Check seasoning and add a dash more fish sauce if preferred. Add the herbs.
Divide the noodles between warmed bowls and ladle over some soup, top with the steak slices and ladle over more soup. The hot soup will lightly cook the steak. Serve with herbs, lime wedges, chilli, chilli oil and hoisin sauce, if using.