Combine all ingredients except vanilla extract in a pot over medium-high heat.
Bring to a boil, whisking constantly.
Turn heat down so the mixture is just barely boiling and cook for about two and a half to three hours until it turns a deep caramel color.
Stir and scrape the bottom and side of the pan periodically to guarantee even cooking.
Remove from the heat and whisk in vanilla extract.
To store, pour cooled dulce de leche into airtight containers and refrigerate for up to a month or freeze for several months.
Serve on top of your favorite desserts!