Ответ на ваш вопрос существует, но он содержит очень много отсылок на поиск в гугле.
1) в чем принципиальность "своих" DNS - ведь это не просто "красиво", а еще куча гемора и проблем в обслуживании (ИМХО, если не знаете как - то лучше отдать это дело профессионалам, и я не фриланс, а про уже существующие DNS-сервера крупных игроков)
2) CDN - свой? пожелания схожи с первым пунктом.
Личный опыт подобного был - можно, но оно того не стоит. Не на столько проект "крут" и "мощен" что нужно свои ресурсы для этого использовать.
А если Ваш проект так "крут" и требует свои DNS и CDN - то все крайне просто (смотрим в Гугле):
- читайте маны по "BIND9 how to"
- читайте "как организовать автоматическую балансировку по гео-данным на уровне DNS"
- читайте "как организовать синхронизацию между нодами CDN"
ЗЫ понимаю что мой ответ не больше чем ваш вопрос - но поймите верно, тут только читать и вникать, объяснить в 5 обзацев и 10 ссылок не получиться