Heat the olive oil in a large pot over medium-high heat. Add the carrots and onion and cook, stirring constantly, until the onion is lightly browned, about 5 minutes. Add the garlic, tomato paste and 1 tablespoon salt and cook 1 more minute. Add 7 cups water, cover and bring to a boil. Uncover, reduce the heat and simmer 5 minutes. Season with salt and pepper.
Meanwhile, trim the green beans and zucchini and cut into 1/2-inch pieces. Stir into the prepared broth along with the beans and spaghetti. Simmer until the pasta is al dente, about 10 minutes.
When ready to serve, whisk 1/3 cup pesto into the soup. Ladle into bowls and top with the remaining pesto. Sprinkle with parmesan and serve with bread, if desired.