Start by roasting garlic. Cut the top off a whole head of garlic to expose the cloves inside. Top with a drizzle of olive oil, salt, and pepper. Wrap in tin foil and bake in a 375 oven for 45 minutes. Remove and let cool. Once cool enough to handle, unwrap garlic and squeeze cloves out of head. Chop roughly and set aside.
Cut bacon into pieces and fry in a large dutch oven over medium heat until bacon is cooked through.
When bacon is cooked, add diced carrots, sliced shallots, and chopped roasted garlic to pan and cook 4-5 minutes to allow vegetables to soften. Add tomato paste and dried basil and let cook another 2-3 minutes. Season with salt and pepper.
Add whole tomatoes, chicken stock, and parmesan rind (optional). Bring soup to boil then reduce and let simmer at least 30 minutes, preferably an hour, stirring occasionally.
After soup has simmered, use an immersion blender to puree soup until it reaches your desired consistency. You can also do this in batches in a blender. Taste soup and add additional salt and pepper to taste. After pureeing and seasoning, let soup cook another 10-15 minutes on low.
Serve with fresh basil and warm bread or a melty grilled cheese sandwich.