I don't recommend trying to self-host DNS. At minimum, you need 2 static IP'd servers on separate subnets in order to be more resilient against DDoS attacks. Personally, I would recommend using Cloudflare for DNS, as they have the infrastructure to resist or mitigate those kinds of attacks. Plus, the geo-located servers are very responsive and replicate changes globally nearly instantly.