It was a routing problem. DNS is a service. It is not essential to the operation of a sub-net. DNS provides something extra. Communcations can exist without names.
Names are for people.
Computers use IP numbers, not names. DNS allows computers to translate the names we assign to those numbers. The problem was that I could not ping machines outside the firewall from within the firewall. This was because traffic was not being sent to the outside world from within the sub-net. Once I solved the routing problem, the pings started to work.