Soak beans overnight in water or give them a quick soak by covering them with boiled water and letting them stand 1 hour. Rinse beans and place in a pot, cover with water, add one bay leaf and bring to boil. Salt water and cook beans to tender, 35-40 minutes. Purée half the beans with an immersion blender or in a food processor. Reserve the remaining beans, leaving them whole, plus 2 cups of their cooking liquid.
Meanwhile, preheat oven to 375°F. Place a rack in the center of the oven. Scatter the tomatoes on a baking sheet along with crushed garlic cloves, thyme, salt and pepper. Coat with about 3 tablespoons of oil and toss to combine. Roast until garlic is brown at the edges, the small tomatoes have burst and the chopped tomatoes have become saucy, 45 minutes to an hour. Transfer to large bowl and mash with wooden spoon or potato masher.
Add a few tablespoons olive oil, 2 turns of the pan, to a soup pot over medium to medium-high heat. Add fennel, onion, celery, carrots, chopped garlic, cabbage, the remaining bay leaf, some salt and pepper, and stir 8-10 minutes to soften a bit. Add stock, cheese rind, whole beans and their cooking liquid, the puréed beans and tomatoes. Simmer the soup gently to combine flavors, adding water if the soup is too thick.
Just before serving, cook small cut pasta in salted water to al dente. Keep it separate from soup so it does not overcook in the broth. To serve, place a little pasta in each bowl, top with soup and sprinkle with cheese.