1. Bring 3 quarts water to a boil in a large Dutch oven. Add beef shanks; boil until surface of meat is no longer red (about 6 minutes). Drain shanks; cool slightly. Remove meat from bones; reserve bones. Cut meat into cubes.
2. Rinse pan; wipe clean with paper towels. Heat pan over high heat. Add oil; swirl to coat. Add white onion, ginger, and garlic; stir-fry 4 minutes or until browned. Stir in 6 cups water, chile garlic sauce, and black bean sauce. Place peppercorns and star anise on a double layer of cheesecloth. Gather edges of cheesecloth together; tie securely. Add cheesecloth bag, 1/2 cup green onions, sugar, and soy sauce to pan. Return meat and bones to pan. Bring to a simmer. Partially cover, and simmer gently for 2 hours or until meat is tender. Uncover and simmer 1 hour or until reduced to about 5 cups. Cool to room temperature; cover and chill overnight.
3. Skim fat from soup; discard fat. Discard bones and cheesecloth bag. Bring soup to a simmer. Add tomatoes and bok choy; cook 5 minutes or until bok choy is tender.
4. Cook noodles according to package directions. Place about 1/2 cup noodles in each of 4 bowls. Ladle 1 cup soup into each bowl, dividing bok choy evenly. Sprinkle each serving with 2 tablespoons green onions and 1 tablespoon cilantro.