Pour the milk into the dutch oven. Stir in the citric acid solution. Over medium heat, slowly warm to 90°F stirring gently.
Remove from heat and gently stir in the rennet solution, stirring for 30 seconds. Cover and let stand for 5-10 minutes.
Once the milk has set, cut it into uniform curds: make several parallel cuts vertically through the curds and then several parallel cuts horizontally, creating a grid-like pattern.
Place the oven over medium heat and warm the curds to 105°F. Stir slowly as the curds warm, but try not to break them up too much. The curds will eventually clump together and separate more completely from the whey.
Remove from the heat and continue stirring gently for 3-5 minutes.
Ladle the curds into a strainer and set aside.
Heat the whey to 175°F and add cheese salt.
Place strainer into hot whey and heat curds until internal temperature reaches 135°F, working the curds using rubber gloves.
Using both hands, stretch and fold the curds a few times. Shape the mozzarella into a ball. Note: The more times the cheese is stretched and folded, the firmer it will become.
Place mozzarella ball into an ice water bath for 30 minutes or serve warm.