Не стал добавлять теги самостоятельно, из вашего вопроса непонятны некоторые моменты
исполняющий роль фаервола между локальной сетью и внешним миром
добавьте тег proxy, вам насоветуют
шлюза
- теги routing, NAT
DNS сервера для различных внешних и внутренних сайтов (которые так же проброшены через Forefront наружу)
А вот тут непонятно, это только сервер DNS (который отвечает на днс запросы внешнего мира), перекрытие DNS(когда во внутренней сети и внешней сети доменные имена одной и той же зоны отвечают разными адресами) или вообще не имеет особого отношения к DNS - просто проброс сайтов в локальной сети\dmz наружу, для доступа через интернет - тег reverse proxy
В Forefront напрямую заходят два провайдера снаружи
- роутингом и переключением сетевых подключений по недоступности TMG занимается сам, вам нужно решение которое умеет это делать автоматически, верно?
И финальный вопрос: вы хотите all-in-one или готовы смотреть на набор решений?
К примеру, если брать набор разных решений для каждой ситуации на linux
proxy -
squid
reverse proxy -
nginx,
haproxy
DNS server -
bind
роутинг можно делать встроенными средствами OS, определение недоступности канала и переключение - скриптами.